![](/img/trans.png)
[英]how to load a content script in chrome extension without clicking the extension icon
[英]Chrome extension - load content script on URL updates
我在要在URL匹配https://www.example.com/*
页面上运行内容脚本content.js
时遇到了这个问题。 我在manifest.json
定义了以下内容:
{
...
"content_scripts": [
{
"matches": ["https://www.example.com/*"],
"js": ["content.js"]
}
],
...
}
但是,当用户从另一个页面(例如https://www.foo.bar
)导航到https://www.example.com/*
时(例如通过单击超链接),将不会加载content.js
。 仅在用户直接访问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一起使用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.