如何禁用鼠标右键单击网页?

问题描述:

我想禁用鼠标右键单击HTML页面。 我有一个页面,用户必须输入详细信息。 我不希望用户看到用鼠标右键单击显示的菜单。相反,我想显示一个自定义菜单。我知道有一些插件可以做到这一点。但我的要求不需要任何插件。如何禁用鼠标右键单击网页?

+1

默默无闻的安全性? – 2010-06-21 10:25:01

+15

菜单有什么问题?它属于用户,所以留给他。 *想象一下,用户不理解单词并希望使用可通过上下文菜单访问的一些翻译服务。* – 2010-06-21 10:27:00

+8

为什么你想要这样做?如果该页面不能像所有其他网页一样工作,许多用户会感到困惑。 – 2010-06-21 10:27:11

这是不专业的,反正这将与JavaScript的工作原理启用:

document.oncontextmenu = document.body.oncontextmenu = function() {return false;} 

您可能还需要返回false之前显示一条消息给用户。

但是我不得不说,这不应该被一般,因为它限制了用户的选择不解决这个问题做了(其实上下文菜单可以很容易地再次启用)。

下面的文章更好地解释为什么这不应该做的,可以采取什么其他措施以解决常见的相关问题: http://articles.sitepoint.com/article/dont-disable-right-click

+1

此外,这不是一个全部,并最终解决方案,他们可能只是禁用js和嘿presto。 – Kezzer 2010-08-10 09:43:13

+0

为什么不只是'document.oncontextmenu = function(){return false; }'? – 2017-08-23 21:31:41

可以使用oncontextmenu事件这样做的。

但是,如果用户关闭JavaScript的,那么你将无法处理这个问题。

window.oncontextmenu = function() { 
    return false; 
} 

将禁用右键菜单。

首先,如果你这样做只是为了防止有人查看源代码你的网页 - 它不会工作,因为他们总是可以使用键盘快捷键来查看它。其次,你将不得不使用JavaScript来实现这一点。如果用户禁用JS,则无法阻止右键单击。

也就是说,将此添加到您的身体标记以禁用右键点击。

<body oncontextmenu="return false;"> 

<body oncontextmenu="return false;">适用于Google Chrome浏览器。不确定其他浏览器。

注意,所有的人所要做的就是禁用JavaScript才能看到右键菜单反正。

请不要这样做,这是非常烦人的。

右键菜单中是有原因的,它应该离开那里。 许多浏览器扩展将条目添加到右键单击菜单,用户应该能够在他访问的任何页面中使用它。

此外,您可以通过其他方式(键盘快捷键,浏览器菜单等等)使用右键单击菜单的所有功能,因此阻止右键单击菜单具有恼人用户的唯一效果。

PS:如果真的是你无法抗拒的冲动,阻止它至少不要放在一个弹出说:“没有允许右键点击”。

+3

-1:虽然这有一些好处,但它不回答问题,所以应该是评论。 – Quentin 2010-06-21 10:53:19

+0

@David Dorward:它确实回答了这个问题。我在说,尽管他可以阻止右键单击菜单的出现,但实际上却没有办法阻止它的**功能**,因为它们可以通过其他方式重新获得。阻止右键单击菜单是不好的做法,所以我发现这是一个更好的答案,以解释他为什么不应该。 – nico 2010-06-21 13:36:01

有很多这样的例子,可以通过Google

发现然而,用户可以关闭JavaScript来阻止这种高度恼人的“功能”。我想你应该在实施之前仔细考虑这一点。它不会真正保护你的内容(如果这是你想要达到的目标)。

有一篇文章here说明它是多么讨厌和毫无意义。

试试这个:下面写代码的身体&感到神奇:)

body oncontextmenu="return false" 

您可以使用JavaScript来阻止右键。 Here是阻止在网站上右键单击的脚本。

您可以用JavaScript和/或HTML属性(这实在是一个Javascript事件处理程序是这样)做如下描述:http://www.codeproject.com/KB/aspnet/Disabling_the_right_click.aspx

<script language="javascript"> 
document.onmousedown=disableclick; 
status="Right Click Disabled"; 
Function disableclick(event) 
{ 
    if(event.button==2) 
    { 
    alert(status); 
    return false;  
    } 
} 
</script> 

<body oncontextmenu="return false"> 
... 
</body> 

//禁用右键点击脚本通过java脚本代码

<script language=JavaScript> 
//Disable right click script 
var message = ""; 
/////////////////////////////////// 
function clickIE() { 
    if (document.all) { 
     (message); 
     return false; 
    } 
} 

function clickNS(e) { 
    if (document.layers || (document.getElementById && !document.all)) { 
     if (e.which == 2 || e.which == 3) { 
      (message); 
      return false; 
     } 
    } 
} 
if (document.layers) { 
    document.captureEvents(Event.MOUSEDOWN); 
    document.onmousedown = clickNS; 
} else { 
    document.onmouseup = clickNS; 
    document.oncontextmenu = clickIE; 
} 

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

Click here to see semo

window.oncontextmenu = function() { 
return false; 
} 

可能对您有帮助。