如何在 Chrome 分机中匹配同一个域名的多个分机?

How to match the same domain with multiple extensions in Chrome extension?

所以,我正在开发一个 Chrome 扩展程序,需要在域为 example.extension 的任何站点上激活,其中 extension 可以是任何内容(.com.de 等)。

我有一个内容脚本,在 manifest.json 我包含了一个接一个列出的所有域名:

"content_scripts": [{
    "js": ["content.js"],
    "matches": ["https://www.example.com/*","https://www.example.de/*"]
  }]

但是我怎么能写出匹配 example.* 的东西而不是列举所有的东西呢? 请注意,我尝试过类似的方法但它不起作用:

 "content_scripts": [{
    "js": ["content.js"],
    "matches": ["https://www.example*"]
  }]

您可以使用持久后台脚本并在 url 符合您的要求时注入脚本。例如:

background.js

chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) {
    if (changeInfo.status == 'complete' && tab.url.indexOf('https://www.example.') == 0){
        chrome.tabs.executeScript(tabId,{file:'content.js'});
    }
});

有 2 个选项:

第一个选项: 您使用清单中的 include_globs,如图 here

    "content_scripts": [{
           "js": ["content.js"],
            "matches": [ "*://*/*" ],
            "include_globs": [
                "*://*.example.*/*",
            ]
        }]

第二个选项:您可以更改内容脚本以检查目标 URL 是否匹配 www.example.*

if (window.location.host.startsWith('www.example')){
   //content script code
}