如何在Alt + [Key]上禁用Chrome中的哔声?

时间:2013-11-27 08:00:14

标签: javascript google-chrome events keyboard-shortcuts

如果组合Alt + [Key]没有固定动作,则蜂鸣器响起。例如

document.onkeydown = function(e){
    if(e.altKey && e.keyCode == 90){ // Alt+Z pressed
        e.preventDefault();
        e.stopPropagation();
        console.log('Alt+Z pressed');
    }
};

工作,但发出哔哔声。怎么预防呢?

正确的Alt + Z示例和其他一些键 - http://en.wikipedia.org/wiki/,那么它可以修复吗?

1 个答案:

答案 0 :(得分:0)

这是Chrome的一个错误。调用preventDefault()应该真的停止发出哔哔声,但事实并非如此。 https://bugs.chromium.org/p/chromium/issues/detail?id=105500

要抑制Chrome中的哔声,您可以向DOM中添加一个accesskey属性的锚点,其中accesskey是您使用Alt按下的键。

因此,对于您的示例(Alt + Z),您需要添加:

<a accesskey="Z"></a>

要试用它,您可以在控制台中运行以下命令:

var anc = document.createElement('a'); anc.accessKey='Z'; document.body.appendChild(anc);

当您在javascript中引用该属性时,请注意accessKey中的首字母“K”。

accesskey属性:http://www.w3schools.com/tags/att_accesskey.asp

accessKey财产:http://www.w3schools.com/jsref/prop_html_accesskey.asp