我到处阅读,找到了在XBL中添加js文件的技术,但这些技术都不起作用。我试图声明标签:<'script src='test.js''>和<'script src='chrome://content/test.js '>,但都不起作用。
测试类中的方法是简单的function caller() { alert("call succeeded"); }。
有没有一种正确而简单的方法在XBL中包含js文件,这样从文件中调用函数就像函数是在XBL中编写的一样。
发布于 2011-02-18 18:07:38
这里有一些更多的细节: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" />试一试,我自己从来没有亲自尝试过,但是命名空间的事情是一个常见的陷阱。
编辑:恐怕这是不可能的。这来自XBL2.0规范,Gecko似乎还不支持它,并且在XBL1.0中不存在脚本标记:
http://groups.google.com/group/mozilla.dev.tech.xbl/msg/d7d4f279ebdad65f?pli=1他们在这里提到开发应该全速进行。
这是他们指向的链接:https://wiki.mozilla.org/XBL2,但它似乎自2009年以来就没有更新过,很难说这是否会实现。
下面是XBL1.0参考,您可以看到脚本标记并不存在:https://developer.mozilla.org/en/XBL/XBL_1.0_Reference
但是为了提供一种可能的替代方案--你可以使用模块,在构造函数中这样做:
<constructor>
Components.utils.import("resource://yourextension/config.js");关于modules:https://developer.mozilla.org/en/JavaScript_code_modules和example:https://developer.mozilla.org/en/JavaScript_code_modules/Using的更多信息基本上你需要注册你的modules文件夹,把你的test.js放在里面,按照说明如何从里面“导出”函数/变量。然后可以将其导入到任何JavaScript、XUL或XBL文件中。
发布于 2011-02-19 08:10:35
XBL1不支持脚本标记。你能做的最好的事情就是在你需要的时候从模块中导入函数。
https://stackoverflow.com/questions/5035355
复制相似问题