Question Est-il possible d'empêcher Javascript de détecter le clic de souris du milieu?


Je commence à remarquer que de plus en plus de sites Web commencent à implémenter une logique Javascript conçue pour prendre le contrôle de mon expérience en ligne. Pour ce faire, ils détectent les clics du bouton central de la souris afin que les liens s’ouvrent dans leur visualiseur propriétaire plutôt que dans un nouvel onglet.

Les deux qui le font le plus sont Bing et Facebook et je n'aime pas ça. Lorsque je clique au milieu d'une souris sur une image provenant d'une recherche Bing ou d'une photo de l'album FB d'une personne, la page Web ouvre sa fenêtre propriétaire de style modal. Cependant, je peux faire un clic droit sur le lien et ouvrir dans un nouvel onglet, mais je préfère le clic du milieu. En outre, certains sites comme Instagram modifient même le menu contextuel avec le bouton droit de la souris pour que vous ne puissiez pas enregistrer les images (du moins pas aussi facilement).


3
2017-11-25 00:32


origine


Ceci est utile, mais vous devez modifier le code pour travailler pour tous les sites Web (ou du moins pour ceux que vous souhaitez): greasyfork.org/fr/scripts/9453-stop-middle-click-hijacking - Marc.2377


Réponses:


Réponse courte: Non, mais parce que ce n'est pas ce qui se passe.

Le comportement que vous rencontrez n'est pas ce que vous pensez. Votre navigateur utilise le bouton central pour ouvrir les liens dans un nouvel onglet, mais le site interprète toujours ce lien comme un clic. Le site ne sait pas vraiment que vous essayez d'ouvrir quelque chose dans un nouvel onglet, donc il fait juste ce qu'il ferait normalement pour un clic.

Lorsque vous cliquez sur une image sur Facebook et que celle-ci apparaît dans une boîte noire, vous n'avez pas encore ouvert de nouvelle page, mais vous venez d'ouvrir une autre partie de celle sur laquelle vous étiez déjà. Le clic du milieu ne changera pas cela, car cela fait partie intégrante du fonctionnement de la page. Le clic du milieu peut toujours ouvrir une page dans un nouvel onglet, mais il s'agit de la même page que celle sur laquelle vous étiez déjà, pas du tout une nouvelle page.

Il s’agit d’un modèle de conception plus récent. De nombreux sites tentent de réduire le chargement des pages en affichant le contenu sur une seule page et en récupérant dynamiquement du nouveau contenu (à l’aide d’une technique appelée AJAX). Un site comme celui-ci a une UX plus fluide, et pour la plupart des gens, il sera plus facile à utiliser.

Alors pouvez-vous désactiver cela? Techniquement, oui, un script utilisateur complexe peut déchirer la page et la refaire comme vous le souhaitez. Mais c'est beaucoup de travail sans beaucoup d'avantages. Les développeurs de sites Web consacrent beaucoup de temps à le faire fonctionner, il vous faudrait essentiellement réécrire l'intégralité du frontal pour qu'il se comporte comme vous le décrivez. Encore une fois, ce n'est pas le site qui subvertit l'action du navigateur, le site ne fait rien de mal. Ce qui se passe, c'est que beaucoup de sites sont maintenant conçus d'une manière qui ne correspond pas au modèle d'utilisation que vous connaissez. Vous pouvez essayer de désactiver complètement JavaScipt, mais cela risque de rendre le site inutilisable. La plupart des principaux sites Web essaient de s’assurer qu’ils ne cassent pas lorsque vous faites cela, mais il n’ya aucune garantie.

Maintenant, j'ai dit que le site ne sait pas de quel bouton vous avez cliqué, c'est généralement C'est vrai, mais il est possible que le site le découvre. Cette question de Stack Overflow traite de la manière suivante: Comment détecter le clic du bouton central de la souris?. La réponse de base est que lorsqu'un événement de clic est déclenché, des informations sur le bouton cliqué sont disponibles et peuvent être utilisées pour déterminer comment gérer l'événement. Mais plus les sites Web n'utilisent pas cette information, ceux qui le font sont probablement des jeux ou d'autres types de contenu interactif.


0
2017-11-25 02:18



Il semble que vous avez raison. Je viens de faire ce violon jsfiddle.net/76yfJ et le clic du milieu déclenche l'événement onclick. La raison pour laquelle j'ai supposé que le site détectait des clics intermédiaires était que, dans mes recherches, j’ai vu JavaScript qui prétendait être capable de faire la distinction entre les clics gauche et moyen. - oscilatingcretin
Oops. Ceci est le violon correct: jsfiddle.net/76yfJ/1 - oscilatingcretin