javascript mobile touch tablet microsoft-edge

javascript - Touch API(por ejemplo, touchstart) no funciona en MS Edge



mobile tablet (3)

¿Habilitaste el manejo táctil personalizado? Puede hacerlo con el siguiente fragmento de código css (en la etiqueta del cuerpo o simplemente un contenedor para geastures):

-ms-touch-action: none;

A continuación, la API táctil es una característica de webkit (¿quizás haya un error en CanIuse?). IE y Edge tienen una característica similar conocida como API de puntero. Pero puede usar una biblioteca de polyfill como esta: https://github.com/CamHenlin/TouchPolyfill

Mi aplicación está utilizando la API táctil para detectar eventos táctiles en JavaScript. Ejemplo:

$(".element").on("touchstart", function(event){ alert("TRUE"); });

Esto funciona en cualquier dispositivo táctil con cualquier navegador como Android o iOS, sin embargo, no funciona en MS Edge en una tableta con Windows 10 con o sin teclado conectado. La API parece ser compatible: lista de compatibilidad . Sin embargo, he probado: ''ontouchstart'' in window y esto devuelve falso en este dispositivo. Además mousedown parece ser despedido.

¿Que esta pasando aqui? ¿Qué puedo hacer para activar eventos táctiles en una tableta con Windows 10? Me gustaría mantener el evento solo para dispositivos táctiles. Cambiar a la API de Pointer Events incluiría también dispositivos de escritorio y eso no es lo que quiero.


Trate de usar el evento pointerdown . Algunos (mucho) más information . Como puede ver, touchstart pero no en todas las configuraciones, cuando un teclado está conectado / emparejado, por ejemplo, no hay touchstart .


para la API táctil, debe activar un indicador en Edge: en la barra de direcciones, ingrese about: flags y presione enter. En la sección Touch, puede habilitar eventos táctiles con el menú desplegable correspondiente