You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TamperMonkey脚本阻止R键默认行为无效 技术问题咨询

代码问题排查&修正方案

存在的问题

你的代码无法生效是由以下几个语法、规范问题共同导致的:

  • 拼写错误:e.keycode 属性名应为驼峰格式的e.keyCode,小写的keycode不存在,判断条件永远不成立,自然不会触发后续逻辑。
  • 变量引用错误:事件回调的参数命名为e,但你调用preventDefault()时使用了未声明的event变量,部分浏览器不会在全局挂载event对象,会直接抛出未定义报错导致逻辑中断。
  • 冗余无效代码:if块开头的单独分号属于无效冗余内容,虽不直接报错但属于不规范写法。
  • 废弃API使用:keyCode已经被W3C标准废弃,后续浏览器兼容性会持续下降,更推荐使用e.key直接判断按键字符,可读性和兼容性更好。

如果你的工作系统原有快捷键是在事件捕获阶段绑定的,还需要给addEventListener增加第三个参数{capture: true},保证你的事件回调先于原有逻辑执行,才能成功阻止默认行为。

修正后的代码

// 禁用无修饰键按下R键的默认行为
(() => {
    window.addEventListener('keydown', (e) => {
        if (e.key === 'r' && !e.shiftKey && !e.ctrlKey && !e.altKey && !e.metaKey) {
            e.preventDefault();
            // 如果需要完全阻止事件透传到原有系统逻辑,可额外加下面这行
            // e.stopPropagation();
        }
    }, {capture: true});
})();

内容的提问来源于stack exchange,提问作者oppala

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.15 02:45:04