xul独立使用jslib

时间:2013-06-17 00:58:14

标签: xul xulrunner

我无法弄清楚如何在xul独立应用程序中使用jslib。

在chrome.manifest中我添加了:

content jslib jar:chrome/content/jslib.jar!/ 

在我的xul文件中我有:

<script type="application/javascript" src="chrome://jslib/io/fileUtils.js" />

https://www.mozdevgroup.com/dropbox/jslib/jslib_current.xpi下载jslib并在存档管理器中打开它,然后解压缩chrome / jslib.jar并将其复制到chrome / content

当我启动我的应用程序时,我收到错误:

  

没有为chrome注册chrome包://jslib/io/fileUtils.js

[更新]

请注意,我没有使用xulrunner运行我的应用程序,而是使用firefox --app,因此根据this information.不确定将文件复制到何处

[更新]

非常沮丧:MZ示例使用jslib很多,但NOWHERE他们会解释如何让它在您的应用程序中运行。它是一个共享库,应该安装一次,而不是随应用程序一起提供,但是我已经在firefox中安装了jslib扩展,但运行带有firefox --app的xul应用程序却没有使用firefox中安装的扩展程序,所以我有以某种方式用我的应用程序提供库。我喜欢创建xul应用程序的想法,但只要它没有记录在全部,那么用它做任何事都很难。

即使在提取jslib并将其放入我的内容目录后,它也无法正常工作。包含fileUtils和

<script type="application/javascript" 
  src="chrome://myapp/content/jslib/io/fileUtils.js">
</script>

在我的xul文件中给出了一大堆关于fileUtils.js的警告,但仍未定义typeof jslib

1 个答案:

答案 0 :(得分:0)

如果我第一次使用firefox --app运行我的应用程序,则会创建新的配置文件。我得到了这个配置文件的位置:

var file = Components.classes["@mozilla.org/file/directory_service;1"].
           getService(Components.interfaces.nsIProperties).
           get("ProfD", Components.interfaces.nsIFile);

alert(file.path);

然后我去了我的firefox个人资料/home/me/.mozilla/firefox/82xw54jj.default/并复制了我的应用程序的个人资料目录中的extensions目录。现在我可以像这样使用jslib:

Components.utils.import("resource://gre/modules/FileUtils.jsm");
file = new FileUtils.File("/home");
alert(file);