sun*_*sun 5 javascript firefox jquery
我正在尝试禁用鼠标右键单击选项.所以我用contextmenubind函数来阻止它.这工作得很好,但是当shift与压沿mosue right click的contextmenu绑定功能不触发,但它显示了contextmenu.意味着没有得到警报,但它显示菜单.
这是我试过的代码.
$(document).ready(function(){
$(document).bind("contextmenu",function(e){
alert('Context Menu event has fired!');
return false;
});
});
Run Code Online (Sandbox Code Playgroud)
为了捕捉换档按钮按下并鼠标右键单击我正在执行以下代码,但这没有帮助.可能是我做错了什么.
$(document).ready(function(){
$(document).bind("contextmenu",function(e){
alert('Context Menu event has fired!');
return false;
});
var shift = false;
jQuery(document).on("keydown", function(event) {
//check for shift key is pressed
if (event.which === 16) {
shift = true;
}
});
jQuery(document).mousedown(function(e) {
// e.which === 3 is for mouse right click
if (e.which === 3 && shift === true) {
console.log("both action are triggered");
return false; // how to stop the contextmenu action here
}
});
});
Run Code Online (Sandbox Code Playgroud)
我尝试给予e.preventDefault而不是返回false.我认为当单击shift时,上下文菜单事件本身不会在firefox中触发.
如何在这种情况下为firefox禁用鼠标右键?任何帮助或线索都会有所帮助
JSFIDDLE 注意 这不是在chrome中发生的.这只发生在firefox中.这是一个错误吗?
这不是一个错误,这是一个功能!
http://www.whatwg.org/specs/web-apps/current-work/multipage/interactive-elements.html#context-menus
用户代理可以提供绕过上下文菜单处理模型的方法,确保用户始终可以访问 UA 的默认上下文菜单。例如,用户代理可以处理按下 Shift 键的右键单击,这样就不会触发 contextmenu 事件,而是始终显示默认的上下文菜单。
根据设计,您将无法在 Firefox 中执行此操作。这很烦人,特别是对于复杂的网络应用程序和游戏来说,但它被硬编码到浏览器中,并且没有办法在 JavaScript 中禁用它(据我所知)。
归咎于标准,而不是 Mozilla。
| 归档时间: |
|
| 查看次数: |
2254 次 |
| 最近记录: |