我可以禁用右击在我的网页不使用JavaScript?我问这个问题是因为大多数浏览器允许用户禁用JavaScript。

如果不是,我如何使用JavaScript禁用右键?


当前回答

如果你的目标是阻止别人下载你的图片,就像大多数人说的那样,禁用右键几乎是无效的。

假设您正在尝试保护图像,替代方法是-

使用flash播放器,用户无法下载,但他们可以轻松地进行屏幕捕捉。

如果你想更笨拙,使图像的背景一个div,包含一个透明的图像,à la -

<div style="background-image: url(YourImage.jpg);">
   <img src="transparent.gif"/>
</div>

将足以阻止随意窃取您的图像(参见下面的示例),但与所有这些技术一样,如果对html有基本的了解,就很难击败它们。

其他回答

Javascript:

document.getElementsByTagName("html")[0].setAttribute("oncontextmenu", "return false"); 

只是,不知道。

无论你做什么,你都不能阻止用户完全访问你网站上的每一点数据。你所编写的任何Javascript代码都可以通过关闭浏览器上的Javascript(或者使用NoScript这样的插件)而变得毫无意义。此外,没有办法禁用任何用户仅仅“查看源代码”或“查看页面信息”(或使用wget)的功能。

不值得这么费劲。这实际上是行不通的。它会让你的网站对用户充满敌意。他们会注意到这一点,并停止访问。这样做没有任何好处,只会浪费精力和损失流量。

不喜欢。

更新:随着时间的推移,这个小话题似乎已经被证明是相当有争议的。即便如此,我仍然坚持这个问题的答案。有时正确的答案是建议,而不是字面上的回答。

那些无意中发现这个问题并希望找到如何创建自定义上下文菜单的人应该看看其他地方,比如这些问题:

为我的web应用程序制作自定义右键上下文菜单,这依赖于jQuery 如何添加一个自定义右键菜单的网页,这使用纯javascript/html

当然,就像这里的所有其他评论一样,这根本行不通。

我曾经为客户端构建了一个简单的java applet,它强制任何图像的捕获都通过屏幕捕获来完成,您可能会考虑类似的技术。在有限的范围内,它是有效的,但我仍然认为这是浪费时间。

禁用网页上的右键很简单。只需几行JavaScript代码就可以完成这项工作。下面是JavaScript代码:

$("html").on("contextmenu",function(e){
   return false;
});

在上面的代码中,我选择了标签。在你添加了这三行代码后,它将禁用在网页上的右键单击。

源码:禁用右键,复制,在网页上使用jQuery剪切

下面有三种最流行的方法来禁用在网页上单击鼠标右键。

#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());