浏览器扩展:动态禁用内容脚本

browser extension: dynamically disable content script

我有一个浏览器扩展程序,其中包含在所有 url 上运行的内容脚本。

{
  "name": "foobar",
  "version": "0.1.0",
  "permissions": [],
  "manifest_version": 2,
  "content_scripts": [
    {
      "matches": ["<all_urls>"],
      "js": ["content.js"]
    }
  ]
}

我现在想允许用户禁用某些网站上的内容脚本,例如,让她点击弹出窗口中的按钮。我该怎么做?

从后台脚本(具有 "activeTab""https://*/" 权限),可以使用 chrome.tabs.executeScript:

注入任何脚本
chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {
  const inject = /.*:\/\/.*whosebug.com\/.*/.test(request.url);

  if (inject) {
    chrome.tabs.executeScript({
      file: 'foobar.js'
    });
  }

  // Send an empty response to avoid warning
  sendResponse({});
});