2011-02-17 16 views
1

我已经阅读并发现了在XBL中添加js文件的技巧,但这些技巧无法正常工作。 我试图申报标签:<'script src='test.js''><'script src='chrome://content/test.js '>,但都没有成功。如何在xbl中添加/包含js文件?

测试类内部的方法简单地为function caller() { alert("call succeeded"); }

是否有一个正确和简单的方法来包含XSL中的js文件,所以从文件中调用函数就好像该函数是在XBL中编写的那样工作。

回答

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文件。

+0

这是原始命名空间xmlns =“http://www.mozilla.org/xbl” xmlns:xul =“http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul “ xmlns:xbl =”http://www.mozilla.org/xbl“> – user375065 2011-02-18 15:55:50

1

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