TypeError:browser.webRequest未定义

use*_*880 2 firefox-addon-webextensions

我正在尝试使用webextension记录错误。我有以下简单的示例开始:

manifest.json

{

  "manifest_version": 2,
  "name": "testOnErrorWebex",
  "version": "1.0",

  "description": "Adds a red border to all webpages matching mozilla.org.",

  "icons": {
    "48": "icons/border-48.png"
  },

  "content_scripts": [
    {
      "matches": ["<all_urls>"],
      "js": ["testOnErrorWebex.js"]
    }
  ],

  "permissions": [
  "webRequest"
]

}
Run Code Online (Sandbox Code Playgroud)

并且,内容脚本: testOnErrorWebex.js

console.log("-- inside js file --");

var target = "<all_urls>"; 

/*
e.g., with no network:
"https://developer.mozilla.org/en-US/"
NS_ERROR_NET_ON_RESOLVED in Firefox
net::ERR_INTERNET_DISCONNECTED in Chrome
*/

function logError(responseDetails) {
  console.log("-- inside logError  --");
  console.log("inside logError");
  console.log(responseDetails.url);
  console.log(responseDetails.error);
}

browser.webRequest.onErrorOccurred.addListener(
  logError,
  {urls: [target]}
);
Run Code Online (Sandbox Code Playgroud)

当我尝试扩展并加载它时,然后键入任何会引发错误的错误网址:例如, https://doesnotexist/

内容脚本的以下行已打印:

-- inside js file --
Run Code Online (Sandbox Code Playgroud)

但是我得到这个错误:

TypeError: browser.webRequest is undefined
Run Code Online (Sandbox Code Playgroud)

Chr*_*las 5

browser.webRequest不是在内容的脚本可用。请尝试将其更改testOnErrorWebex.js为在后台运行,因为您可以在以下更改的清单中找到:

{

  "manifest_version": 2,
  "name": "testOnErrorWebex",
  "version": "1.0",
  "description": "Adds a red border to all webpages matching mozilla.org.",
  "background": {
    "scripts": ["testOnErrorWebex.js"]
  },
  "permissions": [
    "webRequest"
  ]
}
Run Code Online (Sandbox Code Playgroud)


归档时间:

查看次数:

1454 次

最近记录:

8 年,4 月 前