首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用本地Javascript访问本地文件

使用本地Javascript访问本地文件
EN

Stack Overflow用户
提问于 2009-12-15 06:28:41
回答 10查看 17.8K关注 0票数 11

根据这个网站上的其他答案,我已经感觉到我知道这个问题的答案,但由于它略有不同,我想问一下。

是否可以从计算机本地运行的JavaScript访问本地文件(也就是,我的网站地址将是file:///C:/...)?或者,这也是沙箱吗?

我想要做的是:我有一台独立的计算机,我希望人们能够将JSON或XML文件放到一个本地文件夹中,这些文件在网站创建时被读取,并用于生成单个网页。如果JavaScript解决方案不可行,您能提供任何其他建议吗?

谢谢。

EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2009-12-15 07:12:54

网页可以读取加载时所在服务器上的任何文件(这是JavaScript的跨站点策略)。这意味着页面file:///C:/mywebsite/index.html可以读取文件file://C:/somedir/somefile.xml.要读取此文件,请使用ajax,将其加载到iFrame中,或者将其作为javascript或css文件加载。

有几个浏览器支持自定义方法来加载本地文件(和其他有趣的东西),IE有activeX,Firefox有XPCOM。

票数 5
EN

Stack Overflow用户

发布于 2009-12-15 07:13:21

根据the Firefox documentation的说法,以下代码可以工作:

代码语言:javascript
复制
var req = new XMLHttpRequest();  
req.open('GET', 'file:///home/user/file.json', false);   
req.send(null);  
if(req.status == 0)  
  dump(req.responseText);

我似乎记得它只在与HTML页面相同的目录中工作。我不知道这是否适用于其他浏览器。

票数 5
EN

Stack Overflow用户

发布于 2009-12-15 06:57:28

这只适用于IE,但如果这对你来说不是问题,下面是一些写入文件的示例代码:

代码语言:javascript
复制
    var fso, s;
    fso = new ActiveXObject("Scripting.FileSystemObject");
    s = fso.OpenTextFile("c:\\path\\to\\myfile.txt" , 8, 1, -2);
    s.writeline("Hello World");
    s.Close();

然后读一读:

代码语言:javascript
复制
f = fso.OpenTextFile(filename, ForReading);
while (!f.AtEndOfStream) {
    var r = f.ReadLine();
    document.write (r + "<br />");
}
f.Close();

有关OpenTextFile的更多信息,请访问:http://msdn.microsoft.com/en-us/library/314cz14s(VS.85).aspx

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

https://stackoverflow.com/questions/1903959

复制
相关文章

相似问题

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