我可以禁用右击在我的网页不使用JavaScript?我问这个问题是因为大多数浏览器允许用户禁用JavaScript。
如果不是,我如何使用JavaScript禁用右键?
我可以禁用右击在我的网页不使用JavaScript?我问这个问题是因为大多数浏览器允许用户禁用JavaScript。
如果不是,我如何使用JavaScript禁用右键?
当前回答
如果你的目标是不允许用户简单地保存你的图像,你也可以检查点击的目标是否为图像,只在这种情况下禁用右键。所以右键可以用于其他目的。从上面的代码:
document.addEventListener("contextmenu", function(e){
if (e.target.nodeName === "IMG") {
e.preventDefault();
}
}, false);
这只是拿走了保存图像的最简单的方法,但它仍然可以做到。
其他回答
重要提示:这取决于浏览器和操作系统是否允许这样的预防!
你应该这么做吗?不。因为它不会阻止用户,但它只会惹恼他/她。
你会用吗?是的。例子:在某些网页应用中,你想要定制弹出菜单,在游戏中,用户可能会因为错误地单击右键而感到恼火,以及其他情况。
Ubuntu 16.04中的Chrome (v65) =您可以禁用右键单击。
Chrome (v65)在Mac OS 10.11 =你不能禁用右键。
Chrome (v65)在Windows 7 =你不能禁用右键。
Mac OS 10.11中的Firefox (v41) =您可以禁用右键单击。
Windows 7中的Firefox (v43) =您可以禁用右键单击。
// Vanilla JS way
document.addEventListener('contextmenu', function(e){
e.preventDefault();
});
// jQuery way
$(document).bind('contextmenu', function(e) {
e.preventDefault();
});
下面有三种最流行的方法来禁用在网页上单击鼠标右键。
#1使用HTML正文标签
<body oncontextmenu="return false;">
#2使用CSS
body {
-webkit-user-select: none; /* Chrome all / Safari all */
-moz-user-select: none; /* Firefox all */
-ms-user-select: none; /* IE 10+ */
-o-user-select: none;
user-select: none;
}
#3使用JavaScript
document.addEventListener('contextmenu', e => e.preventDefault());
使用此功能可以禁用右键操作。你可以禁用左键点击也检查1和0对应
document.onmousedown = rightclickD;
function rightclickD(e)
{
e = e||event;
console.log(e);
if (e.button == 2) {
//alert('Right click disabled!!!');
return false; }
}
<script>
window.oncontextmenu = function () {
console.log("Right Click Disabled");
return false;
}
</script>
有几件事需要考虑:
像chrome商店中“启用右键”这样的浏览器插件的存在是有原因的,你无法绕过它们。你根本无法阻止人们下载你的内容,因为他们必须下载你的内容才能在浏览器中看到;人们尝试,但它总是在那里。
一般来说,如果内容不应该公开,就不要放在网上。
此外,不能右击也是一个可访问性问题,在许多情况下相当于对盲人、残疾人或老年人的非法歧视。查看你当地的法律,但在美国,它以联邦ADA的形式积极反对法律,因为盲人或老年人可能有视力问题,是一个受法律保护的阶层。
所以与其这样做,浪费大量的时间和精力,还不如不要费心去做这个。这可能会让你的公司被起诉,或者让他们无法通过合规审计。