【问题标题】:xul standalone using jslibxul 独立使用 jslib
【发布时间】:2013-06-17 14:54:13
【问题描述】:

我不知道如何在 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 运行我的应用程序,因此不确定根据this information.复制文件的位置

[更新]

非常沮丧:MZ 示例大量使用 jslib,但它们没有解释如何让它在您的应用程序中工作。它是一个共享库,应该安装一次,而不是随您的应用程序一起交付,但我已经在 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 仍然是未定义的。

【问题讨论】:

    标签: xul xulrunner


    【解决方案1】:

    如果我第一次使用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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多