2016-11-17 31 views
0

我是一个Chrome扩展转换到Firefox,这里是一个方法:如何找出Firefox插件是否支持某种方法?

webRequest.onAuthRequired(...)

browser.webRequest.onAuthRequired()

TypeError: browser.webRequest.onAuthRequired is not a function [Learn More]

尽管如此,WebRequest的/ onAuthRequired是described in the docs

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

回答

2

webRequest/onAuthRequired is described in the docs.

是的,有明确的支持表,单纯的说没有为Firefox。

MDN扩展文档反映了Chrome文档甚至是FF中不支持的位,因为它们将自己视为所有浏览器的中央文档。

如果要检查实际的支持,看到这些资源之一:

然后,如果有一个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命名空间以获得最大可移植性。

+0

不知何故,我错过了那张桌子。谢谢! –

相关问题