Como faço para desativar o botão direito na minha página web?

Posso desativar o botão direito do mouse na minha página da web sem usar JavaScript? Eu pergunto isso porque a maioria dos navegadores permite ao usuário desativar o JavaScript.

Se não, como eu uso o JavaScript para desabilitar o botão direito?

Você pode fazer isso com JavaScript adicionando um ouvinte de evento para o evento “contextmenu” e chamando o preventDefault() :

 document.addEventListener('contextmenu', event => event.preventDefault()); 

Dito isto: NÃO FAÇA ISSO.

Por quê? Porque não atinge nada além de usuários irritantes. Além disso, muitos navegadores têm uma opção de segurança para impedir a desativação do menu de contexto (contexto) de qualquer maneira.

Não tenho certeza por que você iria querer. Se estiver fora de alguma crença errada de que você pode proteger seu código-fonte ou imagens dessa maneira, pense novamente: você não pode.

NÃO FAÇA

Apenas não faça.

Não importa o que você faça, você não pode impedir que os usuários tenham access total a todos os dados do seu site. Qualquer Javascript que você codifique pode ser traduzido simplesmente desativando o Javascript no navegador (ou usando um plugin como o NoScript). Além disso, não há como desativar a capacidade de qualquer usuário de simplesmente “visualizar a origem” ou “exibir informações da página” (ou usar o wget) para o seu site.

Não vale a pena o esforço. Não vai funcionar de verdade. Isso tornará seu site hostil aos usuários. Eles vão perceber isso e parar de visitar. Não há benefício em fazer isso, apenas desperdício de esforço e perda de tráfego.

Não faça

Atualização: Parece que este pequeno tópico provou ser bastante controverso ao longo do tempo. Mesmo assim, mantenho esta resposta a essa pergunta. Às vezes, a resposta correta é o aconselhamento, em vez de uma resposta literal.

As pessoas que tropeçam nessa questão na esperança de descobrir como criar menus de contexto personalizados devem procurar em outro lugar, como estas perguntas:

  • Fazendo menus de contexto personalizados com o botão direito do mouse para o meu aplicativo da Web , que se baseia no jQuery
  • Como adicionar um menu de atalho personalizado a uma página da Web , que usa o javascript / html puro

A pergunta original era sobre como parar com o botão direito do mouse, pois o usuário pode desativar o JavaScript : que soa nefasto e maligno (daí as respostas negativas) – mas todas as duplicatas são redirecionadas aqui, embora muitas das duplicatas estejam pedindo menos propósitos malignos.

Como usar o botão direito do mouse em jogos HTML5, por exemplo. Isso pode ser feito com o código embutido acima, ou um pouco melhor é algo assim:

 document.addEventListener("contextmenu", function(e){ e.preventDefault(); }, false); 

Mas se você estiver fazendo um jogo, lembre-se de que o botão do botão direito aciona o evento contextmenu – mas também triggers os events regulares de mousedown e mouseup também. Então, você precisa verificar a propriedade do evento para ver se foi o botão esquerdo do mouse (que === 1), o meio (que === 2) ou o botão direito (que === 3) do mouse está triggersndo o evento.

Aqui está um exemplo no jQuery – note que pressionando o botão direito do mouse irá triggersr três events: o evento mousedown, o evento contextmenu e o evento mouseup.

 // With jQuery $(document).on({ "contextmenu": function(e) { console.log("ctx menu button:", e.which); // Stop the context menu e.preventDefault(); }, "mousedown": function(e) { console.log("normal mouse down:", e.which); }, "mouseup": function(e) { console.log("normal mouse up:", e.which); } }); 

Então, se você estiver usando os botões esquerdo e direito do mouse em um jogo, você terá que fazer alguma lógica condicional nos manipuladores de mouse.

Se você não se importa em alertar o usuário com uma mensagem toda vez que ele tentar clicar com o botão direito, tente adicionar isso à sua tag body

  

Isso bloqueará todo o access ao menu de contexto (não apenas a partir do botão direito do mouse, mas também do teclado).

No entanto, como mencionado nas outras respostas, realmente não adianta adicionar um desabilitador de clique direito. Qualquer pessoa com conhecimento básico de navegador pode visualizar a origem e extrair as informações necessárias.

Se você é um fã de jquery, use este

  $(function() { $(this).bind("contextmenu", function(e) { e.preventDefault(); }); }); 

Se o seu objective é evitar que as pessoas façam o download das suas imagens, como a maioria das pessoas já disse, desabilitar o clique direito é praticamente ineficaz.

Supondo que você esteja tentando proteger imagens, os methods alternativos são:

Usando um flash player, os usuários não podem baixá-los como tal, mas podem fazer facilmente uma captura de canvas.

Se você quer ser mais desajeitado, faça da imagem o fundo de uma div, contendo uma imagem transparente, à la –

 

será o suficiente para impedir o roubo ocasional de suas imagens (veja abaixo para uma amostra), mas como com todas essas técnicas, é trivial para derrotar com uma compreensão básica de html.

Primeiro, você não pode conseguir isso sem usar uma capacidade do lado do cliente. É aqui que o javascript é executado.

Em segundo lugar, se você está tentando controlar o que um usuário final pode consumir do seu site, então você precisa repensar como você exibe essa informação. Uma imagem tem um URL público que pode ser obtido via HTTP sem a necessidade de um navegador.

A autenticação pode controlar quem tem access a quais resources.

A marca d’água incorporada em imagens pode provar que a imagem era de uma pessoa / empresa específica.

No final do dia, o gerenciamento de resources é realmente gerenciamento de usuários / convidados.

A primeira regra da Internet, se você não quiser, não a torne pública!

A segunda regra da Internet, se você não quiser, não coloque na Internet!

Você não pode realizar o que está perguntando sem usar o Javascript. Qualquer outra tecnologia que você escolha usar só pode ajudar a compor a página da Web no lado do servidor para ser enviada ao navegador.

Simplesmente não há boa solução e não há período de solução sem o Javascript.

Se o seu objective é permitir que os usuários simplesmente salvem suas imagens, você também pode verificar se o alvo clicado é uma imagem, apenas desabilite o botão direito do mouse nesse caso. Então clique direito pode ser usado para outros fins. Retirado do código acima:

 document.addEventListener("contextmenu", function(e){ if (e.target.nodeName === "IMG") { e.preventDefault(); } }, false); 

Isso é apenas para tirar a maneira mais fácil de salvar suas imagens, mas isso ainda pode ser feito.

          

Faça como abaixo (funciona também no firefox):

 $(document).on("contextmenu",function(e){ if( e.button == 2 ) { e.preventDefault(); callYourownFucntionOrCodeHere(); } return true; }); 

Claro, como todos os outros comentários aqui, isso simplesmente não funciona.

Uma vez eu construí um applet java simples para um cliente que forçava qualquer captura de uma imagem a ser feita via captura de canvas e você gostaria de considerar uma técnica similar. Funcionou dentro das limitações, mas ainda acho que foi uma perda de tempo.

Coloque este código na sua tag da sua página.

  

Isso desativará o clique direito em toda a página da Web, mas somente quando o JavaScript estiver ativado.

Desativar clique direito no site:

  

ou o próximo método é:

  
   

Tente isto

  

Desativar o botão direito do mouse na sua página da web é simples. Existem apenas algumas linhas de código JavaScript que farão esse trabalho. Abaixo está o código JavaScript:

 $("html").on("contextmenu",function(e){ return false; }); 

No código acima, selecionei a tag. Depois de adicionar apenas essas três linhas de código, ele desativará o clique direito na sua página da web.

Fonte: Desativar clique direito, copiar, cortar na página da web usando jQuery

  $(document).ready(function () { document.oncontextmenu = document.body.oncontextmenu = function () { return false; } }); 

Eu sei que estou atrasado, mas quero criar algumas suposições e explicações para a resposta que vou fornecer.

Posso desativar o clique com o botão direito

Posso desabilitar o botão direito do mouse na minha página da web sem usar o Javascript?

Sim, usando JavaScript você pode desabilitar qualquer evento que aconteça e você pode fazer isso principalmente apenas pelo javaScript. Como tudo o que você precisa é:

  1. Um hardware de trabalho

  2. Um site ou algum lugar a partir do qual você pode aprender sobre os códigos de teclas. Porque você vai precisar deles.

Agora vamos dizer que você quer bloquear a tecla Enter, aqui está o código:

 function prevententer () { if(event.keyCode == 13) { return false; } } 

Para o clique direito, use isto:

 event.button == 2 

no lugar de event.keyCode . E você vai bloquear isso.

Eu quero perguntar isso porque a maioria dos navegadores permitem que os usuários o desativem por Javascript.

Você está certo, os navegadores permitem que você use JavaScript e o JavaScript faz todo o trabalho para você. Você não precisa configurar nada, só precisa do atributo script na cabeça.

Por que você não deve desativá-lo?

A resposta principal e rápida para isso seria que os usuários não gostarão disso . Todo mundo precisa de liberdade, ninguém quer dizer que ninguém quer ser bloqueado ou desativado, alguns minutos atrás eu estava em um site, que me impediu de clicar com o botão direito e eu senti o porquê? Você precisa proteger seu código-fonte? Então aqui ctrl+shift+J eu abri o Console e agora posso ir para o guia de HTML-code . Vá em frente e me pare. Isso não adicionará nenhuma camada de segurança ao seu aplicativo.

Há muitos menus úteis no botão direito do mouse, como Copiar, Colar, Pesquisar no Google por “texto” (no Chrome) e muito mais. Assim, o usuário gostaria de obter facilidade de access em vez de lembrar de muitos atalhos de teclado. Qualquer pessoa ainda pode copiar o contexto, salvar a imagem ou fazer o que quiser.

Navegadores usam navegação por mouse: Alguns navegadores, como o Opera, usam navegação por mouse, portanto, se você desativá-lo, o usuário definitivamente odeia sua interface de usuário e os scripts.

Então, esse era o básico, eu ia escrever um pouco mais sobre como salvar o código-fonte hehehe mas, deixe que seja a resposta para sua pergunta.

Referência aos códigos de tecla:

Código do botão da tecla e do mouse:

http://www.w3schools.com/jsref/event_button.asp

https://developer.mozilla.org/en-US/docs/Web/API/event.button (seria apreciado pelos usuários também).

Por que não desativar o clique direito:

http://www.sitepoint.com/dont-disable-right-click/

Se você estiver usando jquery, você pode tentar este código:

 $(document).bind("contextmenu", function (event) { event.preventDefault(); )); 

Verifique isto: http://www.landcoder.com/4-dynamic-interactive-code-snippets-jquery-705#disablerightclick

Javascript:

 document.getElementsByTagName("html")[0].setAttribute("oncontextmenu", "return false"); 

Nota importante: Depende do navegador e do sistema operacional para permitir essa prevenção ou não!

Você deve fazer isso? Não Porque não vai impedir o usuário, mas vai apenas incomodá-lo.

Você pode usá-lo? Sim Exemplos: Em alguns aplicativos da Web em que você deseja ter um menu pop-up personalizado, no jogo em que os usuários podem ficar incomodados quando clicam com o botão direito do mouse e em outros casos.

Chrome (v65) no Ubuntu 16.04 = Você pode desativar o botão direito do mouse.

Chrome (v65) no Mac OS 10.11 = Você NÃO PODE desabilitar o botão direito do mouse.

Chrome (v65) no Windows 7 = Você NÃO PODE desabilitar o botão direito do mouse.

Firefox (v41) no Mac OS 10.11 = Você pode desativar o botão direito do mouse.

Firefox (v43) no Windows 7 = Você pode desativar o botão direito do mouse.

 // JS way document.addEventListener('contextmenu', function(e){ e.preventDefault(); }); // jQuery way $(document).bind('contextmenu', function(e) { e.preventDefault(); }); 

Eu usei esse código para desativar o botão direito em qualquer página da web, está funcionando bem. Você pode usar este código

 jQuery(document).ready(function(){ jQuery(function() { jQuery(this).bind("contextmenu", function(event) { event.preventDefault(); alert('Right click disable in this site!!') }); }); }); 
   Right click disable in web page    You write your own code