【问题标题】:chrome.webRequest is undefinedchrome.webRequest 未定义
【发布时间】:2020-12-24 11:47:58
【问题描述】:

不知道我哪里错了:

content.js

chrome.webRequest.onBeforeRequest.addListener(
  function(info) {
    console.log("URL intercepted: " + info.url);
  },
  // filters
  {
    urls: [
      "<all_urls>"
    ]
  },
  // extraInfoSpec
  ["blocking"]
);

manifest.json

{
  "name": "Color Changer",
  "author": "Microsoft Edge Extension Developer",
  "description": "Change the color of the body on docs.microsoft.com",
  "version": "1.0",
  "manifest_version": 2,
  "icons": {
    "25": "images/color-changer25.png",
    "48": "images/color-changer48.png"
  },
    "permissions": [
    "webRequest",
    "webRequestBlocking",
        "tabs",
        "notifications",
        "http://*/",
        "https://*/"
    ], 
  "browser_action": {
    "default_icon": {
      "20": "images/color-changer20.png",
      "40": "images/color-changer40.png"
    },
    "default_title": "Color Changer",
    "default_popup": "popup.html"
  },
  "content_scripts": [{
    "matches": [
        "<all_urls>"
    ],
    "js": [
      "js/jquery-3.5.1.min.js",
      "js/content.js"
    ],
    "run_at": "document_end"
  }],
  "background": {
    "scripts": ["js/background.js"],
    "persistent": true
  },
  "web_accessible_resources": [
    "css/*.css",
    "js/*.js",
    "html/*.html"
  ]
}

错误:

未捕获的类型错误:无法读取未定义的属性“onBeforeRequest”

【问题讨论】:

  • 内容脚本不能使用大部分 chrome API。在后台脚本中执行。
  • 感谢@wOxxOm - 随时发布作为答案,我会接受。
  • 内容脚本有一些限制。他们不能使用 chrome.* API,扩展、i18n、运行时和存储除外。相反,您需要使用后台脚本。

标签: javascript google-chrome-extension microsoft-edge-extension


【解决方案1】:

内容脚本在它们被注入的页面的上下文中运行。 chrome.* 不适用于页面。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-21
    • 2018-08-17
    • 1970-01-01
    • 2018-09-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多