任何人都可以帮助我,因为我在本地磁盘中创建了一个带扩展名的文件(临时)(比如.csv),我尝试使用ActiveX对象但它只在Internet Explorer中工作正常,当我尝试时出错了与其他浏览器。通过谷歌搜索我知道ActiveX只能在IE中工作,因此当它在不同的浏览器中尝试时会产生错误。
var fso, f1;
fso = new ActiveXObject("Scripting.FileSystemObject");
f1 = fso.GetFile("c:\\test.txt");
alert(f1);
任何人都可以建议我使用非常有用的替代方案。
答案 0 :(得分:3)
您遇到的问题是ECMAScript(JavaScript)的浏览器实现不允许您写入客户端的磁盘。 Microsoft反向设计JavaScript,并将其命名为 JScript 。虽然基础是相同的,但MS添加了那些ActiveX对象和编译器(JScript可以编译,是的)。
简而言之,JScript不仅可以用于浏览器任务,因此MS提供了ActiveX对象来启用某种形式的I / O.您可以在IE浏览器其他上做的唯一事情就是使用HTML5的新DOM存储对象。 Teemu提供了该文档的链接
答案 1 :(得分:2)
其他帖子涵盖了有关使用Html 5存储到本地计算机的所有信息,因此我不会详细介绍这一点,但这只适用于兼容Html 5的浏览器(尽管大多数浏览器都是Html 5)现在兼容,我不知道你的项目要求。)
另一种方法是使用服务器端代码(ASP.NET,PHP等)创建/保存文件,然后提供指向用户的链接,以便他们可以下载文件。您仍然可以将其另存为.csv文件,以便用户在下载后可以在Excel中打开它。
编辑:
我要做的是更改您的网络服务,以便将文件保存到光盘(更多信息:here)。然后,不是从Web服务返回文件,而是返回Url以进行下载。然后,您可以使用JS将用户重定向到该链接。
答案 2 :(得分:0)
目前没有标准的方法从本地硬盘驱动器读取和写入文件,您可能需要查看此链接: