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

如何在JavaScript中禁用右键单击上下文菜单

如何在JavaScript中禁用右键单击上下文菜单

肥皂起泡泡 2019-12-25 10:57:26
这并不是说我要防止“查看源代码”或类似的愚蠢行为,而是要为某些元素制作一些自定义上下文菜单。编辑:答案的答复:我已经尝试过:<a id="moo" href=''> </a><script type="text/javascript">    var moo = document.getElementById('moo');    function handler(event) {        event = event || window.event;        if (event.stopPropagation)            event.stopPropagation();        event.cancelBubble = true;        return false;    }    moo.innerHTML = 'right-click here';    moo.onclick = handler;    moo.onmousedown = handler;    moo.onmouseup = handler;</script>
查看完整描述

3 回答

?
斯蒂芬大帝

TA贡献1827条经验 获得超8个赞

捕获onContextMenu事件,然后在事件处理程序中返回false。

event.button无论如何,您也可以在某些浏览器中捕获click事件并使用哪个鼠标按钮触发该事件。


查看完整回答
反对 回复 2019-12-25
?
慕慕森

TA贡献1856条经验 获得超17个赞

如果您不希望每次尝试右键单击时都向用户发出消息提醒,请尝试将其添加到您的正文标签中


<body oncontextmenu="return false;">

这将阻止所有对上下文菜单的访问(不仅是鼠标右键,还有键盘)


但是,添加右键单击禁用器确实没有意义。具有浏览器基础知识的任何人都可以查看源并提取所需的信息。


查看完整回答
反对 回复 2019-12-25
?
Cats萌萌

TA贡献1805条经验 获得超9个赞

我用了这个:


document.onkeydown = keyboardDown;

document.onkeyup = keyboardUp;

document.oncontextmenu = function(e){

 var evt = new Object({keyCode:93});

 stopEvent(e);

 keyboardUp(evt);

}

function stopEvent(event){

 if(event.preventDefault != undefined)

  event.preventDefault();

 if(event.stopPropagation != undefined)

  event.stopPropagation();

}

function keyboardDown(e){

 ...

}

function keyboardUp(e){

 ...

}

然后,我在最后两个函数中捕获了e.keyCode属性-如果e.keyCode == 93,我知道用户可以释放鼠标右键或按下/释放上下文菜单键。


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

添加回答

举报

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