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

Chrome扩展中覆盖Ctrl+H快捷键,打开自定义扩展而非默认历史

解决Chrome扩展替换Ctrl+H默认历史页的问题

你之前的代码无效,是因为网页内的document.onkeydown无法拦截浏览器级别的全局快捷键——Chrome会优先处理自身的默认快捷键,网页脚本的preventDefault()根本没机会生效。要实现这个需求,必须用Chrome扩展的Commands API来注册全局快捷键,覆盖默认行为。

步骤1:修改manifest.json配置

在manifest.json中添加commands字段,注册自定义快捷键并声明权限:

{
  "manifest_version": 3, // 推荐使用V3版本符合当前规范
  "name": "自定义历史扩展",
  "version": "1.0",
  "permissions": ["commands"],
  "background": {
    "service_worker": "background.js"
  },
  "commands": {
    "open-custom-history": {
      "suggested_key": {
        "default": "Ctrl+H",
        "mac": "Command+H"
      },
      "description": "打开自定义历史扩展"
    }
  }
}

步骤2:编写background.js监听命令

在background.js中监听快捷键触发事件,打开你的扩展页面:

chrome.commands.onCommand.addListener((command) => {
  if (command === "open-custom-history") {
    // 方式1:打开扩展的popup(若你的扩展有popup界面)
    // chrome.action.openPopup();

    // 方式2:打开自定义的历史页面(比如你开发的history.html)
    chrome.tabs.create({ url: chrome.runtime.getURL("history.html") });
  }
});

注意事项

  • 若使用Manifest V2版本,需把background字段改为"scripts": ["background.js"],同时将chrome.action替换为chrome.browserAction。
  • 部分Chrome版本中,默认快捷键需用户手动确认:打开Chrome「扩展管理页面」→ 点击右上角「键盘快捷键」→ 找到你的扩展,确认Ctrl+H已绑定到自定义命令。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 12:02:07