2013-02-26 248 views
3

谁能帮助我,我陷在创建文件(临时)与扩展(说的.csv)在本地磁盘上,我尝试使用ActiveX对象,但只在Internet Explorer中正常工作,得到了一个错误,当我试图用其它浏览器。通过google搜索,我知道ActiveX只在IE中工作,所以当它在不同的浏览器中尝试时会产生错误。除IE以外的其他浏览器的ActiveX对象的替代方案?

var fso, f1; 
    fso = new ActiveXObject("Scripting.FileSystemObject"); 
    f1 = fso.GetFile("c:\\test.txt"); 
    alert(f1); 

任何人都可以提出替代方案,可以是非常有用的。

+1

其他浏览器没有对应的功能。您可以找到最近的可能是[HTML5 localStorage](https://developer.mozilla.org/en-US/docs/DOM/Storage#localStorage)。 – Teemu 2013-02-26 10:47:51

+0

感谢您的回复,我想通过使用javascript在本地磁盘中创建的文件中通过ajax存储来自Web服务的数据。 – pavan 2013-02-26 10:52:40

+1

我可以问为什么可能有更好的选择?如果您正在调用Web服务,那么我认为您可以访问某些服务器端代码/脚本,以便在此任务更适合的情况下实现跨浏览器兼容性。 – webnoob 2013-02-26 10:54:08

回答

2

其他文章涵盖了有关使用Html 5存储到本地计算机的所有信息,所以我不会详细介绍这些内容,但这仅仅适用于Html 5个兼容的浏览器(尽管大多数浏览器现在兼容Html 5,但我不知道你的项目需求)。

另一种方法是创建/使用服务器端代码(ASP.NET,PHP等)保存文件,然后提供一个链接,这样用户就可以下载该文件。您仍然可以将其保存为.csv文件,以便用户在下载后可以在Excel中打开它。

编辑:

我会做的是改变你的web服务,这样才将文件保存到光盘(详细信息:here)。然后,而不是从Web服务返回文件,而是返回Url下载它。然后,您可以将用户重定向到使用JS的链接。

+0

谢谢,你能提供一些链接,我使用vb.net。 – pavan 2013-02-26 11:18:48

+0

请参阅我的编辑。 – webnoob 2013-02-26 11:56:53

0

目前的读数没有标准的方式,并从和到本地硬盘驱动器写入文件,你可能想看看这个链接:

http://html5please.com/#file

3

你的问题是该浏览器的实现ECMAScript(JavaScript)不允许您写入客户端磁盘。微软反向工程JavaScript,并将其命名为JScript。尽管基础是相同的,MS添加了这些ActiveX对象,并且编译器(JScript可以被编译,是的)。

总之,JScript中可以使用的不仅仅是浏览器的任务多,所以MS提供ActiveX对象,以使某些形式的I/O。您只能在IE浏览器其他上使用HTML5的新DOM Storage对象。 Teemu提供了一个指向文档的链接

+1

很好的答案。我只是说在非ActiveX浏览器中不可能做到这一点。 HTML5可以做一些事情,但所有浏览器都不支持。 OP应该找到另一种方式来实现他/她想要的。 – OptimusCrime 2013-02-26 11:17:24

+0

然后人们在HTML5和其他浏览器之前做了什么? – Pierre 2014-04-13 20:46:25

+0

@Pierre:你认真吗? HTML5不是那么古老...无论如何:人们使用会话,cookie和隐藏字段(作为最后的手段) – 2014-04-14 06:56:40

相关问题