我想抓住命令+ r(safari)。下面的代码适用于chrome,IE,Firefox
$(document.body).on("keydown", this, function (event) {
if (event.ctrlKey && event.keyCode == 82) {
alert('ctrl+r event fired.')
}
if (event.metaKey && event.keyCode == 82) {
alert('command+r event fired.')
}
});

当用户在safari浏览器上单击命令+ r时,我想向用户显示自定义消息。
答案 0 :(得分:1)
当cmd-R
迫使页面重新加载 Safari 时,您需要抓住此组合键。
在捕获事件之前,暂停执行JavaScript并重新加载页面。
因此,您甚至无法使用evt.preventDefault();
覆盖浏览器默认行为,因为此代码永远不会被执行。
由于cmd-R
是普遍的"重新加载页面"对于Safari用户来说,使用不同的行为来覆盖该行为将是糟糕的用户体验(即使它可能是可能的)。
我认为避免cmd-R
被JavaScript代码覆盖是Safari开发人员故意的。如果您覆盖cmd-R
(重新加载),cmd-Q
(退出),cmd-W
(关闭窗口),该怎么办?从用户体验的角度来看,你会打破"打破"申请。