首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >xul:在xul浏览器中打开一个相对于"myapp.xul“的本地html文件

xul:在xul浏览器中打开一个相对于"myapp.xul“的本地html文件
EN

Stack Overflow用户
提问于 2008-09-19 18:20:53
回答 3查看 3.5K关注 0票数 3

简而言之:有没有办法找到xul应用程序的当前目录完整路径?

长篇大论:

我想在xul浏览器应用程序中打开一些html文件。到html文件的路径应该从xul应用程序中以编程方式设置。html文件驻留在我的xul应用程序的文件夹之外,但级别相同。(用户将从SVN签出两个文件夹,xul应用程序无法安装)

如果我设置了像"file:///c:\temp\processing-sample\index.html“这样的完整路径,文件就会很好地打开。

我想要做的是打开相对于我的xul应用程序的文件。

我发现我可以打开用户的配置文件路径:

代码语言:javascript
复制
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应用程序当前目录完整路径的方法吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2008-09-19 19:48:13

我找到了一个解决办法:I%2F%2FO --我不能使用相对路径“./../index.html”精确地打开一个文件,但是我可以获得app目录并使用它。

代码语言:javascript
复制
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;
票数 2
EN

Stack Overflow用户

发布于 2009-02-25 03:57:21

是的,您的扩展名中的html文件可以使用chrome URI来处理。下面是我的一个扩展:

代码语言:javascript
复制
content.document.location.href = "chrome://{appname}/content/logManager/index.html"
票数 2
EN

Stack Overflow用户

发布于 2008-09-20 05:14:29

在xul应用程序中,可以使用chrome访问应用程序的chrome文件夹。

我对这个元素的经验相对较少,所以我不确定这是否适用于您。这是在xul文件中包含javascript源文件的方式:

代码语言:javascript
复制
<script src="chrome://includes/content/XSLTemplate.js" type="application/x-javascript"/>

因此,如果文件驻留在c:\applicationFolder\chrome\content\index.html,您可以在以下位置访问它:

代码语言:javascript
复制
chrome://content/index.html 

在某种程度上。

您可能还会看到jslib,一个简化了许多事情的库,包括文件I/o.IIRC,但是我在使用'../‘找到相对路径时遇到了困难。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/104267

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档