如何在xbl中添加/包含js文件?

时间:2011-02-17 22:14:43

标签: javascript xul xbl

我已经阅读并找到了在XBL中添加js文件的技术,但这些技术不起作用。 我试图声明标记:<'script src='test.js''><'script src='chrome://content/test.js '>,但都没有。

测试类中的方法只是function caller() { alert("call succeeded"); }

是否有正确而简单的方法在jBL中包含js文件,因此从文件调用函数就像在XBL中编写函数一样工作。

2 个答案:

答案 0 :(得分:2)

以下是一些更多细节: http://www.w3.org/TR/xbl-primer/#scripts 你正在做的事似乎很好,这是他们给出的例子:

<xbl xmlns="http://www.w3.org/ns/xbl">
  <script src="example.js"/>

注意那里的 xmlns ,这是默认的命名空间。如果您将其定义为: xmlns:xbl =“http://www.w3.org/ns/xbl”那么您必须使用

<xbl:script src="example.js" />

尝试一下,我自己从未亲自试过,但这个名称空间的东西是常见的陷阱。

修改 我担心这可能是不可能的。这是来自XBL 2.0规范,Gecko似乎还没有支持它,并且在XBL 1.0脚本标签中不存在:

http://groups.google.com/group/mozilla.dev.tech.xbl/msg/d7d4f279ebdad65f?pli=1 他们在这里提到发展应该全面展开。

以下是他们指向的链接:https://wiki.mozilla.org/XBL2但似乎自2009年以来它没有更新,很难说这是否会实现。

这里是XBL 1.0参考,你可以看到脚本标签不存在:https://developer.mozilla.org/en/XBL/XBL_1.0_Reference

但是提供一个可能的替代方案 - 你可以使用模块,并在构造函数中做这样的事情:

<constructor>
    Components.utils.import("resource://yourextension/config.js");

有关模块的更多信息:https://developer.mozilla.org/en/JavaScript_code_modules 例如:https://developer.mozilla.org/en/JavaScript_code_modules/Using 基本上你需要注册你的模块文件夹把你的test.js放在里面,按照说明如何从它“导出”函数/变量。然后,您可以将其导入任何JavaScript,XUL或XBL文件。

答案 1 :(得分:1)

XBL1不支持脚本标记。您可以做的最好的事情是在需要时从模块导入函数。