Comment puis-je détecter le support tactile de l'appareil en JavaScript?

Dans le passé, lors de la détection de savoir si un périphérique prend en charge les événements tactiles en JavaScript, on peut faire quelque chose comme ceci:

var touch_capable = ('ontouchstart' in document.documentElement);

Cependant, Google Chrome (17.x.x+) renvoie true pour la vérification ci-dessus, même si le périphérique ne prend pas en charge les événements tactiles. Par exemple, l'exécution du code ci-dessus sur Windows 7 renvoie la valeur true, et donc si nous le combiner avec quelque chose comme:

var start_evt = (touch_capable) ? 'ontouchstart' : 'onmousedown';

Sur Google Chrome, l'événement n'est jamais tiré depuis que nous sommes liaison à ontouchstart. En bref, quelqu'un sait-il un moyen fiable pour contourner cela? Je suis actuellement en cours d'exécution à cocher suivantes:

var touch_capable = ('ontouchstart' in document.documentElement && navigator.userAgent.toLowerCase().indexOf('chrome') == -1)

Qui est loin d'être idéal...

source d'informationauteur BenM