WebMasters Online - Brasil
http://www.webmastersonline.com.br/

JavaScript : Não mostrar "Exibir codigo-fonte"
http://www.webmastersonline.com.br/viewtopic.php?f=6&t=94
Página 1 de 1

Autor:  rareal [ Sex Fev 16, 2007 12:38 am ]
Assunto do Tópico:  JavaScript : Não mostrar "Exibir codigo-fonte"

Bem, me perguntam a rodo como é que faz para não exibir o código fonte de uma página. Pois bem, vamos a um script que irá desabilitar o "Exibir Código Fonte" do menu "Exibir" do Internet Explorer e desabilitar o botão direito do mouse.

Vamos ao script :

Código:
<script language="JavaScript">
var specialcase = ((navigator.userAgent.indexOf('Mac') != -1) || document.all)
var flag = 0;
var msg = 'Botão direito desabilitado.\nNão copie.';
var x,y,x1,y1,copyAttempt;

function init()
{
if (!(document.getElementById || document.all || document.layers)) return;
if (specialcase && document.layers)
{
  document.captureEvents(Event.MOUSEMOVE);
  document.onmousemove = special;
}
for (i=0;i<document.images.length;i++)
{
  document.images[i].onmousedown = checkIt;
  document.images[i].onmouseup = function() {return false};
  if (specialcase)
  {
   document.images[i].onmousemove = special;
   document.images[i].onclick = clearIt;
  }
}
}

function checkIt(e)
{
copyAttempt = 0;
if (window.Event)
{
  x = e.screenX;
  y = e.screenY;
  theButt = (e.which == 3);
}
else
{
  x = window.event.clientX;
  y = window.event.clientY;
  theButt = (window.event.button == 2);
}
if (theButt)
{
  copyAttempt = 1;
  flag = 0;
  alert(msg);
  return false; // NN4 only
}
if (specialcase) flag = 1;
return false;
}

function special(e)
{
theObj = '';
if (window.Event)
{
  x1 = e.screenX;
  y1 = e.screenY;
  if (e.target.parentNode) theObj = e.target.parentNode.tagName;
}
else
{
  x1 = window.event.clientX;
  y1 = window.event.clientY;
  theObj = window.event.srcElement.parentElement.tagName;
}
var isLink = (theObj == 'A');
if (flag && (!isLink || ((Math.abs(x-x1) > 10) || (Math.abs(y-y1) > 10))))
{
  copyAttempt = 1;
  flag = 0;
  alert(msg);
  return false;
}
}

function clearIt()
{
flag = 0;
if (copyAttempt)
{
  copyAttempt = 0;
  return false;
}
}

</script>



Com o script feito, basta chama-lo no carregamento da página (falha número1 : se sua página demorar para abrir, é possível - mesmo sendo difícil- que em uma fração de segundos o usuário possa cancelar o carregamento da página e ver o código fonte, pois o corpo do HTML ainda não carregou) :

Código:
<BODY onLoad="init()">



Se a sua intensão é proteger gente de copiar imagens da sua página (outra grande besteira, pois um simples Print Screen destroi seu esquema), o IE6 agora mostra uma simpática barra de ferramentas com algumas opções como salvar ao parar o mouse sobre uma imagem. Para evitar isso você vai precisa de um cabeçalho META (lembre-se : entre as tags <HEAD></HEAD> da sua página) :


Código:
<META HTTP-EQUIV="imagetoolbar" CONTENT="no">


Bem, tudo isso pra mim é uma besteira, pois como disse sempre vai existir alguém que quebre esse sistema. Tudo o que foi feito aqui foi dificultar o acesso, mas não é infalível.
E ainda por cima, não há nada mais irritante do que você estar navegando, ver um link em uma página e não querer fechá-la, então você clica no link com o botão direito para "Abrir link em uma nova janela..." e ...o mouse tá com o botão direito desabilitado... Saco...


Fonte: Lula.PRO

Página 1 de 1 Todos os Horários estão como UTC - 3 horas