0

我不知道如何在 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://jslib/io/fileUtils.js 注册 chrome 包

[更新]

请注意,我没有使用 xulrunner 运行我的应用程序,而是使用 firefox --app 运行我的应用程序,因此不确定根据此信息将文件复制到哪里。

[更新]

非常沮丧:MZ 示例大量使用 jslib,但他们没有解释如何让它在您的应用程序中工作。它是一个共享库,应该安装一次,而不是随您的应用程序一起交付,但我已经在 firefox 中安装了 jslib 扩展,但运行 xul 应用程序时firefox --app不使用安装在 firefox 中的扩展,因此我必须使用我的应用程序交付库不知何故。我喜欢创建 xul 应用程序的想法,但只要它根本没有记录,那么用它做任何事情都非常困难。

即使在提取 jslib 并将其放入我的内容目录之后,它也不起作用。包括 fileUtils

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

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

4

1 回答 1

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/ 并将扩展目录复制到我的应用程序的配置文件目录中。现在我可以像这样使用 jslib:

Components.utils.import("resource://gre/modules/FileUtils.jsm");
file = new FileUtils.File("/home");
alert(file);
于 2013-06-17T06:54:13.120 回答