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

Chrome扩展能否作用于扩展程序标签页?

让Chrome扩展content_scripts匹配chrome://内置页面的方法

常规配置里,我们常用以下方式让content_scripts匹配所有网址:

"content_scripts": {
  "matches": ["http://*","https://*"]
}

或者更简洁的写法:

"content_scripts": {
  "matches": ["<all_urls>"]
}

但这些配置都无法覆盖chrome://extensions、chrome://settings这类Chrome内置页面,哪怕尝试"matches": ["*://extensions/*"]或者"*://*/*"也没用——因为chrome://是Chrome专属的内置协议,不在常规HTTP/HTTPS的匹配范围内。

之前旧的解决方案已经失效,现在可以通过以下步骤解决:

  • 第一步:声明host_permissions权限
    必须在manifest.json里明确添加对目标内置页面的权限,比如只需要匹配扩展管理页和设置页的话:

    "host_permissions": [
      "chrome://extensions/*",
      "chrome://settings/*"
    ]
    

    要是需要覆盖所有内置页面,就写"chrome://*/*"。

  • 第二步:正确配置content_scripts
    在content_scripts里指定对应的matches规则,同时加上"all_frames": true(很多内置页面包含子框架,开启这个能确保脚本注入到所有框架中):

    "content_scripts": [
      {
        "matches": [
          "chrome://extensions/*",
          "chrome://settings/*"
        ],
        "js": ["content.js"],
        "css": ["content.css"],
        "all_frames": true
      }
    ]
    
  • 额外提醒

    • 这种权限属于Chrome的特殊权限,要是扩展想上架Chrome商店,可能会被额外审核,本地开发测试不受影响。
    • 不同Chrome版本对内置页面的权限控制可能有变化,建议用新版本Chrome测试。
    • 别随便申请chrome://*/*权限,只声明实际需要的页面路径,避免权限过度申请。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 09:47:46