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 相关文章推荐
AlertBox 弹出层信息提示框效果实现步骤
Oct 11 Javascript
JS异常处理的一个想法(sofish)
Mar 14 Javascript
js的toUpperCase方法用法实例
Jan 27 Javascript
jQuery实现冻结表头的方法
Mar 09 Javascript
Javascript编写俄罗斯方块思路及实例
Jul 07 Javascript
JS实现仿腾讯微博无刷新删除微博效果代码
Oct 16 Javascript
基于javascript数组实现图片轮播
May 02 Javascript
如何使用AngularJs打造权限管理系统【简易型】
May 09 Javascript
JS判断鼠标进入容器的方向与window.open新窗口被拦截的问题
Dec 23 Javascript
微信小程序实现无限滚动列表
May 29 Javascript
详解Vue webapp项目通过HBulider打包原生APP(vue+webpack+HBulider)
Feb 02 Javascript
webpack4 SplitChunks实现代码分隔详解
May 23 Javascript
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
php检查页面是否被百度收录
2015/10/28 PHP
JQuery 风格的HTML文本转义
2009/07/01 Javascript
JavaScript控制各种浏览器全屏模式的方法、属性和事件介绍
2014/04/03 Javascript
离开当前页面前使用js判断条件提示是否要离开页面
2014/05/02 Javascript
Jquery 获取指定标签的对象及属性的设置与移除
2014/05/29 Javascript
jQuery实现鼠标跟随效果
2017/02/20 Javascript
JavaScript函数参数的传递方式详解
2017/03/06 Javascript
学习使用Bootstrap输入框、导航、分页等常用组件
2017/05/11 Javascript
一步步教你利用Canvas对图片进行处理
2017/09/19 Javascript
vue组件父子间通信详解(三)
2017/11/07 Javascript
jQuery实现获取动态添加的标签对象示例
2018/06/28 jQuery
angular4中引入echarts的方法示例
2019/01/29 Javascript
解决layui表格内文本超出隐藏的问题
2019/09/12 Javascript
layui树形菜单动态遍历的例子
2019/09/23 Javascript
Vue动态加载图片在跨域时无法显示的问题及解决方法
2020/03/10 Javascript
web.py在模板中输出美元符号的方法
2014/08/26 Python
Python中type的构造函数参数含义说明
2015/06/21 Python
在Django的通用视图中处理Context的方法
2015/07/21 Python
对python中的高效迭代器函数详解
2018/10/18 Python
Python实现 版本号对比功能的实例代码
2019/04/18 Python
python取余运算符知识点详解
2019/06/27 Python
关于Tensorflow使用CPU报错的解决方式
2020/02/05 Python
如何基于python对接钉钉并获取access_token
2020/04/21 Python
Python高并发和多线程有什么关系
2020/11/14 Python
日本亚马逊官方网站:Amazon.co.jp
2020/04/14 全球购物
门卫岗位安全职责
2013/12/13 职场文书
绿色城市实施方案
2014/03/19 职场文书
教室布置标语
2014/06/26 职场文书
党员学习中共十八大思想报告
2014/09/12 职场文书
2014年乡镇民政工作总结
2014/12/02 职场文书
清洁工个人总结
2015/03/04 职场文书
法律讲堂观后感
2015/06/11 职场文书
运动会广播稿300字
2015/08/19 职场文书
CSS 圆形进度栏
2021/04/06 HTML / CSS
Python加密与解密模块hashlib与hmac
2022/06/05 Python
Spring JPA 增加字段执行异常问题及解决
2022/06/10 Java/Android