繁体   English   中英

Chrome扩展程序-在URL更新上加载内容脚本

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM