Javascript屏蔽右键的方法

网页制作者经常遇到如何彻底禁止查看网页源代码的问题。有没有方法可以解决呢?使用ASP、JSP等服务器端编程技术可以实现对网页源代码的保护,但目前国内网站所提供的免费个人主页空间一般都不提供对服务器端编程的支持,所以对于这些用户,要禁止访问者查看网页源代码就只能在客户端编程上下工夫了。
   查看源代码的方式
   要禁止访问者查看网页源代码,我们首先要了解一下查看源代码的方式(以IE 5.0为例)。一是右键菜单方式; 二是窗口菜单栏查看方式,即选择"查看"*"源文件"方式。要彻底禁止访问者查看网页源代码,就必须屏蔽这2种查看源代码的方式。
   屏蔽右键菜单查看方式
   现在,很多网页采用如下代码屏蔽右键菜单:
   < Script Language=javascript>
   function Click(){
   if(event.button==2){alert
   (版权所有(C)2001 XXX工作室);
   }}
   document.onmousedown=Click;
   < /Script>
   实际上"button"有8个属性值(即0~7),"button==2"只是表示按下鼠标右键,所以上述代码实际上只能限制点击鼠标右键的情况,至于其他5种方式,如同时按左右键、中间键、左和中间键、右和中间键和按所有键的情况就不能限制了。所以在弹出版权信息提示窗口后(如图3所示),按"确定"按钮仍然会出现快捷菜单。针对这种情况,其实只要将"event.button==2"改为"event.button!=1"就可以做到无论用何种鼠标点击方式,均不出现右键菜单了。
   不过即使进行上述修改后,也并不能彻底禁止右键菜单的出现。破解方法:这时用上面的两种方法无法破解,看看这一招:在超链接上点鼠标右键,弹出窗口,这时不要松开右键,按键盘上的空格键,窗口消失了,这时松开右键,可爱的右键菜单又出现了,选择其中的“在新窗口中打开”就可以了。
  上面的方法你全都知道?那再看下面的你知道不知道?在浏览器中点击“查看”菜单上的“源文件”命令,这样就可以看到html源代码了。不过如果网页使用了框架,你就只能看到框架页面的代码,此方法就不灵了,怎么办?你按键盘上的“Shift+F10”组合键试试,出现什么了?哇!直接出现右键菜单了!嘿嘿,这一招你不知道吧!
  我还有一招:看见键盘右Ctrl键左边的那个键了吗?按一下试试,右键菜单直接出现了!这一招在江湖上可是很少见到的,如何?如果还不行,那就必须使出我的独门绝招了!在屏蔽鼠标右键的页面中点右键,出现限制窗口,此时不要松开右键,用左手按键盘上的“ALT+F4”组合键,这时窗口就被关闭了,松开鼠标右键,菜单出现了!
   那么有没有办法彻底禁止右键快捷菜单的出现呢?其实只要将上述代码做如下修改即可。
   < Script Language=javascript>
   function Click(){
   alert(版权所有(C)2001 XXX工作室);
   window.event.returnValue=false;
   }
   document.oncontextmenu=Click;
   < /Script>
   这样无论采取什么方式点击鼠标,都不会再出现快捷菜单了。不过值得注意的是,如果访问者直接在浏览器地址栏中键入"javascript:alert(document.oncontextmenu=)",就可以解除对右键菜单的屏蔽。

禁用右键属性:故针对上述破解方法,可以采用如下代码:<script>
fuction stop(){
alert (严禁复制)
return false;
}
document.oncontextmenu=stop
</script>
这样,这些常见破解方式都不适用了。 不过,只要浏览者把ie里的javascript脚本禁用了。那么上述屏蔽都白费了。 所以,可采用下面的方法。 修改网页属性: 这种通过修改网页属性的屏蔽右键的方法。这种方法利用了html里的〈body〉来作修改,它只有以下短短的一行代码:
〈body oncontextmenu=self.event.returnvalue=false〉

  这里,定义了oncontextmenu。使得右键的值为false,起到了屏蔽右键的效果。现在,再试试看刚才的破解方法,已经不行了。左右键连击已经不能再打开右键菜单。不但是这个,再试试看其他的方法。无论你怎样的乱点,右键都没有用。因为在这个网页里,右键已经不存在了。对于一个不存在的功能键,你又能做什么呢?

屏蔽选定复制:

屏蔽了右键还不能解决问题。如果我要复制一段文字,或是一张图片。那么,把它选中后用ctrl+c 再用 ctrl+v不就可以复制粘贴了嘛。对了,接下来要讲的,就是屏蔽左键(什么?屏蔽左键?那这个网页不就差不多废掉了?别急,没说完呢,左键只有一项功能是很讨厌的)的选定功能。

  那么,如上所说,用js来屏蔽是没有用的,治标不治本的。那么,我们就还用网页的最基础的语言:html来定义吧。还是老招数,定义〈body〉。这次用的参数是:onselectstart。就是左键选定的参数。代码如下:

〈body onselectstart="return false"〉

  这样,左键选定功能就给轻易屏蔽了。原理和上面的一样。现在,再用你的左键选择任意内容把,已经没有用了。自然也不能ctrl + c,ctrl +v了。那么,现在我们来把这两部分合并起来。彻底控制左右键!:

<body oncontextmenu="return false" ondragstart="return false" onselectstart="return false">

另外,在页面中加入如下代码也可以达到屏蔽选定功能的目的。

<script language="javascript1.2">
//disable select-text script (ie4+, ns6+)- by small
function disableselect(e){
return false
}
function reenable(){
return true
}
//if ie4+
document.onselectstart=new function ("return false")
//if ns6
if (window.sidebar){
document.onmousedown=disableselect
document.onclick=reenable
}
</script>

 现在,左右键的问题总算是解决了吧。

    不过,对于以上这些方式,对于高手而言,都可通过查看源文件的方式来破解。你可以在将网页保存下来,在源文件中去掉相关代码内容,便可达到目的。
荆棘刺破我胸,鲜血中绽放出最后的绝唱,我爱你,但我今生注定要离你而去……

大家都知道,在ie浏览器的菜单栏里的“查看”项里。有一个“查看源代码”选项。这么一来,虽然我们屏蔽了右键里的查看源代码。但是,只要用菜单栏里的查看源代码,还是可以看到源代码的。这可怎么办呢?

框架方式:

最初的想法是用框架来避开源代码的查看。也就是说,只要一个网页是嵌在框架里的,那么在菜单栏里选择查看源代码查看到的只是框架网页的源代码。一般格式如下:

〈html〉

〈head〉
〈meta http-equiv="content-type" content="text/html; charset=gb2312"〉
〈title〉本网站标题〈/title〉
〈/head〉

〈frameset rows="47,*" framespacing="0" border="0" frameborder="0"〉
〈frame name="header" scrolling="no" noresize target="main" src="top.htm"〉
〈frame name="main" src="main.htm" scrolling="auto" target="_self"〉
〈noframes〉
〈body〉

〈p〉此网页使用了框架,但您的浏览器不支持框架。〈/p〉

〈/body〉
〈/noframes〉  
〈/frameset〉

〈/html〉

  这样看起来对方是没有直接看到你的源代码了。但是,如果一个人要看你的源代码,那他八成是能看懂的。如果懂一点html的话,都能看出这两句是什么意思:

〈frame name="header" scrolling="no" noresize target="main" src="top.htm"〉
〈frame name="main" src="main.htm" scrolling="auto" target="_self"〉

  这两句的意思就是:在header(也就是网页顶部)处引用相对路径下的top.htm网页文件。而在main(也就是占据网页大部分页面的位置)处引用相对路径下的main.htm网页文件。就这两点是关键的,其他就不作解释了,大家也都懂的。而上面所讲的利用框架来隐藏源代码的方法就是将要显示页面放在main部分。而将header部分的大小设为0。但是这样一来,利用菜单栏里的查看源代码,还是能查看到框架网页的源代码。只要看到这两句,就知道我们前面用的手法了。也就是说,只要将框架网页的名字改为目标网页,便可以用相同的方法直接看到目标网页的源代码了。如:框架网页:http://www.sina.com.cn/red.htm的源代码如上,就可以改为http://www.sina.com.cn/main.htm。这样便可直接浏览被保护网页,屏蔽源代码的效果还是没有达到。
荆棘刺破我胸,鲜血中绽放出最后的绝唱,我爱你,但我今生注定要离你而去……

1、出现主类窗口时,在页面目标上按下鼠标右键,弹出限制窗口,这时按住鼠标不要松开右键,将鼠标指针移到窗口的确定铵钮上,同时铵下左键。在松开左键,限制窗口被关闭了,再将鼠标移到目标上松开右键。就会弹出你所希望用的鼠标右键的菜单功能了。

    2、出现添加收藏夹的情况时:在目标上点鼠标右键,出现添加收藏夹的窗口,这时你不要松开右键,也不要移动鼠标,而是使用键盘的Tab键,来移动光标到取消铵钮上,铵下空格键,这时窗口消失了,松开右键看看,wonderful!右键功能恢复了,将鼠标移到你想要的功能上,点击就就可以了。

    3、超连接无法用鼠标右键弹出新窗口中打开菜单的情况:这时用上面的方法无法破解,这时你在超连接上点鼠标右键,弹出窗口,这时不要松开右键,铵键盘上的空格键,窗口消失,这时松开右键,这时右键的功能出现了,选取上现的在新窗口中打开就可以了。

    4.你还可以用键盘右Ctrl键左边那个键,铵一下试试看,是不是右键直接功能就出来了。

    5.你还可以用当屏蔽掉右键的页面中点右键,出现限制窗口,此时不要松开右键,用左手铵键盘上的ALT+F4组合键,这时窗口就关闭了,松开鼠标右键菜单就出来了。

    6.最后说个最简单的破法:同时点鼠标左右键----是不是出来了?

转载自:http://www.dx-net.cn/Html/Support/444.Html

原文地址:https://www.cnblogs.com/lechie/p/2383232.html