网页制作者经常遇到如何彻底禁止查看网页源代码的问题。有没有方法可以解决呢?使用ASP、JSP等服务器端编程技术可以实现对网页源代码的保护,但目前国内网站所提供的免费个人主页空间一般都不提供对服务器端编程的支持,所以对于这些用户,要禁止访问者查看网页源代码就只能在客户端编程上下工夫了。
   查看源代码的方式
   要禁止访问者查看网页源代码,我们首先要了解一下查看源代码的方式(以IE 5.0为例)。一是右键菜单方式; 二是窗口菜单栏查看方式,即选择"查看"*"源文件"方式。要彻底禁止访问者查看网页源代码,就必须屏蔽这2种查看源代码的方式。
   屏蔽右键菜单查看方式
   现在,很多网页采用如下代码屏蔽右键菜单:
   < Script Language=javascript>
   function Click(){
   if(event.button==2){alert
   (版权所有(C)2001 XXX工作室);
   }}
   document.οnmοusedοwn=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.οncοntextmenu=Click;
   < /Script>
   这样无论采取什么方式点击鼠标,都不会再出现快捷菜单了。不过值得注意的是,如果访问者直接在浏览器地址栏中键入"javascript:alert(document.οncοntextmenu=)",就可以解除对右键菜单的屏蔽。

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

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

屏蔽选定复制:

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

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

〈body onselectstart="return false"〉

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

<body οncοntextmenu="return false" οndragstart="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.οnmοusedοwn=disableselect
document.οnclick=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/archive/2010/08/27/2383232.html

Javascript屏蔽右键的方法相关推荐

  1. jquery和javascript屏蔽右键菜单及阻止事件冒泡

    jquery屏蔽右键菜单 $(document).ready(function(){$(document).bind("contextmenu",function(e){retur ...

  2. 【HTML】如何在网页中屏蔽右键 ?

    如何在网页中屏蔽右键 众所周知,要保护一个页面,最基础的就是要屏蔽右键.而现在网页上用得最多的是function click(),即下面这段代码:   <script> function ...

  3. 如何在网页中屏蔽右键

    众所周知,要保护一个页面,最基础的就是要屏蔽右键.而现在网页上用得最多的是function click(),即下面这段代码: 〈script〉 function click(){ if(event.b ...

  4. html屏蔽右键、禁止复制与禁止查看源代码

    如何在网页中屏蔽右键                             众所周知,要保护一个页面,最基础的就是要屏蔽右键.而现在网页上用得最多的是function click(),即下面这段代码 ...

  5. Javascript屏蔽鼠标的右键的两种方法。

    方法一:利用鼠标button的键值 <script language="javascript">function blockright(oEvent) {var oDi ...

  6. 用javascript 禁止右键,禁止复制,禁止粘贴

    用javascript 禁止右键,禁止复制,禁止粘贴 2007-03-01 18:36 有时自己辛苦半天做的网页,尤其是一些javascript特效,很容易被人利用查看源文件而复制.那么如何才能防止被 ...

  7. 你想的到想不到的 javascript 应用小技巧方法

    javascript 在前端应用体验小技巧继续积累. 事件源对象 event.srcElement.tagName event.srcElement.type 捕获释放 event.srcElemen ...

  8. 自定义html页面鼠标右键,javascript鼠标右键菜单自定义效果

    本文实例讲解了javascript鼠标右键菜单的实现方法,分享给大家供大家参考,具体内容如下 效果图: 具体代码: #menu{ border:solid 1px gray; width:100px; ...

  9. Javascript创建对象几种方法解析

    Javascript创建对象几种方法解析 Javascript面向对象编程一直是面试中的重点,将自己的理解整理如下,主要参考<Javascript高级程序设计 第三版>,欢迎批评指正. 通 ...

最新文章

  1. Git 高频命令、版本回退、分支操作、文件修改删除、撤销、标签、远程仓库推送、拉取
  2. linux sed命令处理文本文件
  3. Linux 下 LaTeX 2018 安装与使用
  4. websphere变成英文了
  5. 《Java从入门到放弃》框架入门篇:hibernate基本用法
  6. java乒乓_java – 正确实现乒乓游戏
  7. Java Word转Html
  8. Win11更新22000.100后面部识别不可用怎么办
  9. mysql导入_导出命令_MySQL导入导出命令
  10. ASP.NET Core 2.0使用Log4net实现记录日志功能
  11. 超火AI变脸特效来袭!马云蔡徐坤一起《吗咿呀嘿》 网友:摇不能停
  12. onclick的值传给php,php – 从onclick事件将HTML属性传递给jQuery函数
  13. linux bogomips,内核探索:Linux BogoMips 探秘
  14. 《Effective C++》 读书笔记之三 资源管理
  15. asp.net控件开发基础二
  16. P4145 上帝造题的七分钟2 / BZOJ3211花神游历各国
  17. 2016-408-计组-有如下c语言程序段
  18. 计算机操作基础知识点总结
  19. android 高仿国美,iOS高仿国美、二次元应用、点赞喷射动画、电影筛选页等源码...
  20. 中兴WCDMA模块 Linux拨号流程

热门文章

  1. 华为p30鸿蒙系统内测在哪申请,华为自研操作系统:已注册“华为鸿蒙”商标
  2. 【Css】使用float:left浮动后,导致后面div高度“塌陷”的解决办法(示例和图示)
  3. 【SystemVerilog基础】关于随机化约束solve...before的深入探究
  4. Python使用Pandas读写EXCEL文件教程
  5. 浅析供应链金融业务发展态势及提升路径
  6. JavaScript:表格生成器
  7. 小米运维实习生被开除:竟是因为没有用到高防服务器
  8. HBuilder制作英雄皮肤抽奖小游戏
  9. (二)使用npm搭建React项目
  10. Java刀_Java尖刀系列3:堆