【问题标题】:TypeError: browser.webRequest is undefined [duplicate]TypeError:browser.webRequest未定义[重复]
【发布时间】:2017-06-12 09:59:29
【问题描述】:

我正在尝试使用 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"
]

}

还有,内容脚本: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]}
);

当我尝试扩展并加载它时,输入任何会引发错误的错误 URL: 例如,https://doesnotexist/

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

-- inside js file --

但我得到了这个错误:

TypeError: browser.webRequest is undefined

【问题讨论】:

    标签: firefox-addon-webextensions


    【解决方案1】:

    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"
      ]
    }
    

    【讨论】:

    • 这是我得到的:The webRequest.addListener filter doesn't overlap with host permissions.
    • 它可以在 Ubuntu 上的 FF 53.0.3 中正常工作。您是在尝试与您发布的代码不同的东西还是只记录响应?
    • 一点也不。我复制了你的帖子。我正在制作 Nightly 54。
    • 这可能是个问题,是您使用夜间构建的具体原因吗?此外,在野外发现的与您的问题相似的唯一结果是this,这可能不会出现在稳定版本中。
    • 我需要使用嵌入式网络扩展,这需要我使用 nightly 来运行它。因为当我尝试从 firefox 53 运行 SDK 时,我收到一条错误消息,指出没有有效的清单文件。还有其他建议吗?上面的示例适用于普通 FF,但不适用于 Nightly。
    猜你喜欢
    • 2014-12-21
    • 2019-01-28
    • 2017-10-11
    • 2018-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-22
    相关资源
    最近更新 更多