jQuery keypress CTRL + S事件在Chrome上不起作用?

lau*_*kok 4 jquery google-chrome keypress

为什么keypress下面的事件无法在Chrome和Safari上运行?它在Firefox中运行良好!

我错过了Chrome和Safari的东西吗?

$(window).keypress(function(event) {                                       

    if ((event.which == 115 && event.ctrlKey) || (event.which == 19)) {

        // Trigger click.
        $("form input[type=submit][name=update]",object_popup).click();
            alert("Keys down are Ctrl + s + Return");

    } else if ((event.which == 120 && event.ctrlKey) || (event.which == 19)){

        // Trigger click.
        $(".ps-button-close",object_popup).click();
        alert("Keys down are Ctrl + x + Return");

    } else {
        return true;
    }

    event.preventDefault();
    return false;
});
Run Code Online (Sandbox Code Playgroud)

当我使用ctl + s和使用ctl + x时发出警报声时,Chrome/Safari将恢复默认设置并保存网页.

jsFiddle演示

Ili*_*sev 5

您必须稍微将代码更改为:

$(document).keydown(function(event) {

  var currKey=0,e=e||event; 
  currKey=e.keyCode||e.which||e.charCode;

    if (!( String.fromCharCode(event.which).toLowerCase() == 's' && event.ctrlKey) && !(event.which == 19))  {
       return true; 
    }    

    event.preventDefault();       
    alert("Keys down are Ctrl + s + Return");     
    return false;

}); 
Run Code Online (Sandbox Code Playgroud)

在线示例