Leaflet: L.Browser.touch n'est pas correctement défini sur le bureau (Chrome)

Créé le 18 janv. 2017  ·  3Commentaires  ·  Source: Leaflet/Leaflet

Il semble que les mises à jour récentes de Chrome (sur Mac, au moins) aient modifié leur implémentation de window.PointerEvent . Cela amène la version actuelle de Leaflet (1.0.2) à mal diagnostiquer le navigateur comme un appareil tactile et ajoute la classe leaflet-touch .

Cette ligne semble être le coupable:

pointer = window.PointerEvent || msPointer

...il peut être trouvé ici : https://github.com/Leaflet/Leaflet/blob/v1.0.2/src/core/Browser.js#L33

Le problème est que window.PointerEvent est une fonction qui renverra toujours 'véridique'.

Comment reproduire

  • Navigateur : Mac OSX El Capitan (10.11.6), Chrome Version 55.0.2883.95 (64 bits)
  • Allez sur www.leafletjs.com et regardez l'exemple de démonstration... les boutons Zoom In/Out sont agrandis, en raison de l'application de la classe leaflet-touch au conteneur de la carte du dépliant.

Commentaire le plus utile

Alors, quel est l'intérêt de détecter le toucher s'il ne détecte pas le toucher avec précision ? Toute cette logique ne devrait-elle pas être supprimée de la notice alors ?

Tous les 3 commentaires

Je peux aussi le reproduire...

Copie de https://github.com/Leaflet/Leaflet/issues/3944. Il n'y a aucun moyen de savoir si le navigateur fonctionne sur un ordinateur avec un écran tactile ou non, il est seulement possible de savoir si le navigateur prend en charge les événements tactiles/pointeurs ou non. Voir aussi http://www.stucox.com/blog/you-cant-detect-a-touchscreen/

Alors, quel est l'intérêt de détecter le toucher s'il ne détecte pas le toucher avec précision ? Toute cette logique ne devrait-elle pas être supprimée de la notice alors ?

Cette page vous a été utile?
0 / 5 - 0 notes