Como faço para configurar o Google Chrome para não permitir que o javascript sequestre meu menu de clique com o botão direito

45

Eu desprezo sites que sequestram meu botão direito do mouse via javascript. Outros navegadores (como o Firefox) me permitem impedir que sites façam isso. O chrome tem essa opção ou me deixa à mercê de designers de sites irritantes?

Não quero desativar o javascript completamente. Eu só quero bloquear o javascript de assumir o meu botão direito do mouse. O Firefox permite que você pare o javascript de fazer coisas específicas como essa. Estou tentando descobrir se o Chrome também funciona. Eu vou assumir que não neste momento.

Peter
fonte

Respostas:

17

Experimente esta extensão do Chrome, que impede especificamente sites de bloquear o botão direito do mouse.

Ativar clique direito

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

Alexander Lai
fonte
isso parece promissor!
Peter
4
É realmente decepcionante que o chrome exija uma extensão para isso, mas resolve o problema. Resposta votada, mas ainda procurando por uma solução melhor.
JM Becker
Isso funcionou como um encanto. Eu estava me preparando para criar minha própria extensão. Yay para pesquisa.
Até
7
@Karl Morrison: Eu acho que você pode ter entendido mal as minhas críticas, eu não estava criticando o chrome por desativar o menu do botão direito. Fiquei irritado porque o chrome não fornece um método para desativar seletivamente as funções Javascript. Também quero mencionar que a desativação do JavaScript tornará muitos sites não funcionais. O Firefox fornece a opção Javascript "Desativar ou substituir menus de contexto".
JM Becker
1
@ Alexander, não funciona. Testado no Google Docs usando o navegador Chrome.
Pacerier 20/08/16
14

Pressione F12para destacar as Ferramentas do desenvolvedor do Google Chrome, navegue até a Consoleguia e execute o comando abaixo:

document.oncontextmenu=null;

Ele deve trazer a maior parte do menu de contexto de volta.

Também deve funcionar para o Firefox.

É claro que no Firefox você pode usar Shift+ clique com o botão direito do mouse para ignorar o menu de contexto do JS.

Shi B.
fonte
7
Não funciona Testado no Google Docs usando o navegador Chrome.
Pacerier 20/08/16
@ Pacerier Não sei que magia vodu o Google lançou no Google Docs, ele não está utilizando o menu oncontext e, portanto, minha solução não funciona. No entanto, o outro método que eu mencionei também deve funcionar no Chrome, use Shift + clique com o botão direito para abrir o menu de contexto original.
Shi B.
Não funciona para mim.
Ben Wheeler
1
Para combater os comentários "não funciona" - isso funciona, pode não funcionar para todos os sites, mas a resposta de @ shi-b funciona ...
Robert Swift
Depende de qual elemento dom o ouvinte de evento do menu de contexto foi anexado. Muitas vezes, é um documento, mas pode ser anexado a qualquer elemento.
Scott Christopherson
4

Encontrei uma solução aceitável, no site About.com . É um pequeno bookmarklet, que por natureza deve ser clicado para forçar a desativação dessa JS irritante em particular. No entanto, acho melhor que a opção de estilo do Firefox, pois muitos sites precisam clicar com o botão direito do mouse no controle de JS. Por exemplo, Google Docs, etc ...

Pelo menos não preciso desperdiçar recursos armazenando uma extensão adicional na memória. Você pode assistir como o chrome armazena extensões com seu gerenciador de tarefas, ou seja, você precisa de uma extensão instalada para assistir.

JM Becker
fonte
O código é javascript:void(document.onmousedown=null);void(document.onclick=null);void(document.oncontextmenu=null). Infelizmente, isso não funciona para mim no Netflix com o Google Chrome. Mas chrome.google.com/webstore/detail/allow-right-click/… funcionou .
Aaron Thoma
2

Eu uso NotScripts

EDITAR:

I ter mudado para ScriptNo , que tem mais controlo granular

Moab
fonte
1
Isso permite controlar o que o javascript pode ou não fazer em uma página ou apenas bloqueia o javascript completamente?
Peter
Ele bloqueia js por domínio, cada domínio selecionável por você, depende do que você quer dizer com seqüestrar o botão direito do mouse. Você quer dizer que ele altera o menu de contexto?
Moab
3
sim. Eu quero a capacidade de parar o javascript usando eventos de clique do mouse que vêm do meu botão direito do mouse.
6266 Peter
Outra solução não grata, mas um grande passo acima do JS completamente desativado. Eu usei o noscript do FireFox, que ainda é pouco utilizável, mas os scripts do Chrome são ainda piores. Ambos requerem uma intervenção manual e basicamente ativam / desativam o JS completamente por domínio. Se você deseja resolver o problema, desabilitando o JS DOM específico específico, ambos não são suficientes. Embora pela pele dos dentes, é bom o suficiente para evitar meu voto negativo.
JM Becker
@TechZilla verifique minha edição acima
Moab
0

Este bookmarlet funciona nos sites do Google / Youtube a partir de agosto de 2019 (testado no Chrome e 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 sites mais pesados, defina / passe agressivo para true (isso desativará a maioria dos manipuladores de eventos e, portanto, a interação com a 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
fonte
-1

Você pode ativar / desativar ou permitir / bloquear o javascript facilmente em qualquer site no Google chrome. Basta clicar no sinal de papel antes do URL do site. Sob as permissões, você verá javescript, clique na seta para baixo, verá um menu, selecione "Sempre bloquear neste site" e recarregue a página da Web para que as alterações entrem em vigor.

Espero que isso ajude.

Aqui está o link para a imagem.

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

Tahir taous
fonte
2
Não estou tentando bloquear todo o javascript. Eu só quero bloquear o javascript de interceptar cliques com o botão direito do mouse. Alguns navegadores oferecem essa opção.
Peter
-1

Encontrei esta extensão do Chrome RightToCopy

permite clicar com o botão direito e selecionar e copiar o recurso de texto dos sites.

JerryGoyal
fonte
-1

Com base na solução Shi B., tenho uma maneira confiável de resolver o problema no Google Chrome.

(1) Obtenha o plugin javascript personalizado para web do Chrome.

(2) Cole document.oncontextmenu=null;no console do plug-in.

Funciona como um encanto.

Karolis
fonte
(Eu sei que isso é antigo, mas estou curioso demais para deixar isso acontecer) Por que no mundo você usaria isso em vez do console padrão para isso? Para mim, parece uma maneira mais difícil de conseguir exatamente o mesmo.
Dennis Krøger 8/0318
1
no meu caso, eu estava voltando ao mesmo site (Dropbox Paper). Por isso, ele executou automaticamente esse script para um site. Felizmente, a empresa fixa-lo
Karolis
document.oncontextmenu=null;não funciona em sheets.google.com no chrome.
Xaxxon