(编写此脚本时遇到)
相关代码:
window.keyPressEventLambda=function(key,callback){ //just a lambda function wrapper so I can generate handlers on the fly
return function (zEvent) {
if (zEvent.altKey && ( zEvent.which == key.charCodeAt(0)||zEvent.which == key.toUpperCase().charCodeAt(0))) {
callback(this.id);
return false;
}
return true;
}
}
用例:
$("textarea").live("keydown",keyPressEventLambda("C",function(id){/*blah blah blah */})
所以,如果我使用Alt- C,回调函数会自行运行。
现在,由于return false;
, 冒泡被抑制了,页面本身的一切都很方便-花花公子。
但是,Chrome(Windows 上的 20.0.1128.0 或 19.0.1084.41)仍将 alt 键捕获为 Chrome 浏览器快捷方式,并且由于实际上不存在Alt-的快捷方式C,因此它会失败并发出令人讨厌的“ping”声。
它适用于Ctrl-shortcuts,但我不想使用这些,因为大多数Ctrl-shortcuts 都被采用了。
有什么办法可以防止浏览器对我的脚本生气?