JavaScript禁用右键单击优缺点分析


Posted in Javascript onJanuary 20, 2019

更有经验的用户很容易就能绕过禁用右键的问题,而访问大部分网页代码本身就是web浏览器的一个基本功能,根本不需要右键。

缺点

有很多方法可以绕过“没有右键脚本”,而实际上,这种脚本的唯一效果就是惹恼那些在web导航中合法使用右键上下文菜单(该菜单的正确名称)的访问者。

此外,我所看到的所有执行此操作的脚本都只阻止从鼠标右键访问上下文菜单。他们没有考虑到菜单也可以通过键盘访问这一事实。

所有人需要访问菜单使用104键键盘来选择屏幕上的对象,他们想要访问上下文菜单(例如由左点击它),然后按键盘上的上下文菜单中关键的立即左边的CTRL键在电脑键盘上。

在101键键盘上,您可以按住shift键并按下F10来执行右键单击命令。

JavaScript

如果您想要禁用web页面上的右键单击,这里有一个非常简单的JavaScript,您可以使用它来阻止对上下文菜单的所有访问(不仅是鼠标右键,还包括键盘)——这确实会惹恼您的访问者。

这个脚本甚至比大多数只阻塞鼠标按钮的脚本更简单,而且它在几乎所有浏览器中都能工作。

下面是完整的脚本:

<body oncontextmenu="return false;">

只是小段代码添加到web页面的body标签是更有效地阻止访问者的访问上下文菜单比许多no-right-click脚本,你可以在网上找到其他地方因为它阻止访问上述鼠标和键盘选项。

限制

当然,该脚本并不是在所有web浏览器中都能工作(例如,Opera会忽略它——但是Opera也会忽略所有其他不需要右键单击的脚本)。

此脚本也不会阻止访问者使用浏览器菜单中的View source选项访问页面源,或者阻止访问者保存web页面并在其喜爱的编辑器中查看已保存副本的源代码。

最后,尽管您可能禁用对上下文菜单的访问,但用户只需输入即可轻松地重新启用该访问

javascript:void oncontextmenu(null)

到浏览器的地址栏中。

总结:以上就是关于本次JS禁止右键的全部知识点内容,感谢大家对三水点靠木的支持。

Javascript 相关文章推荐
javascript 读取XML数据,在页面中展现、编辑、保存的实现
Oct 27 Javascript
JQuery插件fancybox无法在弹出层使用左右键的解决办法
Dec 25 Javascript
js判断是否按下了Shift键的方法
Jan 27 Javascript
JavaScript获取文本框内选中文本的方法
Feb 20 Javascript
AngularJS路由切换实现方法分析
Mar 17 Javascript
Vue仿手机qq的实例代码(demo)
Sep 08 Javascript
layui+SSM的数据表的增删改实例(利用弹框添加、修改)
Sep 27 Javascript
基于vue-cli3创建libs库的实现方法
Dec 04 Javascript
Nuxt页面级缓存的实现
Mar 09 Javascript
JavaScript数组排序的六种常见算法总结
Aug 18 Javascript
Openlayers绘制聚合标注
Sep 28 Javascript
vue项目如何监听localStorage或sessionStorage的变化
Jan 04 Vue.js
JavaScript中concat复制数组方法浅析
Jan 20 #Javascript
JavaScript中import用法总结
Jan 20 #Javascript
如何优雅的在一台vps(云主机)上面部署vue+mongodb+express项目
Jan 20 #Javascript
js序列化和反序列化的使用讲解
Jan 19 #Javascript
vue-router传参用法详解
Jan 19 #Javascript
vue-router实现嵌套路由的讲解
Jan 19 #Javascript
vue-router实现编程式导航的代码实例
Jan 19 #Javascript
You might like
谏山创故乡大分县日田市水坝将设立《进击的巨人》立艾伦、三笠以及阿尔敏的铜像!
2020/03/06 日漫
php 中文处理函数集合
2008/08/27 PHP
php实现12306火车票余票查询和价格查询(12306火车票查询)
2014/01/14 PHP
PHP使用DOMDocument类生成HTML实例(包含常见标签元素)
2014/06/25 PHP
PHP5.5迭代生成器用法实例详解
2016/03/16 PHP
深入理解php printf() 输出格式化的字符串
2016/05/23 PHP
PHP递归删除多维数组中的某个值
2017/04/17 PHP
基于jQuery的弹出警告对话框美化插件(警告,确认和提示)
2010/06/10 Javascript
js弹出层之1:JQuery.Boxy (二)
2011/10/06 Javascript
js 为label标签和div标签赋值的方法
2013/08/08 Javascript
jquery重新播放css动画所遇问题解决
2013/08/21 Javascript
不到30行JS代码实现Excel表格的方法
2014/11/15 Javascript
基于JS实现Android,iOS一个手势动画效果
2016/04/27 Javascript
jQuery自定义组件(导入组件)
2016/11/08 Javascript
ES6新特性六:promise对象实例详解
2017/04/21 Javascript
深入理解react-router@4.0 使用和源码解析
2017/05/23 Javascript
完美解决手机网页中输入框被输入法遮挡的问题
2017/12/19 Javascript
JS获取当前时间的实例代码(昨天、今天、明天)
2018/11/13 Javascript
layui实现三级导航菜单
2019/07/26 Javascript
js 判断当前时间是否处于某个一个时间段内
2019/09/19 Javascript
使用Python脚本和ADB命令实现卸载App
2017/02/10 Python
python连接PostgreSQL数据库的过程详解
2019/09/18 Python
Python提取PDF内容的方法(文本、图像、线条等)
2019/09/25 Python
python多继承(钻石继承)问题和解决方法简单示例
2019/10/21 Python
flask框架url与重定向操作实例详解
2020/01/25 Python
解决Tensorboard可视化错误:不显示数据 No scalar data was found
2020/02/15 Python
Vero Moda西班牙官方购物网站:丹麦BESTSELLER旗下知名女装品牌
2018/04/27 全球购物
小学校园活动策划
2014/01/30 职场文书
高中生第一学年自我鉴定
2014/09/12 职场文书
2015年基层党组织公开承诺书
2015/01/21 职场文书
优秀英文求职信范文
2015/03/19 职场文书
大学生逃课检讨书
2015/05/04 职场文书
公司行政管理制度范本
2015/08/05 职场文书
2019公司管理制度
2019/04/19 职场文书
Python爬虫网络请求之代理服务器和动态Cookies
2022/04/12 Python
服务器nginx权限被拒绝解决案例
2022/09/23 Servers