javascript - 浏览器上下文菜单是否有关闭事件

标签 javascript jquery dom-events contextmenu

我正在使用 jQuery 捕捉 contextmenu 事件:

$(document.body).on("contextmenu", function(e){
    //do stuff here
});

到目前为止,还不错。现在我想在它关闭时执行一些代码,但我似乎找不到正确的解决方案。

使用像下面这样的东西会捕捉到一些情况,但不是几乎所有情况:

$(document.body).on("contextmenu click", function(e){});

在以下情况下不会执行:

  • 浏览器失去焦点
  • 选择上下文菜单中的一个选项
  • 用户点击浏览器中页面以外的任何地方

注意:我没有使用 jQuery 上下文菜单,我只是用它来捕捉事件。

最佳答案

以下代码可能对您有所帮助。 jsfiddle

var isIntextMenuOpen ;
$(document).on("contextmenu", function(e){

    isIntextMenuOpen = true;
});
function hideContextmenu(e){
       if(isIntextMenuOpen ){
            console.log("contextmenu closed ");
       }

     isIntextMenuOpen = false;
}
$(window).blur(hideContextmenu);

$(document).click(hideContextmenu);

关于javascript - 浏览器上下文菜单是否有关闭事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12801898/

相关文章:

javascript - 在 JavaScript 事件中替换/覆盖/覆盖 e.target

javascript - Dom加载事件跨浏览器原生javascript代码

javascript - Firefox onchange 不调用函数

css - 寻找翻书库/插件

javascript - 如何保护 angularjs 指令的 CSS?

jquery - 如何在不显示滚动条的情况下从左、右、上、下滚动 div?

javascript - 获取 svg 中 div 的位置详细信息

javascript - 我正在尝试检测内容是否粘贴在输入中或从 ReactJS 中的键盘引入

javascript - Selenium ,JavaScript : Extract Element CSS from Active Element

jquery - 获取单独的 Bootstrap 工具提示