2

(编写此脚本时遇到)

相关代码:

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 都被采用了。

有什么办法可以防止浏览器对我的脚本生气?

4

1 回答 1

1

这是一个已知的 Chrome 问题。请参阅http://code.google.com/p/chromium/issues/detail?id=105500

于 2014-01-03T02:09:36.867 回答