为了账号安全,请及时绑定邮箱和手机立即绑定

如何禁用我的网页上的右键单击?

如何禁用我的网页上的右键单击?

LEATH 2019-06-15 18:42:57
如何禁用我的网页上的右键单击?我可以在不使用JavaScript的情况下禁用网页上的右键单击吗?我这样问是因为大多数浏览器都允许用户禁用JavaScript。如果没有,如何使用JavaScript禁用右击?
查看完整描述

3 回答

?
蓝山帝景

TA贡献1843条经验 获得超7个赞

您可以通过为“contextMenu”事件添加事件侦听器并调用preventDefault()方法:

document.addEventListener('contextmenu', event => event.preventDefault());

话虽如此:别这么做。

为什么?因为它只实现了恼人的用户。此外,许多浏览器都有一个安全选项来禁用右键单击(上下文)菜单。

不知道你为什么想这么做。如果它是出于某种错误的信念,认为你可以这样保护你的源代码或图像,那么再想一想:你不能保护你的源代码或图像。


查看完整回答
反对 回复 2019-06-15
?
红糖糍粑

TA贡献1815条经验 获得超6个赞

只是不要。

不管你做什么,你都不能阻止用户完全访问你网站上的每一个数据。只要在浏览器上关闭Javascript(或者使用像NoScript这样的插件),任何代码都可以被渲染为毫无意义。此外,没有办法禁用任何用户的能力,简单地“查看源”或“查看页面信息”(或使用wget)为您的网站。

这是不值得的努力。实际上是行不通的。它将使您的网站积极敌视用户。他们会注意到这一点并停止拜访。这样做没有好处,只会浪费精力和失去交通。

别。

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

那些偶然发现这个问题的人希望找到如何创造习俗上下文菜单应该在其他地方查找,如以下问题:


查看完整回答
反对 回复 2019-06-15
?
偶然的你

TA贡献1841条经验 获得超3个赞

最初的问题是如何停止右击。考虑到用户可以禁用JavaScript:这听起来邪恶(因此产生了负面反应)-但所有的重复都会转到这里,尽管许多副本都是为了不那么邪恶的目的而设的。

例如,在HTML 5游戏中使用右键单击按钮。这可以用上面的内联代码来完成,或者更好的是这样:

document.addEventListener("contextmenu", function(e){
    e.preventDefault();}, false);

但是,如果您正在制作一个游戏,那么请记住,右键单击按钮会触发亚细亚事件-但它也会触发常规的滑鼠鼠嘴事件也是。所以你需要检查一下哪一个属性,以查看触发事件的是左侧(其中=1)、中间(=2)或右侧(其中=3)鼠标按钮。

下面是jQuery中的一个示例-请注意,按鼠标右键将触发三个事件:mousedown事件、contextMenu事件和mouseup事件。

// 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); 
    }});

因此,如果在游戏中使用左右鼠标按钮,则必须在鼠标处理程序中执行一些条件逻辑。


查看完整回答
反对 回复 2019-06-15
  • 3 回答
  • 0 关注
  • 1346 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信