我知道这个问题在stackoverflow上被问到serval时间,我尝试了一些不同的解决方案,但是找不到适合我的代码。
我想在Mac上捕获键盘命令 Ctrl + S 和 Command + S 使用此代码(使用jQuery 2.1.0):
jQuery(window).on('keypress', function(event){
if (!(event.which == 115 && (event.ctrlKey||event.metaKey)) && !(event.which == 19)) return true;
// my save function
event.preventDefault();
return false;
});
本规范适用于:
您会看到问题是谷歌浏览器,在这里我只能捕获 Ctrl + S 。
有人知道如何解决这个问题吗?
答案 0 :(得分:11)
此代码适用于我。我在Chrome(v33)Firefox(v24)和Safari(v6.1.1)中进行了测试。 Control + S 和 Command + S 都有效。
$(document).keydown(function(event) {
// If Control or Command key is pressed and the S key is pressed
// run save function. 83 is the key code for S.
if((event.ctrlKey || event.metaKey) && event.which == 83) {
// Save Function
event.preventDefault();
return false;
};
}
);
请注意,我使用的是keydown
,而不是keypress
。在jQuery docs中他们说:
注意:由于任何官员都不承担按键事件 规范,使用它时遇到的实际行为可能 不同浏览器,浏览器版本和平台。
我会避免使用它。