Jquery 在firefox中捕获的Ctrl+w事件在其他浏览器中不起作用

Jquery 在firefox中捕获的Ctrl+w事件在其他浏览器中不起作用,jquery,internet-explorer,google-chrome,firefox,Jquery,Internet Explorer,Google Chrome,Firefox,我有下面的代码,通过它我可以获得浏览器的Ctrl+w事件,但它只在Firefox中有效,在其他浏览器中无效。我发现keydown/keypress有问题。是否有任何方法可以为eventkeydown/keypress编写代码到浏览器的兼容性 这是我的密码: $(window).keydown(function (event) { event.preventDefault(); if (event.which == 119 && event.ctrlKey) {

我有下面的代码,通过它我可以获得浏览器的Ctrl+w事件,但它只在Firefox中有效,在其他浏览器中无效。我发现keydown/keypress有问题。是否有任何方法可以为eventkeydown/keypress编写代码到浏览器的兼容性

这是我的密码:

$(window).keydown(function (event) {
    event.preventDefault();
    if (event.which == 119 && event.ctrlKey) {
        alert("Ctrl-W pressed");
    }
    return false;
});

以下是仅针对未设置为默认值的键的解决方案

此外,您不能使用JS覆盖浏览器默认行为

这里有一个快速的解决方案

解决方案1快速

代码

拨弄

解决方案2

您可以使用js库轻松完成这项工作,它是

解决方案3

你可以这样做:

$(window).keydown(function(event) {event.preventDefault();
    if (event.which == 87 && ctrlMode == true) {
        alert("Ctrl-W pressed");
    }    
     return false;
});
$(document).keydown(function(e){e.preventDefault();
 if(e.ctrlKey){
        ctrlMode = true;
 }
});
$(document).keyup(function(e){e.preventDefault();
 if(e.ctrlKey){
     ctrlMode = false;
 }
});
拨弄


希望它能帮助您:

使用按键而不是按下键:


它在chrome和IE中不起作用。我希望此代码在所有浏览器中都能起作用。在chrome中不可能,你不能用js覆盖浏览器行为:它不起作用。我想这段代码应该在所有浏览器中工作。
$(window).keydown(function(event) {event.preventDefault();
    if (event.which == 87 && ctrlMode == true) {
        alert("Ctrl-W pressed");
    }    
     return false;
});
$(document).keydown(function(e){e.preventDefault();
 if(e.ctrlKey){
        ctrlMode = true;
 }
});
$(document).keyup(function(e){e.preventDefault();
 if(e.ctrlKey){
     ctrlMode = false;
 }
});
$(window).keypress(function(event) {
        event.preventDefault();

        if (event.which == 119 && event.ctrlKey) {
            alert("Ctrl-W pressed");
        }    

    return false;
});