当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《如何在JavaScript中禁用右键单击上下文菜单》经验,为你挑选了3个好方法。

并不是说我试图阻止"查看源代码"或任何愚蠢的东西,但我正在为某些元素制作一些自定义上下文菜单.

编辑:回答答案:我试过这个:

 


by0.. 110

如果您不想在每次尝试右键单击时向用户发出消息警报,请尝试将其添加到您的正文标记中


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

但是,添加右键禁用器确实没有意义.具有基本浏览器知识的任何人都可以查看源并提取他们需要的信息.



1> by0..:

如果您不想在每次尝试右键单击时向用户发出消息警报,请尝试将其添加到您的正文标记中


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

但是,添加右键禁用器确实没有意义.具有基本浏览器知识的任何人都可以查看源并提取他们需要的信息.


有.例如,如果您正在构建仅限触摸的Web应用程序,那么无论如何都没有任何右键单击.使用您的代码,开发人员可以防止丑陋的标准行为,如上下文菜单弹出窗口.
这应该是公认的答案.

2> Triptych..:

捕获onContextMenu事件,并在事件处理程序中返回false.

您还可以event.button在某些浏览器中捕获click事件并检查触发事件的鼠标按钮.


从事件处理程序返回false并未阻止默认上下文菜单在我的情况下出现在Firefox或Chrome中.但是调用event.preventDefault()确实......认为这可能会有所帮助.

3> ElDoRado1239..:

我用过这个:

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,我知道用户释放了鼠标右键或按下/释放了上下文菜单键.

希望能帮助到你.

推荐阅读
手机用户2502851955
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有