【发布时间】: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=105500。
return false在 Firefox 中工作,没有哔哔声。 -
@ZachB:太糟糕了。那好吧。我将不得不忍受它。感谢您查看这个!发表您的评论作为答案,我会接受。
标签: javascript keyboard-shortcuts userscripts