因此,我正在开发一个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*"]
}]
答案 0 :(得分:1)
您可以使用持久性后台脚本,并在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'});
}
});
答案 1 :(得分:1)
这些是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
}