Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/414.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 除IE之外的其他浏览器的ActiveX对象的替代方案?_Javascript_Jquery_Csv - Fatal编程技术网

Javascript 除IE之外的其他浏览器的ActiveX对象的替代方案?

Javascript 除IE之外的其他浏览器的ActiveX对象的替代方案?,javascript,jquery,csv,Javascript,Jquery,Csv,有人能帮我吗?因为我一直在本地磁盘上创建一个扩展名为.csv的文件(临时文件),我尝试使用ActiveX对象,但它只能在internet explorer中正常工作,在尝试使用其他浏览器时出错。通过谷歌搜索,我知道ActiveX只在IE中工作,所以在不同的浏览器中尝试时会产生错误 var fso, f1; fso = new ActiveXObject("Scripting.FileSystemObject"); f1 = fso.GetFile("c:\\test.tx

有人能帮我吗?因为我一直在本地磁盘上创建一个扩展名为.csv的文件(临时文件),我尝试使用ActiveX对象,但它只能在internet explorer中正常工作,在尝试使用其他浏览器时出错。通过谷歌搜索,我知道ActiveX只在IE中工作,所以在不同的浏览器中尝试时会产生错误

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

有人能给我推荐一个非常有用的替代方案吗。

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


简而言之,JScript不仅可以用于浏览器任务,因此MS提供了ActiveX对象来启用某种形式的I/O。在IE以外的浏览器上,您唯一能做的就是使用HTML5的新DOM存储对象。Teemu提供了一个指向该文档的链接

其他帖子涵盖了有关使用HTML5存储到本地计算机的所有信息,因此我不会详细介绍,但这只适用于兼容HTML5的浏览器(尽管现在大多数浏览器都兼容HTML5,但我不知道您的项目要求)

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

编辑:


我要做的是更改您的web服务,以便它将文件保存到光盘(更多信息:)。然后,返回Url下载文件,而不是从web服务返回文件。然后可以使用JS将用户重定向到该链接。

其他浏览器中没有相应的功能。您能找到的最近的可能是。感谢您的回复,我想将通过ajax从web服务获得的数据存储在本地磁盘上使用javascript创建的文件中。我可以问一下为什么,因为可能有更好的选择吗?如果您正在调用web服务,我假设您可以访问某些服务器端代码/脚本,在这些代码/脚本中,此任务可能更适合,并且能够真正实现跨浏览器兼容。我希望以.csv扩展名存储此文件,这有助于使用记事本打开此文件,excel等。你能告诉我是否有更好的选择吗?我已经添加了一个答案,并提供了更多信息。如果你还需要什么,就发表一篇评论来反对这个答案(避免在这里夸大它)。回答得好。我只想说,在非ActiveX浏览器中不可能做到这一点。HTML5可以做一些事情,但也不是所有浏览器都支持。OP应该找到另一种方式来实现他/她想要的。在HTML5之前,人们在其他浏览器上做了什么?@Pierre:你是认真的吗?HTML5并没有那么古老。。。无论如何:人们使用会话、cookie和隐藏字段(作为最后手段)谢谢,你能提供一些链接吗,我使用的是vb.net。