Desativar clique direito do mouse nas páginas

Desativar o clique do botão direito do mouse nas páginas web, não significa bloquear o código fonte, apenas dificulta a visualização do mesmo. Veja meu post sobre maneiras de visualizar o código fonte das páginas.

Mas você pode ter suas razões para querer fazer isso. Então vamos ver algumas opções. Já que no mundo do desenvolvimento existem diversas maneiras de se resolver um problema, vou apresentar as soluções que conheço.

A primeira e mais simples que conheço, é adicionar um parâmetro a tag body do seu documento html.

<body oncontextmenu="return false;">

Isso fará o menu do botão direito sumir da página.

Mas talvez você não queira que apenas desapareça o menu. Talvez você queira fazer um menu personalizado, com as opções de menu da sua página.

Então você faria algo do tipo:

<script language="JavaScript"> 
document.oncontextmenu = exibeMenu;
if ( document.all && window.print ) document.body.onclick = ocultaMenu;

function ocultaMenu() {

  divMenu.style.visibility = "hidden";

}

function exibeMenu() {

  var posDireita = document.body.clientWidth-event.clientX;

  var posBase = document.body.clientHeight-event.clientY;

  if ( posDireita < divMenu.offsetWidht )

    divMenu.style.left = document.body.scrollLeft+event.clientX-divMenu.offsetWidht;

  else

    divMenu.style.left = document.body.scrollLeft+event.clientX;

  if ( posBase < divMenu.offsetHeight )

    divMenu.style.top = document.body.scrollTop+event.clientY-divMenu.offsetHeight;

  else

    divMenu.style.top = document.body.scrollTop+event.clientY;

  divMenu.style.visibility = "visible";

  return false;

}

</script>

<div id="divMenu" style="visibility: hidden;">

sua mensagem no menu personalizado!

</div>

Não é tão complicado quanto parece, na verdade são dois métodos. Você começa o código capturando os cliques do mouse no document.oncontextmenu, e chama a função exibe menu, se já estiver sendo exibido, então irá chamar a função oculta menu.

Na sua página tem uma div, que possui o conteúdo a ser apresentado. No oculta menu você apenas oculta a div. No exibe menu você mostra a div, e tem um controle de posicionamento desta div. Detalhe que esse código não foi testado em todos os navegadores, então pode haver alguma instabilidade no que faz referência a posicionamento da div.

E por último, o mais conhecido e comum dos bloqueios de clique. O alerta em javascript:

<script language="JavaScript">
function bloqueiaClique() {  
  if ( event.button == 2 || event.button == 1+2 || event.button == 2+1 ) {
    alert('Eu sou chato e bloqueei o seu clique!');
  }
}

document.onmouseup = bloqueiaClique

document.onmousedown = bloqueiaClique

</script>

E tá feito. Agora você já pode incomodar todo mundo bloqueando o clique de botão direito nas suas páginas.

At+



Sobre o Autor

MarioSAM é faixa preta 2Dan de Taekwondo. Entusiasta do marketing online. Especulador do mercado financeiro. Projetista web com certificação SCJP da SUN. Com 10 anos de experiência em desenvolvimento de sistemas.