Détecter touchpad vs souris en Javascript
Est-il un moyen de détecter si le client est à l'aide d'un pavé tactile, contre une souris avec Javascript?
Ou au moins d'obtenir une certaine estimation raisonnable du nombre d'utilisateurs qui utilisent des tablettes tactiles, par opposition à la souris?
source d'informationauteur Fragsworth
Vous devez vous connecter pour publier un commentaire.
Dans le cas général, il n'y a aucun moyen de faire ce que vous voulez. ActiveX pourrait vous permettent de voir et d'examiner les périphériques USB, mais dans le meilleur des cas, même si c'est possible en quelque sorte, qui vous limite pour les utilisateurs de IE. Au-delà, il n'y a aucun moyen de savoir.
Vous pourriez être en mesure de discerner des schémas, en quoi (ou comment) une tablette tactile de l'utilisateur déplace le curseur par rapport à ce que d'une souris, l'utilisateur peut déplacer le curseur. La différenciation entre les dispositifs d'entrée physiques de cette façon est un absurdement difficile de perspective, et peut être tout à fait impossible, j'ai donc inclure ici pour l'exhaustivité.
Ce sujet peut être déjà résolu, mais la réponse a été: il n'y a aucun moyen de le détecter. Eh bien j'avais besoin de trouver une solution, il a été très important. J'ai donc trouvé une solution acceptable à ce problème:
Et l'enregistrement des événements:
Il peut avoir besoin un peu d'optimisation et est peut-être moins que parfait, mais il fonctionne! Au moins, il peut détecter un macbook trackpad. Mais en raison de la conception, je dirais qu'il doit travailler partout où le pad introduit beaucoup de cas des appels.
Voici comment cela fonctionne:
Lorsque l'utilisateur fait défiler, il permet de détecter et de vérifier que, dans 50ms pas plus de 5 événements obtenu déclenchée, ce qui est assez inhabituel pour une souris normale, mais pas pour un trackpad.
Puis il y a l'autre partie, qui n'est pas pour l'importance de la détection, mais plutôt une astuce pour appeler une fonction d'une seule fois, comme lorsqu'un utilisateur effectue. S'il vous plaît venez à moi si je n'étais pas assez claire, il était très difficile d'obtenir ce travail, et c'est un de moins que l'idéal solution de contournement.
Edit: j'ai optimisé le code maintenant, autant que je le peux. Il détecte les mouseroll sur le deuxième temps et de glisser sur le pavé tactile instantanément. Aussi supprimé beaucoup de répétition et de code inutile.
Edit 2 j'ai changé les numéros pour le contrôle de temps et de nombre d'événements appelée à partir de 50 à 100 et de 5 à 10 respectivement. Cela devrait donner plus de précision de détection.
Vous pourriez détecter JS événements.
Un périphérique tactile le feu des événements tactiles tels que
touchstart
en plus des événements de la souris.Un non tactile de l'appareil se déclenche uniquement les événements de souris.
Vous pourriez simplement pour le pilote de périphérique logiciels installés dans le forfait local dans le fonctionnement. Comme dans windows synaptics, elan matériel, comme pour UNIX(Linux), vous pouvez seulement de vérifier que le paquet soit installé au cours de la base installée sur. Beaucoup de paquets sont fournis dans des formats différents dans les différentes versions de Linux et Linux systèmes de type(Pas linux entièrement), mais ils utilisent le même nom de package pour tous. Juste eu à connaître le code pour la tirer. Je travaille encore sur elle.
Cela devrait fonctionner: