在没有使用js和css的情况下禁用右键点击

14

这是一个随机的中文网站 http://www.soap-china.com/index.asp

我发现右键被禁用了。我通常会关闭JavaScript,所以我开始在Firebag中逐个删除节点和CSS代码行,但并没有找到是什么导致右键被禁用。

它是如何实现的?

这不是我第一次看到这种情况了,所以我很好奇这个技巧是怎样实现的。


哇,真是令人惊讶。我本来猜测是 pointer-events: none(因为选择也不起作用),但事实并非如此。可能是 Flash,但这并不普遍。好问题! - Ry-
onselectstart="return false",但那当然是JavaScript... - Ry-
似乎是NoScript的问题,可以在这里提问:https://forums.informaction.com/viewtopic.php?f=7&t=20026 - Qiao
6个回答

30
在 body 标签上执行以下操作:
<body oncontextmenu="return false">
...
</body>

7
好的,简单而有效。很棒的回答。 - xZero
1
如果您的页面没有覆盖整个屏幕,且想要禁用整个屏幕的右键点击功能,请在html标签中使用以下代码:<html lang="en" oncontextmenu="return false"> ... </html>。这段代码在Raspberry Pi OS Buster上的Chromium Kiosk模式下对我很有帮助。 - nsssayom
这在技术上是使用 JavaScript。 - Juan Campa

14

这是用Javascript实现的。

我已经禁用了Javascript,我可以右键点击。这是通过以下方式禁用的:

<script language="JavaScript">
document.oncontextmenu =new Function("return false;")
</script>    
<body onselectstart="return false">

你的浏览器可能存在问题,但该网站对我来说是在线的。


1
是的。这很奇怪,但NoScript没有阻止这个脚本。所以这是NoScript的漏洞。我应该检查默认的JavaScript关闭。 - Qiao

6

您可以在CSS中使用user-select来控制不希望被点击的任何元素。但是,一些旧版浏览器需要使用变体。如下所示:

-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;

1
最好的方法是:
<script type="text/javascript">
document.oncontextmenu =new Function("return false;")
document.onselectstart =new Function("return false;")
</script>

祝你好运。


1
上下文菜单指的是右键菜单,选择(select)指的是文本选择。对吗? - Satish Patro

0

这是一段简单的Javascript代码片段。
禁用页面上的Javascript会消除该效果,您可能忘记在浏览器中启用了它。
在他们的<body>标签顶部:

<script language="JavaScript">
    document.oncontextmenu =new Function("return false;")
</script>

-4

或者你可以使用这个简单的方法

将 oncontextmenu 处理程序添加到它上面,如下所示:

<body oncontextmenu="return false">

你不需要复制别人在下面的答案并将其发布为你的答案。 - StefansArya

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接