61 votes

Comment vérifier que le navigateur prend en charge Touchstart à l'aide de JS / jQuery?

Dans une tentative de suivre les meilleures pratiques, nous essayons d'utiliser le bon de JavaScript/jQuery événements en fonction de ce périphérique que vous utilisez. Par exemple, nous construisons un site mobile qui a une balise qui auront un onclick ou d'événement tactile. Dans le cas d'un iPhone, nous aimerions utiliser les "évènements touchstart" de l'événement. Nous aimerions tester si leur appareil prend en charge les "évènements touchstart" avant de nous lier que gestionnaire de l'objet. Si elle ne le fait pas, nous allons lier "onclick" à la place.

Quelle est la meilleure façon de le faire?

99voto

CMS Points 315406

Vous pouvez détecter si l'événement est pris en charge par:

 if ('ontouchstart' in document.documentElement) {
  //...
}
 

Donne un coup d'oeil à cet article:

La fonction isEventSupported publiée ici est vraiment bonne pour détecter une grande variété d’événements et elle est multi-navigateur.

12voto

geo1701 Points 3269

Utilisez ce code pour détecter si l'appareil prend en charge les toucher.

Aussi travailler pour windows 8 IE10 qui utilise le MSPointerDown de l'événement au lieu de "touchmove'

var supportsTouch = false;
if ('ontouchstart' in window) {
    //iOS & android
    supportsTouch = true;
} else if(window.navigator.msPointerEnabled) {
    //Win8
    supportsTouch = true;
}

3voto

antimatter15 Points 787

Vous pouvez vérifier si typeof document.body.ontouchstart == "undefined" à l'automne de retour à la normale d'événements dom

1voto

J'ai fait un plein de démonstration qui fonctionne dans tous les navigateurs avec le code source complet de la solution de ce problème: Détecter les appareils à écran tactile en Javascript.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X