根据这个网站上的其他答案,我已经感觉到我知道这个问题的答案,但由于它略有不同,我想问一下。
是否可以从计算机本地运行的JavaScript访问本地文件(也就是,我的网站地址将是file:///C:/...)?或者,这也是沙箱吗?
我想要做的是:我有一台独立的计算机,我希望人们能够将JSON或XML文件放到一个本地文件夹中,这些文件在网站创建时被读取,并用于生成单个网页。如果JavaScript解决方案不可行,您能提供任何其他建议吗?
谢谢。
发布于 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。
发布于 2009-12-15 07:13:21
根据the Firefox documentation的说法,以下代码可以工作:
var req = new XMLHttpRequest();
req.open('GET', 'file:///home/user/file.json', false);
req.send(null);
if(req.status == 0)
dump(req.responseText);我似乎记得它只在与HTML页面相同的目录中工作。我不知道这是否适用于其他浏览器。
发布于 2009-12-15 06:57:28
这只适用于IE,但如果这对你来说不是问题,下面是一些写入文件的示例代码:
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();然后读一读:
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
https://stackoverflow.com/questions/1903959
复制相似问题