当前位置: 首页 > 图文教程 > 网络编程 > Javascript > IE NC通用的藏鼠标右键一法

Javascript
javaScript 数值型和字符串型之间的转换
从父页面读取和操作iframe中内容方法
IE DOM实现存在的部分问题及解决方法
jqPlot Option配置对象详解
jquery JSON的解析方式
JavaScript 捕获窗口关闭事件
xml 封装与解析(javascript和C#中)
JavaScript 设计模式学习 Singleton
JavaScript 设计模式学习 Factory
javascript CSS画图之基础篇
JavaScript 获取事件对象的注意点
JavaScript Konami Code 实现代码
Google Map API更新实现用户自定义标注坐标
JavaScript this 深入理解
javascript EXCEL 操作类代码
window.parent调用父框架时 ie跟火狐不兼容问题
关于取不到由location.href提交而来的上级页面地址的解决办法
JS input 数字验证代码
网页全屏显示代码说明分析
JS 学习笔记 防止发生命名冲突

Javascript 中的 IE NC通用的藏鼠标右键一法


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-10   浏览: 281 ::
收藏到网摘: n/a

       首先,对于Internet Explorer的隐藏鼠标右键的方法,可以说只要弄过网页的人可能知道要用  document.oncontextmenu=Function("return false;"); 不过对于Netscape,这个办法就并不能完全行的通。通过实践,我发觉,在Internet Explorer和Netscape这两款浏览器中都存在某些元素,鼠标的右键在上边点击是没有反应。现在我就利用如此一点来隐藏鼠标右键。我们可以知道在Internet Explorer和Netscape这两款浏览器中<div>的滚动条上是弹不出右键菜单的,那我们就在右键事件中把我们定制的<div>元素just_hide_it移到鼠标的点击的位置来,这样就不可能弹出右键菜单了。

       源代码如下:

<html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<!--
Edited by Renjian Zhou(Joo),Shanghai Jiao Tong University,Application Mathematic,Class F0007102.If you are interested in editing HTML pages,connected me by [email protected].
-->
<title>
通用的藏鼠标右键
</title>
</head>
<body style="z-index:-1;">
<script language="JavaScript">
tmp=navigator.appVersion.toString();
IE=parseFloat(tmp.substring(tmp.indexOf("MSIE")+4,tmp.length));
function NC_rightclick(e)
{
  if(e.button==2 || (e.button==0 && e.type=="contextmenu"))
  {
    document.getElementById('just_hide_it').style.left=e.clientX-14;
    document.getElementById('just_hide_it').style.top=e.clientY-14;
    return false;
  }
}
if(IE)
  document.oncontextmenu=Function("return false;");
else
{
  document.write('<div id="just_hide_it" style="z-index:-1;position:absolute;left:100;top:0;overflow:scroll;width:28;height:28;"></div>');
  document.oncontextmenu=NC_rightclick;
  document.onmousedown=NC_rightclick;
}
</script>
</body>
</html>


       解释一下:不仅在Netscape中可以用如此<div>方法,在Internet Explorer中<div>方法也有效,不过既然在Internet Explorer中已经有了更有效的方法,我也就不用如此方法了。在Netscape中对just_hide_it要求z-Index为-1与body的z-index相同是出于使just_hide_it透明化,使人感觉不出有如此一个元素的存在。

        再说一句,我们隐藏鼠标右键的目的不是藏源代码,而是为了一些其他的网页的功能。顺便提倡各位大虾,有好的代码,多点共享。毕竟这个世界应该是一个共享的世界。