Jim*_*mmy 119 javascript contextmenu
并不是说我试图阻止"查看源代码"或任何愚蠢的东西,但我正在为某些元素制作一些自定义上下文菜单.
编辑:回答答案:我试过这个:
<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>
Run Code Online (Sandbox Code Playgroud)
by0*_*by0 110
如果您不想在每次尝试右键单击时向用户发出消息警报,请尝试将其添加到您的正文标记中
<body oncontextmenu="return false;">
Run Code Online (Sandbox Code Playgroud)
这将阻止对上下文菜单的所有访问(不仅来自鼠标右键,还来自键盘)
但是,添加右键禁用器确实没有意义.具有基本浏览器知识的任何人都可以查看源并提取他们需要的信息.
Tri*_*ych 91
捕获onContextMenu
事件,并在事件处理程序中返回false.
您还可以event.button
在某些浏览器中捕获click事件并检查触发事件的鼠标按钮.
ElD*_*239 14
我用过这个:
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){
...
}
Run Code Online (Sandbox Code Playgroud)
然后我在最后两个函数中捕获e.keyCode属性 - 如果e.keyCode == 93,我知道用户释放了鼠标右键或按下/释放了上下文菜单键.
希望能帮助到你.
归档时间: |
|
查看次数: |
184101 次 |
最近记录: |