¿Cómo configuro Google Chrome para que no permita que JavaScript secuestre mi menú de clic derecho

45

Desprecio los sitios web que secuestran el botón derecho del mouse a través de JavaScript. Otros navegadores (como Firefox) me permiten bloquear sitios para que no hagan esto. ¿Chrome tiene esa opción, o me deja a merced de molestos diseñadores de sitios web?

No quiero desactivar javascript por completo. Solo quiero bloquear javascript para que no se apodere de mi botón derecho del mouse. Firefox te permite evitar que JavaScript haga cosas específicas como esta. Estoy tratando de averiguar si Chrome también lo hace. Voy a suponer que no lo hace en este momento.

Peter
fuente

Respuestas:

17

Pruebe esta extensión de Chrome, específicamente evita que los sitios web bloqueen el botón de clic derecho.

Habilitar clic derecho

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

Alexander Lai
fuente
¡Esto parece prometedor!
Peter
44
Es realmente decepcionante Chrome requiere una extensión para esto, pero soluciona el problema. Respuesta votada, pero sigue buscando una solución mejor.
JM Becker
Esto funcionó a las mil maravillas. Me estaba preparando para construir mi propia extensión. Yay para la investigación.
Hasta el
77
@Karl Morrison: Creo que puede haber entendido mal mis críticas, no estaba criticando a Chrome por deshabilitar el menú contextual. Me irritó que Chrome no proporciona un método para desactivar selectivamente las funciones de Javascript. También quiero mencionar que deshabilitar JavaScript hará que muchos sitios no funcionen. Firefox ofrece la opción Javascript "Deshabilitar o reemplazar menús contextuales".
JM Becker
1
@Alexander, no funciona. Probado en Google Docs con el navegador Chrome.
Pacerier
14

Presione F12para sacar las Herramientas para desarrolladores de Google Chrome y navegue a la Consolepestaña y ejecute el siguiente comando:

document.oncontextmenu=null;

Debería recuperar la mayor parte del menú contextual.

También debería funcionar para Firefox.

Por supuesto, en Firefox puedes usar Shift+ clic derecho para omitir el menú contextual de JS.

Shi B.
fuente
77
No funciona Probado en Google Docs con el navegador Chrome.
Pacerier
@Pacerier No sé qué magia vudú lanzó Google en Docs, no está utilizando oncontextmenu y, por lo tanto, mi solución no funciona. Sin embargo, el otro método que mencioné debería funcionar también en Chrome, use Shift + clic derecho para abrir el menú contextual original.
Shi B.
No funciona para mi
Ben Wheeler
1
Para contrarrestar los comentarios de "no funciona", esto funciona, puede que no funcione para todos los sitios web, pero la respuesta de @ shi-b sí funciona ...
Robert Swift
Dependerá de a qué elemento dom se haya adjuntado el contextmenu eventlistener. A menudo será un documento, pero podría adjuntarse a cualquier elemento.
Scott Christopherson
4

Encontré una solución aceptable, de About.com . Es un pequeño marcador, en el que, por naturaleza, se debe hacer clic para forzar la desactivación de este molesto JS en particular. Sin embargo, me parece mejor que la opción de estilo Firefox, ya que muchos sitios necesitan hacer clic con el botón derecho en JS. Por ejemplo, Google Docs, etc.

Al menos no necesito desperdiciar recursos almacenando una extensión adicional en la memoria. Puede ver cómo Chrome almacena extensiones con su administrador de tareas, por lo general, necesita una extensión instalada para ver.

JM Becker
fuente
El codigo es javascript:void(document.onmousedown=null);void(document.onclick=null);void(document.oncontextmenu=null). Lamentablemente, no me funciona en Netflix con Google Chrome. Pero chrome.google.com/webstore/detail/allow-right-click/… funcionó .
Aaron Thoma
2

Yo uso NotScripts

EDITAR:

He cambiado a ScriptNo , que tiene un control más granular.

Moab
fuente
1
¿Eso le permite controlar lo que JavaScript puede y no puede hacer en una página, o simplemente bloquea JavaScript por completo?
Peter
Bloquea js por dominio, cada dominio seleccionable por usted, depende de lo que quiera decir con secuestrar su clic derecho, ¿quiere decir que cambia su menú contextual?
Moab
3
sí. Quiero la capacidad de evitar que JavaScript use eventos de clic del mouse que provienen del botón derecho del mouse.
Peter
Otra solución no grata, pero un gran paso por encima de JS completamente deshabilitado. He usado FireFox noscript, que todavía es difícil de usar, pero Chrome no script es incluso peor. Ambos requieren un control manual de intervención, y básicamente solo habilitan / deshabilitan JS completamente por dominio. Si desea resolver el problema, de deshabilitar JS DOM específico específico, ambos no son suficientes. Aunque por la piel de los dientes, es lo suficientemente bueno como para evitar mi voto negativo.
JM Becker
@TechZilla revisa mi edición anterior
Moab
0

Este folleto funciona en los sitios de Google / Youtube a partir de agosto de 2019 (probado en Chrome y 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();

Para sitios más molestos, configure / pase agresivo a verdadero (esto deshabilitará la mayoría de los controladores de eventos y, por lo tanto, deshabilitará la interacción con la página):

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
fuente
-1

Puede habilitar / deshabilitar o permitir / bloquear javascript fácilmente en cualquier sitio web en Google Chrome. Simplemente haga clic en el letrero de papel antes de la URL del sitio. Debajo de los permisos, verá javescript, haga clic en la flecha hacia abajo, verá un menú, seleccione "Bloquear siempre en este sitio" y vuelva a cargar la página web para que los cambios surtan efecto.

Espero que esto ayude.

Aquí hay un enlace a la imagen.

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

Tahir taous
fuente
2
No estoy tratando de bloquear todo javascript. Solo quiero bloquear JavaScript para que no intercepte los clics del mouse derecho. Algunos navegadores te dan esa opción.
Peter
-1

Encontré esta extensión de Chrome RightToCopy

permite hacer clic derecho y seleccionar y copiar la función de texto de los sitios.

JerryGoyal
fuente
-1

Sobre la base de la solución Shi B. Obtuve una forma confiable de resolver el problema en Google Chrome.

(1) Obtenga el complemento javascript-for-web personalizado para Chrome.

(2) Pegar document.oncontextmenu=null;en la consola del complemento.

Funciona de maravilla.

Karolis
fuente
(Sé que esto es viejo, pero tengo demasiada curiosidad para dejarlo) ¿Por qué demonios usarías eso en lugar de la consola predeterminada para esto? Para mí, parece una forma más difícil de lograr exactamente lo mismo.
Dennis Krøger
1
en mi caso, volvía al mismo sitio web (Dropbox Paper). Por lo tanto, se ejecutó automáticamente ese script para un sitio web. Afortunadamente, la compañía lo arregló
Karolis
document.oncontextmenu=null;no funciona en sheet.google.com en Chrome.
xaxxon