我正在编写一个用户脚本,代码如下:
(function() {
'use strict';
window.addEventListener("keydown", arrows, false);
function arrows(e) {
debugger;
switch(e.keycode) {
case 37: alert("Left"); break;
case 39: alert("Right"); break;
}
}
})();
最终,左右两个情况将分别导航到系列中的上一篇和下一篇文章,类似于以下内容:
window.location = String(parseInt(window.location.href.match(/\d+$/))-1);
然而,按箭头键并不会触发警报。脚本明显已经加载,Chrome开发者菜单显示arrows()
函数已注册为window.keydown
的事件监听器,但是该函数从未触发。我在arrows()
函数中添加了debugger;
,但当我按下箭头键时调试器没有显示。
keydown
事件的传播(在这种情况下,您应该将addEventListener
的第三个参数设置为true
以启用捕获)? - Stuart P. Bentley