cmd + s和ctrl + s的jquery按键事件

Joh*_*lia 14 html javascript css macos jquery

使用前一个问题中的一个示例,我有:

$(window).keypress(function(event) {
    if (!(event.which == 115 && event.ctrlKey) && !(event.which == 19)) return true;
    $("form input[name=save]").click();
    event.preventDefault();
    return false;
});
Run Code Online (Sandbox Code Playgroud)

是否也可以将其更改为适用于Mac cmd键?

我试过(!(event.which == 115 && (event.cmdKey || event.ctrlKey)) && !(event.which == 19))但这没用.

小智 24

使用event.metaKey检测Command键

$(document).keypress(function(event) {
    if (event.which == 115 && (event.ctrlKey||event.metaKey)|| (event.which == 19)) {
        event.preventDefault();
        // do stuff
        return false;
    }
    return true;
});
Run Code Online (Sandbox Code Playgroud)

  • 不幸的是,这对我来说不适用于chrome(版本27.0.1453.110).它总是打开"另存为"对话框... - 另一方面CTRL + S工作 (6认同)
  • Typo缺少支架.我试图编辑这个,但得到错误:"编辑必须至少6个字符;这篇文章还有其他改进的地方吗?" 愚蠢的stackoverflow (3认同)