【问题标题】:How can I prevent a custom key bind from making a noise?如何防止自定义键绑定产生噪音?
【发布时间】:2012-05-12 02:05:06
【问题描述】:

相当模糊的标题,我知道,但我将自定义键事件绑定到 document 对象以捕获 AltR 组合按键,如下所示:

document.body.onkeydown = function(event){
    event = event || window.event;
    var keycode = event.charCode || event.keyCode;
    if (keycode === 82) {
        if (event.altKey) {
            if (!canReload) {
                canReload = true;
                window.location.href += "#doGreaseRefresh";
            } else {
                canReload = false;
                window.location.href = window.location.href.replace("#doGreaseRefresh", "");
            }

            return false;
        }
    }
}

代码按预期运行,但也会产生相当烦人的“哔”声。我怎样才能防止这种情况? return false 没有被证明是答案,所以我想知道它是否可能。

哦,如果您想知道,这是在 Chrome 用户脚本(内容脚本)中,如果我按下 AltR,则每 10 秒刷新一次 Stack Overflow 的主页kbd>,并在我再次按下 AltR 后停止刷新。 :)

【问题讨论】:

  • 仅供参考:当/如果 real-time updating 部署在 Stack Overflow 上时,您的脚本将来可能会变得无关紧要。
  • 好的,感谢您的提醒。不过,如果我能修复那个愚蠢的声音,这对我来说是一个不错的修复。
  • 未经测试,但preventDefault() 能带您到任何地方吗? developer.mozilla.org/en/DOM/event.preventDefault(我什至无法让我的浏览器提示您的代码...您使用的是什么浏览器?)
  • 无法停止哔哔声显然是 Chrome 中的一个错误:code.google.com/p/chromium/issues/detail?id=105500return false 在 Firefox 中工作,没有哔哔声。
  • @ZachB:太糟糕了。那好吧。我将不得不忍受它。感谢您查看这个!发表您的评论作为答案,我会接受。

标签: javascript keyboard-shortcuts userscripts


【解决方案1】:

无法停止哔哔声显然是 Chrome 中的一个错误:http://code.google.com/p/chromium/issues/detail?id=105500return false 可以在 Firefox 中运行而不会发出哔哔声。

干杯-

【讨论】:

    【解决方案2】:

    As ZachB points out,这似乎是 Chrome 的一个错误。

    要解决这个烦恼:

    1. 进入 Windows 控制面板。
    2. 选择声音系统声音
    3. Default Beep 的声音分配(None)
      (无论如何我都喜欢这样做,因为它的用处比它的用处多 50 倍)。

    【讨论】:

    • 啊,好的,谢谢你的提示。我一直在寻找 Chrome,但这是一个很好的解决方案。 +1
    猜你喜欢
    • 2018-10-17
    • 1970-01-01
    • 2021-05-13
    • 1970-01-01
    • 1970-01-01
    • 2015-06-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-16
    相关资源
    最近更新 更多