(写作this script时遇到)
相关代码:
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都被使用了。
有没有办法阻止浏览器对我的脚本生气?