web-dev-qa-db-fra.com

API tactile (par exemple, touchstart) ne fonctionne pas dans MS Edge

mon application utilise l'API tactile pour détecter les événements tactiles en JavaScript. Exemple:

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

Cela fonctionne sur n'importe quel appareil tactile avec un navigateur comme Android ou iOS, mais cela ne fonctionne pas dans MS Edge sur une tablette Windows 10 avec ou sans clavier connecté. L'API semble être pris en charge: Liste de compatibilité . Cependant, j'ai testé: 'ontouchstart' in window et cela renvoie false sur cet appareil. De plus, mousedown semble se faire virer.

Qu'est-ce qui se passe ici? Que puis-je faire pour déclencher des événements tactiles sur une tablette Windows 10? Je souhaite conserver l'événement uniquement pour les périphériques tactiles. Basculer vers l'API d'événements de pointeur inclurait également les périphériques de bureau et ce n'est pas ce que je veux.

16
dude

pour l'API tactile, vous devez activer un indicateur sur Edge: dans la barre d'adresse, entrez about: flags et appuyez sur entrée. Dans la section Touch, vous pouvez activer les événements tactiles avec la liste déroulante correspondante.

17
t.ouvre

Avez-vous activé la gestion tactile personnalisée? Vous pouvez le faire avec l'extrait de code css suivant (sur la balise body ou tout simplement un conteneur pour les créatures):

-ms-touch-action: none;

Ensuite, l’API tactile est une fonctionnalité de kit Web (il y a peut-être une erreur dans CanIuse?). IE et Edge ont une fonctionnalité similaire appelée API de pointeur. Mais vous pouvez utiliser une bibliothèque polyfill comme ceci: https://github.com/CamHenlin/TouchPolyfill

5
t.ouvre

Essayez d’utiliser l’événement pointerdown. Certains (beaucoup) plus informations . Comme vous pouvez le constater, touchstart est déclenché par Edge, mais pas dans toutes les configurations. Lorsqu'un clavier est associé/associé, par exemple, aucun touchstart.

0
Shanoor