(写入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实际上不存在快捷方式,因此失败并发出令人讨厌的“砰”声。
对于Ctrl-快捷键来说很好用,但是我不想使用这些,因为大多数Ctrl-快捷键都是采用的。
有什么方法可以防止浏览器对我的脚本感到生气吗?
这是已知的Chrome问题。参见http://code.google.com/p/chromium/issues/detail?id=105500