我无法弄清楚如何在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
。
答案 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);