停止事件冒泡到chrome浏览器以进行alt-keypress

时间:2012-05-07 06:27:26

标签: javascript google-chrome javascript-events event-bubbling

(写作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都被使用了。

有没有办法阻止浏览器对我的脚本生气?

1 个答案:

答案 0 :(得分:1)

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