我可以禁用右击在我的网页不使用JavaScript?我问这个问题是因为大多数浏览器允许用户禁用JavaScript。
如果不是,我如何使用JavaScript禁用右键?
我可以禁用右击在我的网页不使用JavaScript?我问这个问题是因为大多数浏览器允许用户禁用JavaScript。
如果不是,我如何使用JavaScript禁用右键?
当前回答
将此代码放入页面的<head>标记中。
<script type="text/javascript">
function disableselect(e){
return false
}
function reEnable(){
return true
}
//if IE4+
document.onselectstart=new Function ("return false")
document.oncontextmenu=new Function ("return false")
//if NS6
if (window.sidebar){
document.onmousedown=disableselect
document.onclick=reEnable
}
</script>
这将禁用右键点击整个网页,但只有当JavaScript启用。
其他回答
下面有三种最流行的方法来禁用在网页上单击鼠标右键。
#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());
如果你的目标是阻止别人下载你的图片,就像大多数人说的那样,禁用右键几乎是无效的。
假设您正在尝试保护图像,替代方法是-
使用flash播放器,用户无法下载,但他们可以轻松地进行屏幕捕捉。
如果你想更笨拙,使图像的背景一个div,包含一个透明的图像,à la -
<div style="background-image: url(YourImage.jpg);">
<img src="transparent.gif"/>
</div>
将足以阻止随意窃取您的图像(参见下面的示例),但与所有这些技术一样,如果对html有基本的了解,就很难击败它们。
如果您不关心在用户每次尝试右击时提醒他们一条消息,那么可以尝试将此添加到body标签中
<body oncontextmenu="return false;">
这将阻止对上下文菜单的所有访问(不仅从鼠标右键,而且从键盘)。
然而,正如在其他回答中提到的,添加右击禁用功能确实没有意义。任何具备基本浏览器知识的人都可以查看源代码并提取所需的信息。
禁用网页上的右键很简单。只需几行JavaScript代码就可以完成这项工作。下面是JavaScript代码:
$("html").on("contextmenu",function(e){
return false;
});
在上面的代码中,我选择了标签。在你添加了这三行代码后,它将禁用在网页上的右键单击。
源码:禁用右键,复制,在网页上使用jQuery剪切
最初的问题是关于如何在用户可以禁用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);
}
});
所以如果你在游戏中使用鼠标左右键,你就必须在鼠标处理程序中执行一些条件逻辑。