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

如何在manifest.json的host_permissions中排除特定URL

在Chrome扩展Manifest V3中排除特定URL权限

方法1:使用否定匹配模式(Chrome 88及以上版本适用)

直接替换host_permissions中的<all_urls>,用通用匹配模式加上否定规则来排除目标URL。比如要排除https://example.com/*,修改后的完整配置如下:

{
  "name": "My extension",
  "version": "0.0.1",
  "description": "Chrome DevTool",
  "manifest_version": 3,
  "author": "ABC",
  "permissions": [
    "cookies",
    "tabs",
    "storage"
  ],
  "host_permissions": [
    "*://*/*",
    "!https://example.com/*"
  ],
  "devtools_page": "devtools.html",
  "incognito":"split"
}
  • 说明:<all_urls>等价于*://*/*(所有HTTP/HTTPS/FTP URL)加上file:///*(本地文件),如果需要包含本地文件且排除特定本地路径,可添加"!file:///path/to/exclude"
  • 否定模式语法:在匹配模式前加!,表示排除该范围的URL

方法2:在代码层面主动过滤

如果需要保留<all_urls>权限,但不想在特定URL下执行扩展逻辑,可以在脚本中主动判断URL并跳过处理:

后台服务Worker示例

chrome.tabs.onUpdated.addListener((tabId, changeInfo, tab) => {
  // 排除目标URL
  if (tab.url?.startsWith('https://example.com/')) {
    return;
  }
  // 执行你的业务逻辑
});

DevTools面板示例

// 获取当前 inspected 页面的URL
chrome.devtools.inspectedWindow.eval('window.location.href', (result) => {
  if (result.startsWith('https://example.com/')) {
    // 隐藏或禁用扩展功能
    document.querySelector('.extension-ui').style.display = 'none';
    return;
  }
  // 正常初始化扩展功能
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 01:55:15