【发布时间】:2017-01-05 01:05:59
【问题描述】:
我试图在浏览器上同时捕获 Ctrl-S 和 Cmd-S我的网络应用程序的操作系统兼容性。我在这里看到了一个关于如何做到这一点的帖子:jquery keypress event for cmd+s AND ctrl+s
我的代码中有以下 sn-p:
$(document).keypress(function(event) {
if (event.which == 115 && (event.ctrlKey||event.metaKey)|| (event.which == 19)) {
event.preventDefault();
save();
return false;
}
return true;
});
其中save() 是一个JavaScript 函数,它将在未来发送一个AJAX 请求,但现在只有alert('Saved!');。
但是,虽然这会捕获 Ctrl-S,但它不会在 Chrome 上捕获 Cmd-S ,而不是像往常一样打开保存网页对话框。我看到该页面上的其他人也遇到了同样的问题,但我没有找到解决方案。
提前致谢!
【问题讨论】:
-
还要注意,
the keypress event isn't covered by any official specification, the actual behavior encountered when using it may differ across browsers, browser versions, and platforms.(来自官方jQuery doc forkeypress)。您可能要考虑根本不使用keypress。 -
@filoxo 感谢您告诉我 :)
标签: javascript jquery macos google-chrome osx-yosemite