如何确定Firefox插件是否支持某种方法?

时间:2016-11-17 11:56:56

标签: google-chrome-extension firefox-addon

我正在将Chrome扩展程序转换为Firefox,这是一种方法:

webRequest.onAuthRequired(...)

  

browser.webRequest.onAuthRequired()

     

TypeError:browser.webRequest.onAuthRequired不是函数[了解更多]

尽管如此,webRequest / onAuthRequired为described in the docs

我安装了 Firefox 50 ,但仍然没有。它是否存在于某些开发版本中,以及如何找到它?

1 个答案:

答案 0 :(得分:2)

  

webRequest / onAuthRequired在文档中有描述。

是的,有一个明确的支持表,直接表示Firefox的

MDN扩展文档甚至反映了Chrome文档中的文档,因为它们将自己视为所有浏览器的中心文档。

如果您想查看实际支持,请参阅以下资源之一:

然后,如果有一个尚未支持的API,您应该在使用之前检查它是否存在于命名空间中:

if (browser && browser.webRequest && browser.webRequest.onAuthRequired) {
  // browser.webRequest.onAuthRequired is not yet supported,
  //   see https://bugzilla.mozilla.org/show_bug.cgi?id=1190689
} else {
  // Can use it
}

检查支持没有更好的(运行时)方法。当部分支持API时,它会变得更加复杂,例如, notifications功能 - 没有一般方法。

P.S。请注意,browser是仅限Firefox(现在至少)的扩展API变体 - 唯一的区别是,如果未指定回调,它将从异步函数返回Promises。如果您不使用它,请坚持使用chrome命名空间以获得最大的可移植性。