10
votes

Désactiver le défilement de clic de milieu avec JavaScript

fond : Je crée une table rappelant quand , dans qu'il a click-n-glisser à basculer pour des éléments de table. Je souhaite appeler différents types de code de basculement lorsque les boutons gauche, milieu et droit de la souris activent un événement MouseDown .

En utilisant JQuery, je fais un bon départ. xxx

dans la fonction bascule () i peut utiliser e.qui pour déterminer quel bouton a été cliqué. < p> la punchline : J'ai utilisé e.preventDefault () dans l'espoir d'arrêter le comportement du défilement par défilement du milieu du clic. Ce n'est pas le cas. Que puis-je faire pour arrêter l'action de défilement de l'activation?

Voir aussi " Déclenchement ONCLICK Evénement en utilisant le collier "


0 commentaires

4 Réponses :


12
votes

Middle-Click peut être désactivé avec JavaScript , mais uniquement dans IE, webkit et Konquerer. Firefox nécessite un fichier de configuration modifier . C'est 2017 et Firefox 50 soutient cela.


1 commentaires

+1 Grand lien: plein d'informations. C'était la page de test ( Unixpapa.com/js/testmouse.html ) qui m'a inspiré ma solution actuelle.



3
votes

Actuellement, ma solution est la suivante: (plus jQuery!) xxx

en l'enveloppant dans un lien (via JQuery Wrap ), les navigateurs pensent que c'est un lien et ne faites pas défiler le collier, même si vous faites glisser votre souris. Avec cette configuration, et ma situation, il y a un couple (mineur) gotchas.

Firefox ouvrira un nouvel onglet lorsque vous cliquez sur le milieu, mais seulement si vous ne faites pas glisser. Opera ouvrira un nouvel onglet lorsque vous cliquez sur le milieu, faites glisser ou non. C'est pourquoi j'ai utilisé href = 'JavaScript: void (0);' au lieu de href = '#' - afin que le navigateur du client ne charge pas de Page, juste une page vierge avec une URL étrange.

Mais cette solution fonctionne comme un charme sur chrome et safari. Cela fonctionne bien avec IE8, sauf que maintenant lorsque je suis parti-click-n-glisser, il modifie le pointeur sur un symbole "Impossible de le faire", car il pense que je veux faire glisser le lien quelque part. Non testé sur des versions plus anciennes d'IE.


0 commentaires

2
votes

C'est déjà un peu vieux, mais j'ai essayé de contourner cela dans Firefox (j'utilise toujours 3.6) et je partagerai mes conclusions, peut-être que quelqu'un trouvera cela utile.

Vérifiez que si vous créez un fichier HTML vide (ou un petit document avec couple de paragraphes) et chargez-le dans Firefox, la barre de défilement du clic du milieu n'apparaît pas. C'est parce que la largeur et la hauteur sont plus petites que la taille de la fenêtre. Si vous mettez beaucoup de S, ce n'est pas le cas et la barre de défilement apparaît au milieu clic.

Google géré pour empêcher le défileur de clic de milieu de clic à apparaître dans Google Maps dans Firefox en veillant à ce que La taille est toujours inférieure à la taille de la fenêtre, plus