我可以禁用右击在我的网页不使用JavaScript?我问这个问题是因为大多数浏览器允许用户禁用JavaScript。
如果不是,我如何使用JavaScript禁用右键?
我可以禁用右击在我的网页不使用JavaScript?我问这个问题是因为大多数浏览器允许用户禁用JavaScript。
如果不是,我如何使用JavaScript禁用右键?
当前回答
有几件事需要考虑:
像chrome商店中“启用右键”这样的浏览器插件的存在是有原因的,你无法绕过它们。你根本无法阻止人们下载你的内容,因为他们必须下载你的内容才能在浏览器中看到;人们尝试,但它总是在那里。
一般来说,如果内容不应该公开,就不要放在网上。
此外,不能右击也是一个可访问性问题,在许多情况下相当于对盲人、残疾人或老年人的非法歧视。查看你当地的法律,但在美国,它以联邦ADA的形式积极反对法律,因为盲人或老年人可能有视力问题,是一个受法律保护的阶层。
所以与其这样做,浪费大量的时间和精力,还不如不要费心去做这个。这可能会让你的公司被起诉,或者让他们无法通过合规审计。
其他回答
如果你是jquery迷,就用这个吧
$(function() {
$(this).bind("contextmenu", function(e) {
e.preventDefault();
});
});
像下面这样做(它也适用于firefox):
$(document).on("contextmenu",function(e){
if( e.button == 2 ) {
e.preventDefault();
callYourownFucntionOrCodeHere();
}
return true;
});
就这么做
在body标签上写入oncontextmenu
<body oncontextmenu="return false">
最初的问题是关于如何在用户可以禁用JavaScript的情况下停止右击:这听起来邪恶而邪恶(因此有负面的回答)——但所有的副本都重定向到这里,即使许多副本的目的不那么邪恶。
例如,在HTML5游戏中使用右键按钮。这可以用上面的内联代码来实现,或者像这样更好一点:
document.addEventListener("contextmenu", function (e){
e.preventDefault();
}, false);
但如果你正在制作一个游戏,那么请记住,右键按钮会触发上下文菜单事件——但它也会触发常规的鼠标下拉和鼠标上拉事件。因此,您需要检查事件的which属性,以确定触发事件的是左(which === 1)、中(which == 2)或右(which === 3)鼠标按钮。
下面是jQuery的一个例子——注意,按下鼠标右键将触发三个事件:鼠标按下事件、上下文菜单事件和鼠标起事件。
// With jQuery
$(document).on({
"contextmenu": function (e) {
console.log("ctx menu button:", e.which);
// Stop the context menu
e.preventDefault();
},
"mousedown": function(e) {
console.log("normal mouse down:", e.which);
},
"mouseup": function(e) {
console.log("normal mouse up:", e.which);
}
});
所以如果你在游戏中使用鼠标左右键,你就必须在鼠标处理程序中执行一些条件逻辑。
当然,就像这里的所有其他评论一样,这根本行不通。
我曾经为客户端构建了一个简单的java applet,它强制任何图像的捕获都通过屏幕捕获来完成,您可能会考虑类似的技术。在有限的范围内,它是有效的,但我仍然认为这是浪费时间。