简而言之:有没有办法找到xul应用程序的当前目录完整路径?
长篇大论:
我想在xul浏览器应用程序中打开一些html文件。到html文件的路径应该从xul应用程序中以编程方式设置。html文件驻留在我的xul应用程序的文件夹之外,但级别相同。(用户将从SVN签出两个文件夹,xul应用程序无法安装)
如果我设置了像"file:///c:\temp\processing-sample\index.html“这样的完整路径,文件就会很好地打开。
我想要做的是打开相对于我的xul应用程序的文件。
我发现我可以打开用户的配置文件路径:
var DIR_SERVICE = new Components.Constructor("@mozilla.org/file/directory_service;1", "nsIProperties");
var path = (new DIR_SERVICE()).get("UChrm", Components.interfaces.nsIFile).path;
var appletPath;
// find directory separator type
if (path.search(/\\/) != -1)
{
appletPath = path + "\\myApp\\content\\applet.html"
}
else
{
appletPath = path + "/myApp/content/applet.html"
}
// Cargar el applet en el iframe
var appletFile = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
appletFile.initWithPath(appletPath);
var appletURL = Components.classes["@mozilla.org/network/protocol;1?name=file"].createInstance(Components.interfaces.nsIFileProtocolHandler).getURLSpecFromFile(appletFile);
var appletFrame = document.getElementById("appletFrame");
appletFrame.setAttribute("src", appletURL); 有找到xul应用程序当前目录完整路径的方法吗?
发布于 2008-09-19 19:48:13
我找到了一个解决办法:I%2F%2FO --我不能使用相对路径“./../index.html”精确地打开一个文件,但是我可以获得app目录并使用它。
var DIR_SERVICE = new Components.Constructor("@mozilla.org/file/directory_service;1", "nsIProperties");
var path = (new DIR_SERVICE()).get(resource:app, Components.interfaces.nsIFile).path;
var appletPath;发布于 2009-02-25 03:57:21
是的,您的扩展名中的html文件可以使用chrome URI来处理。下面是我的一个扩展:
content.document.location.href = "chrome://{appname}/content/logManager/index.html"发布于 2008-09-20 05:14:29
在xul应用程序中,可以使用chrome访问应用程序的chrome文件夹。
我对这个元素的经验相对较少,所以我不确定这是否适用于您。这是在xul文件中包含javascript源文件的方式:
<script src="chrome://includes/content/XSLTemplate.js" type="application/x-javascript"/>因此,如果文件驻留在c:\applicationFolder\chrome\content\index.html,您可以在以下位置访问它:
chrome://content/index.html 在某种程度上。
您可能还会看到jslib,一个简化了许多事情的库,包括文件I/o.IIRC,但是我在使用'../‘找到相对路径时遇到了困难。
https://stackoverflow.com/questions/104267
复制相似问题