我遇到了这个问题,我想content.js
在URL匹配的页面上运行内容脚本https://www.example.com/*
。我在manifest.json
以下定义:
{
...
"content_scripts": [
{
"matches": ["https://www.example.com/*"],
"js": ["content.js"]
}
],
...
}
但是,content.js
当用户从另一个页面(例如https://www.foo.bar
)导航到时(https://www.example.com/*
例如通过单击超链接),将不会加载。仅在用户直接访问时加载https://www.example.com/*
。
我正在考虑注入content.js
所有页面,并chrome.tabs.onUpdate
在后台进行监听以查看当前URL是否匹配https://www.example.com/*
,并取决于向的发送消息content.js
。有没有更好的方法来解决此问题?
您可以从后台页面以编程方式注入脚本,从而使要发送/接收消息的功能执行脚本的回调:
function processUrl(tabId, url) {
if(url.indexOf("https://www.example.com")>-1){
chrome.tabs.executeScript(tabId, {file:"content.js"}, function() {
//send and receive msgs here
};
}
}
然后,只需从您的侦听器调用此函数即可。如果要使用库或其他依赖项,请先在库中调用executeScript,然后在第一个调用的回调中将脚本与executeScript一起使用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句