【发布时间】:2014-06-22 22:54:12
【问题描述】:
我试图阻止我的项目的一些浏览器快捷键,例如如果用户按下 F1 键,那么它应该从项目中打开一个新页面,但浏览打开它的帮助页面。如果我按 Ctrl + N 那么它应该打开特定页面但浏览器打开新窗口。
这是我的代码。 (FIDDLE)
$('body').keypress(function(event){
if (event.keyCode == 17 && event.keyCode == 110)
{
alert("New");
}
else
{
event.preventDefault();
}
});
【问题讨论】:
-
我认为您必须单独处理控制键和字符键,存储修饰键的状态。 iirc 您不能覆盖浏览器的决定(可配置,至少在opera和firefox上)是否将新视口作为选项卡或新窗口打开。附带说明:您应该使用类型安全的比较运算符(
===而不是==)和规范化的which属性而不是 jquery api 文档推荐的keyCode。 -
@collapsar 你能在 jsfiddle 上演示吗?
-
是的,正如 collapsar 所说,任何对您的操作系统或浏览器具有特殊意义的键组合都不会引发您可以处理的事件
标签: javascript jquery html browser keyboard-shortcuts