Comment configurer Google Chrome pour qu'il n'autorise pas javascript à détourner mon menu contextuel

45

Je méprise les sites Web qui détournent le bouton droit de la souris via javascript. D'autres navigateurs (comme Firefox) me permettent d'empêcher les sites de le faire. Chrome a-t-il une telle option ou me laisse-t-il à la merci des concepteurs de sites Web agaçants?

Je ne veux pas désactiver javascript complètement. Je veux juste empêcher le javascript de prendre le contrôle du bouton droit de la souris. Firefox vous permet d'empêcher le javascript de faire des choses spécifiques comme celle-ci. J'essaie de savoir si Chrome en fait autant. Je vais supposer que ce n'est pas le cas pour l'instant.

Peter
la source

Réponses:

17

Essayez cette extension Chrome, elle empêche spécifiquement les sites Web de bloquer le bouton droit de la souris.

Activer le clic droit

https://chrome.google.com/webstore/detail/enable-right-click/hhojmcideegachlhfgfdhailpfhgknjm

Alexander Lai
la source
cela semble prometteur!
Peter
4
C'est vraiment décevant, le chrome nécessite une extension pour cela, mais il résout le problème. Réponse élue, mais toujours à la recherche d'une meilleure solution.
JM Becker
Cela a fonctionné comme un charme. Je me préparais à construire ma propre extension. Yay pour la recherche.
Jusqu'au
7
@ Karl Morrison: Je pense que vous avez peut-être mal compris mes critiques. Je ne critiquais pas Chrome pour avoir désactivé le menu contextuel. J'étais irrité par le fait que chrome ne fournit pas de méthode pour désactiver sélectivement les fonctions Javascript. Je souhaite également mentionner que la désactivation de JavaScript rendra de nombreux sites non fonctionnels. Firefox propose une option Javascript "Désactiver ou remplacer les menus contextuels".
JM Becker
1
@ Alexander, ça ne marche pas. Testé sur Google Docs à l'aide du navigateur Chrome.
Pacerier
14

Appuyez sur F12pour faire apparaître les outils de développement Google Chrome et accédez à la commande Consoleonglet et exécution ci-dessous:

document.oncontextmenu=null;

Il devrait ramener la majeure partie du menu contextuel.

Cela devrait également fonctionner pour Firefox.

Bien sûr, sur Firefox, vous pouvez simplement utiliser Shift+ clic-droit pour ignorer le menu contextuel de JS.

Shi B.
la source
7
Ça ne marche pas Testé sur Google Docs à l'aide du navigateur Chrome.
Pacerier
@ Pacerier Je ne sais pas ce que la magie vaudou Google a utilisé pour Google Documents, elle n'utilise pas oncontextmenu et ma solution ne fonctionne donc pas. Toutefois, l’autre méthode que je viens de mentionner devrait également fonctionner sous Chrome. Utilisez Maj + clic droit pour afficher le menu contextuel original.
Shi B.
Ca ne marche pas pour moi
Ben Wheeler
1
Pour contrer les commentaires "ne fonctionne pas" - cela fonctionne, cela ne fonctionne peut-être pas pour tous les sites Web, mais la réponse de @ shi-b fonctionne ...
Robert Swift
Cela dépendra de l'élément de dom auquel le contextmenu eventlistener était attaché. Ce sera souvent un document mais il peut être attaché à n’importe quel élément.
Scott Christopherson
4

J'ai trouvé une solution acceptable de About.com . C'est un petit bookmarklet sur lequel, par nature, il faut cliquer pour forcer la désactivation de ce JS agaçant. Cependant, je le trouve meilleur que l'option de style Firefox, car de nombreux sites ont besoin d'un contrôle par clic droit sur JS. Par exemple Google Docs etc ...

Au moins, je n'ai pas besoin de gaspiller des ressources en stockant une extension supplémentaire en mémoire. Vous pouvez voir comment chrome stocke les extensions avec son gestionnaire de tâches. Bien que vous ayez besoin d’une extension installée pour la regarder.

JM Becker
la source
Le code est javascript:void(document.onmousedown=null);void(document.onclick=null);void(document.oncontextmenu=null). Malheureusement, cela ne fonctionne pas pour moi dans Netflix avec Google Chrome. Mais chrome.google.com/webstore/detail/allow-right-click/… a fonctionné .
Aaron Thoma
2

J'utilise NotScripts

MODIFIER:

Je suis passé à ScriptNo , qui offre un contrôle plus granulaire

Moab
la source
1
Est-ce que cela vous permet de contrôler ce que javascript peut et ne peut pas faire sur une page, ou cela bloque-t-il tout simplement le javascript?
Peter
Il bloque js par domaine, chaque domaine que vous pouvez sélectionner dépend de ce que vous entendez par détournement de votre clic droit. Voulez-vous dire que cela modifie votre menu contextuel?
Moab
3
Oui. Je veux pouvoir empêcher javascript d'utiliser les événements de clic de souris qui proviennent du bouton droit de la souris.
Peter
Une autre solution non grata, mais un grand pas en avant, a complètement désactivé JS. J'ai utilisé noscript FireFox, qui est encore difficilement utilisable, mais notscripts Chrome est encore pire. Ils requièrent tous deux une intervention manuelle et, fondamentalement, ils activent / désactivent complètement JS par domaine. Si vous souhaitez résoudre le problème de la désactivation précise de JS DOM spécifique, les deux ne suffisent pas. Bien que par la peau des dents, c'est juste assez bon pour éviter mon vote négatif.
JM Becker
@TechZilla vérifier mon édition ci
Moab
0

Ce bookmarlet fonctionne sur les sites Google / Youtube à partir d'août 2019 (testé sous Chrome et Firefox):

javascript: function enableContextMenu(aggressive = false) { void(document.ondragstart=null); void(document.onselectstart=null); void(document.onclick=null); void(document.onmousedown=null); void(document.onmouseup=null); void(document.body.oncontextmenu=null); enableRightClickLight(document); if (aggressive) { enableRightClick(document); removeContextMenuOnAll("body"); removeContextMenuOnAll("img"); removeContextMenuOnAll("td"); } } function removeContextMenuOnAll(tagName) { var elements = document.getElementsByTagName(tagName); for (var i = 0; i < elements.length; i++) { enableRightClick(elements[i]); } } function enableRightClickLight(el) { el || (el = document); el.addEventListener("contextmenu", bringBackDefault, true); } function enableRightClick(el) { el || (el = document); el.addEventListener("contextmenu", bringBackDefault, true); el.addEventListener("dragstart", bringBackDefault, true); el.addEventListener("selectstart", bringBackDefault, true); el.addEventListener("click", bringBackDefault, true); el.addEventListener("mousedown", bringBackDefault, true); el.addEventListener("mouseup", bringBackDefault, true); } function restoreRightClick(el) { el || (el = document); el.removeEventListener("contextmenu", bringBackDefault, true); el.removeEventListener("dragstart", bringBackDefault, true); el.removeEventListener("selectstart", bringBackDefault, true); el.removeEventListener("click", bringBackDefault, true); el.removeEventListener("mousedown", bringBackDefault, true); el.removeEventListener("mouseup", bringBackDefault, true); } function bringBackDefault(event) { event.returnValue = true; (typeof event.stopPropagation === 'function') && event.stopPropagation(); (typeof event.cancelBubble === 'function') && event.cancelBubble(); } enableContextMenu();

Pour les sites peskier, définissez / passez agressif sur true (cela désactivera la plupart des gestionnaires d'événements et donc, l'interaction avec la page):

javascript: function enableContextMenu(aggressive = true) { void(document.ondragstart=null); void(document.onselectstart=null); void(document.onclick=null); void(document.onmousedown=null); void(document.onmouseup=null); void(document.body.oncontextmenu=null); enableRightClickLight(document); if (aggressive) { enableRightClick(document); removeContextMenuOnAll("body"); removeContextMenuOnAll("img"); removeContextMenuOnAll("td"); } } function removeContextMenuOnAll(tagName) { var elements = document.getElementsByTagName(tagName); for (var i = 0; i < elements.length; i++) { enableRightClick(elements[i]); } } function enableRightClickLight(el) { el || (el = document); el.addEventListener("contextmenu", bringBackDefault, true); } function enableRightClick(el) { el || (el = document); el.addEventListener("contextmenu", bringBackDefault, true); el.addEventListener("dragstart", bringBackDefault, true); el.addEventListener("selectstart", bringBackDefault, true); el.addEventListener("click", bringBackDefault, true); el.addEventListener("mousedown", bringBackDefault, true); el.addEventListener("mouseup", bringBackDefault, true); } function restoreRightClick(el) { el || (el = document); el.removeEventListener("contextmenu", bringBackDefault, true); el.removeEventListener("dragstart", bringBackDefault, true); el.removeEventListener("selectstart", bringBackDefault, true); el.removeEventListener("click", bringBackDefault, true); el.removeEventListener("mousedown", bringBackDefault, true); el.removeEventListener("mouseup", bringBackDefault, true); } function bringBackDefault(event) { event.returnValue = true; (typeof event.stopPropagation === 'function') && event.stopPropagation(); (typeof event.cancelBubble === 'function') && event.cancelBubble(); } enableContextMenu();
Chema
la source
-1

Vous pouvez facilement activer / désactiver ou autoriser / bloquer javascript sur tout site Web Google Chrome. Il suffit de cliquer sur le signe papier avant l’url du site. Sous les permisions, vous verrez le javescript, cliquez sur la flèche dirigée vers le bas pour afficher un menu, sélectionnez "Toujours bloquer sur ce site" et rechargez la page Web pour que les modifications prennent effet.

J'espère que cela aidera.

Voici un lien vers l'image.

https://www.facebook.com/photo.php?fbid=10201389704683447&l=5294c0075e

Tahir taous
la source
2
Je n'essaie pas de bloquer tout le javascript. Je veux seulement empêcher le javascript d'intercepter les clics droits de la souris. Certains navigateurs vous donnent cette option.
Peter
-1

J'ai trouvé cette extension chrome RightToCopy

il permet de cliquer avec le bouton droit de la souris et de sélectionner et copier le texte des sites.

JerryGoyal
la source
-1

En me basant sur la solution Shi B., j'ai trouvé un moyen fiable de résoudre le problème sur Google Chrome.

(1) Obtenez un plugin javascript-for-web personnalisé pour Chrome.

(2) Coller document.oncontextmenu=null;dans la console du plugin.

Fonctionne comme un charme.

Karolis
la source
(Je sais que c'est vieux, mais je suis trop curieux de le laisser faire) Pourquoi dans le monde utiliseriez-vous cela au lieu de la console par défaut pour cela? Pour moi, cela ressemble à un moyen plus difficile d’atteindre exactement le même objectif.
Dennis Krøger
1
dans mon cas, je revenais sur le même site (Dropbox Paper). Donc, il a automatiquement ce script exécuté pour un site Web. Heureusement, la compagnie a réglé le
problème
document.oncontextmenu=null;ne fonctionne pas sur sheets.google.com en chrome.
xaxxon