这并不是说我想阻止“查看源代码”之类的傻事,而是我正在为某些元素制作一些自定义的上下文菜单。
编辑:回复答案:我已经尝试过了:
<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>
发布于 2008-12-19 18:48:34
捕获onContextMenu
事件,并在事件处理程序中返回false。
在某些浏览器中,您还可以使用event.button
捕获单击事件并检查是哪个鼠标按键触发了该事件。
发布于 2013-06-07 23:19:51
如果您不关心在用户每次尝试右键单击时都用一条消息提醒用户,那么可以尝试将以下内容添加到您的body标签中
<body oncontextmenu="return false;">
这将阻止所有对上下文菜单的访问(不仅通过鼠标右键,还可以通过键盘)
然而,添加一个右键单击禁用器确实没有意义。具有基本浏览器知识的任何人都可以查看源代码并提取所需的信息。
发布于 2013-08-17 22:02:49
我已经使用了这个:
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,我知道用户释放了鼠标右键或按下/释放了上下文菜单键。
希望能有所帮助。
https://stackoverflow.com/questions/381795
复制相似问题