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 相关文章推荐
jQuery实现表头固定效果的实例代码
May 24 Javascript
去掉gridPanel表头全选框的小例子
Jul 18 Javascript
处理及遍历XML文档DOM元素属性及方法整理
Aug 23 Javascript
node.js学习总结之调式代码的方法
Jun 25 Javascript
node.js中的console.trace方法使用说明
Dec 09 Javascript
jQuery垂直多级导航菜单代码分享
Aug 18 Javascript
深入浅析JS是按值传递还是按引用传递(推荐)
Sep 18 Javascript
详解前后端分离之VueJS前端
May 24 Javascript
js中getBoundingClientRect的作用及兼容方案详解
Feb 01 Javascript
Vue.js组件间通信方式总结【推荐】
Nov 23 Javascript
vue实现固定位置显示功能
May 30 Javascript
vue+node 实现视频在线播放的实例代码
Oct 19 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使用strtotime和date函数判断日期是否有效代码分享
2013/12/25 PHP
prototype Element学习笔记(Element篇三)
2008/10/26 Javascript
Jquery css函数用法(判断标签是否拥有某属性)
2011/05/28 Javascript
DWR实现模拟Google搜索效果实现原理及代码
2013/01/30 Javascript
JavaScript将Table导出到Excel实现思路及代码
2013/03/13 Javascript
window.onload和$(function(){})的区别介绍
2013/10/30 Javascript
$(document).ready(function() {})不执行初始化脚本
2014/06/19 Javascript
JS折半插入排序算法实例
2015/12/02 Javascript
js实现不提示直接关闭网页窗口
2017/03/30 Javascript
node.js中fs.stat与fs.fstat的区别详解
2017/06/01 Javascript
underscore之function_动力节点Java学院整理
2017/07/11 Javascript
微信小程序实现上传图片功能
2018/05/28 Javascript
Vue2.0 实现移动端图片上传功能
2018/05/30 Javascript
微信小程序自定义select下拉选项框组件的实现代码
2018/08/28 Javascript
Element-ui中元素滚动时el-option超出元素区域的问题
2019/05/30 Javascript
js变量值传到php过程详解 将php解析成数据
2019/06/26 Javascript
JavaScript this关键字指向常用情况解析
2020/09/02 Javascript
原生js实现无缝轮播图效果
2021/01/28 Javascript
[03:34]2014DOTA2西雅图国际邀请赛 淘汰赛7月15日TOPPLAY
2014/07/15 DOTA
深入讨论Python函数的参数的默认值所引发的问题的原因
2015/03/30 Python
python如何定义带参数的装饰器
2018/03/20 Python
widows下安装pycurl并利用pycurl请求https地址的方法
2018/10/15 Python
Python获取基金网站网页内容、使用BeautifulSoup库分析html操作示例
2019/06/04 Python
详解python解压压缩包的五种方法
2019/07/05 Python
让你的Python代码实现类型提示功能
2019/11/19 Python
Python爬虫:Request Payload和Form Data的简单区别说明
2020/04/30 Python
HTML5 source标签:媒介元素定义媒介资源
2018/01/29 HTML / CSS
台湾深度自由行旅游平台:Tripbaa趣吧
2017/10/10 全球购物
eVitamins日本:在线购买折扣维生素、补品和草药
2019/04/04 全球购物
小学国庆节活动方案
2014/02/11 职场文书
班委竞选演讲稿
2014/04/28 职场文书
商场父亲节活动方案
2014/08/27 职场文书
2014年幼儿园德育工作总结
2014/12/17 职场文书
2015年学校财务工作总结
2015/05/19 职场文书
CSS filter 有什么神奇用途
2021/05/25 HTML / CSS
MySQL数据库实验之 触发器和存储过程
2022/06/21 MySQL