栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何将JavaScript字符串下载为文件

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何将JavaScript字符串下载为文件

简短的答案:您不能并且仍然独立于平台。大多数浏览器只是不允许javascript操纵文件系统。

也就是说,您也许可以摆脱一些非常特定于平台的黑客攻击。例如,IE提供了execCommand函数,您可以使用该函数调用SaveAs。如果您在具有要保存的数据的Iframe内执行此操作,则可能会使其正常工作-
但仅适用于IE。其他选项(同样,我将在这里使用Microsoft特定的选项)包括此Silverlight
hack
或ActiveX控件。

我认为,要获得完全的平台兼容性,您将不得不吸收它并提供服务器端下载选项。

[编辑]糟糕!去链接搜索时,我没有进行足够的尽职调查。事实证明,我链接到的Silverlight hack具有服务器端组件。看起来你很漂亮。

[Edit2]我在这里找到了execCommand的浏览器兼容性的不错摘要。尽管它为“
saveas”命令列出了问号,但毕竟这可能是一条不错的选择。值得一试吗?

[Edit3]好吧,我决定对我建议的方法进行概念验证,并且在IE中有了一些相当简单的东西。不幸的是,我在此过程中证明了这种方法不适用于Firefox,而且似乎也不适用于Chrome /
Safari。因此,这完全取决于平台。但这有效!这是完整的工作页面:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" ><head>    <title>Javascript File Saver</title>    <script type="text/javascript">      function PageLoad() {        var fdoc = window.frames["frame"].document;        fdoc.body.appendChild(fdoc.createTextNode("foo,bar,baz"));      }      function Save() {        var fdoc = window.frames["frame"].document;        fdoc.execCommand("SaveAs", true);      }    </script></head><body onload="PageLoad();"><h2>Javascript File Saver</h2><iframe id="frame" >Noframe</iframe><br /><button onclick="Save();">Save</button></body></html>


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/406830.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号