与其使用比较暴力的手段禁用鼠标右键,还不如有选择性人性化的的禁用鼠标右键,需要的朋友可以参考下

使用比较暴力的手段禁用鼠标右键是不人性化的,所以最好还是有选择性的禁用鼠标右键。

代码实例如下:

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.45it.com/" /> <title>爱安网</title> <style type="text/css">html,body{height:100%}div{width:150px;height:50px;background:#CCC;}</style><script type="text/javascript" src="mytest/jQuery/jquery-1.8.3.js"></script><script type="text/javascript"> $(document).ready(function(){function jQuery_isTagName(ev,arr){ev=$.event.fix(ev);var target=ev.target||ev.srcElement;if(arr&&$.inArray(target.tagName.toString().toUpperCase(),arr)==-1){return false;}return true;}$(document).bind("contextmenu",function(ev){if(!jQuery_isTagName(ev,['INPUT','TEXTAREA'])){ev.preventDefault();return false;}return true;})})</script> </head> <body><div id="thediv"></div> <textarea></textarea></body> </html>

上面的代码实现了我们的要求,下面对代码的实现过程做一下介绍。

代码注释:

1.$(document).ready(function(){}),当文本结构完全加载完毕再去执行函数中的代码。
2.function jQuery_isTagName(ev,arr){},此函数可以判断元素是否在可以使用右键菜单之列,第一个参数是事件对象,第二个参数是一个数组,数组元素是可以使用右键菜单的标签名称。
3.ev=$.event.fix(ev),实现事件对象在各个浏览器的兼容性,fix()函数是jquery内部使用的,当然也可以这么用。
4.var target=ev.target||ev.srcElement,获取事件源对象。
5.if(arr&&$.inArray(target.tagName.toString().toUpperCase(),arr)==-1){return false;},判断指定的标签元素是否在数组中,如果数组中没有指定的标签,那么就返回false。
6.return true,返回true。
8.$(document).bind("contextmenu",function(ev){}),为document文档注册contextmenu事件处理函数。
9.if(!jQuery_isTagName(ev,['INPUT','TEXTAREA'])){
ev.preventDefault();
return false;
}
如果如果指定标签不在可以使用右键菜单的列表中,那么就使用ev.preventDefault()阻止事件冒泡,这很重要,否则的话如果有元素嵌套,虽然子元素禁用了右键菜单,但是右键子元素的时候,还是会弹出右键菜单,因为事件传递到父元素上去了,return false也可以禁用右键菜单了

最新资讯
“双11”预售第一天探班李佳琦直播间 单日成交约34亿

“双11”预售第一天探

“双11”预售第一天,每经记者探班李佳琦直播间 李佳琦7
优胜教育创始人哽咽直播 退费无果家长吐槽其在演戏

优胜教育创始人哽咽直

带着哽咽的声音,优胜教育创始人陈昊出现在直播间,开启了
超2万亿“巨无霸”蚂蚁集团蓄势待发 解码估值攀升的“潜台词”

超2万亿“巨无霸”蚂

一方面显示的是市场对蚂蚁的热捧和认可;但另一方面,万亿
手机厂商齐聚IoT阵营 开启5G万物互融生态新战役

手机厂商齐聚IoT阵营

在经历了此前多轮预告之后,OPPO终于发布了旗下相对完整
嘀嗒出行率先冲刺上市  网约出租车“行业老二”如何突围?

嘀嗒出行率先冲刺上市

嘀嗒2017年才进入网约出租车市场,且订单规模远远小于滴
钱烧光了路还没找到 二手车行业进退两难

钱烧光了路还没找到

中国约95%车源集中在个人卖家手中,二手车又是典型的大
最新文章
详解Vue的ref特性的使用

详解Vue的ref特性的使

这篇文章主要介绍了详解Vue的ref特性的使用,文中通过
vue学习笔记之slot插槽基本用法实例分析

vue学习笔记之slot插

这篇文章主要介绍了vue学习笔记之slot插槽基本用法,结
vue跳转方式(打开新页面)及传参操作示例

vue跳转方式(打开新页

这篇文章主要介绍了vue跳转方式(打开新页面)及传参操作,
vue学习笔记之过滤器的基本使用方法实例分析

vue学习笔记之过滤器

这篇文章主要介绍了vue学习笔记之过滤器的基本使用方
js获取本日、本周、本月的时间代码

js获取本日、本周、本

本篇文章给大家分享的内容是利用js如何获取本日、本周
node crawler如何添加promise支持

node crawler如何添加

这篇文章主要介绍了node crawler如何添加promise支持,