根据MDN文档,火狐似乎有一个Assert.jsm模块。这些文档说,您可以在扩展中使用Components.utils.import("resource://testing-common/Assert.jsm");来使用它。但是,当我尝试获得以下错误时:
Exception... "Component returned failure code: 0x80040111 (NS_ERROR_NOT_AVAILABLE)
[nsIXPCComponents_Utils.import]" nsresult: "0x80040111 (NS_ERROR_NOT_AVAILABLE)"医生还说,这个模块需要壁虎28。我尝试了Abrowser 33 (基本上是Firefox 33),所以这不应该是问题所在。
我成功地导入了其他模块:
Components.utils.import('resource://gre/modules/Services.jsm')
Components.utils.import('resource://gre/modules/devtools/Console.jsm')值得注意的是,我在一个不使用SDK的引导插件中尝试了这一点。我尝试了一个只包含Components.utils.import(...)行的Components.utils.import(...)文件,但是仍然会引发错误。
如果我在地址栏中输入resource://gre/modules/Services.jsm (我设法导入的模块之一),将显示该模块的源代码。但是,如果我进入resource://testing-common/Assert.jsm,什么都不会发生!
这里发生了什么事?
(编辑:由于这个问题是写的,MDN文档链接到已经更新了。)
发布于 2014-12-08 17:35:39
主要问题是URL resource://testing-common/Assert.jsm不存在。
在Firefox33.0中,这个模块的正确网址是:resource://specialpowers/Assert.jsm
虽然MDN上的Assert.jsm页面声称它可以在Firefox28上使用,但我直到31.0才在火狐版本中找到它。在Firefox31.0中,它位于resource://specialpowers/Assert.jsm网址上。
https://stackoverflow.com/questions/27362757
复制相似问题