如何使用javascript生成txt格式文件保存到本地,要求跨浏览器支持,怎么做呢?

 我来答
马后雷鼓下扬州5058
2013-04-20 · TA获得超过4321个赞
知道小有建树答主
回答量:693
采纳率:33%
帮助的人:792万
展开全部

最近看到好几个人问这问题了,其实要实现并不难,而且还是跨浏览器的,但并不完美。


IE 是通过 ActiveXObject,前提是浏览者的安全设置中允许此项且同意使用。


Firefox/Chrome/Safari/Opera 是通过 a 元素的 href 属性,加上 base64 数据来实现(data URI)。


下面的代码在 IE 6-9,Firefox 19,Chrome 26,Safari 5.0.5,Opera 12.15 测试通过。


【注意】base64 函数和完整代码在空间:hi.baidu.com/keneks/item/a8b10b04fd862f016c904813


<script type="text/javascript">
/* var Base64 = {}; */

window.onload = function() {
var save = document.getElementById("save");
// IE
if(/msie/i.test(navigator.userAgent)) {
save.onclick = function() {
var path = prompt("输入保存路径和文件名", "C:\\test.txt");
var content = document.getElementById("content").value;
content = content.replace(/\n/g, "\r\n");
var fso = new ActiveXObject("Scripting.FileSystemObject");
var s = fso.CreateTextFile(path, true);
s.WriteLine(content);
s.Close();
};
}
// Firefox/Chrome/Safari/Opera
else {
// 鼠标经过 a 的时候就开始 base64 编码
save.onmouseover = function() {
var content = document.getElementById("content").value;
this.setAttribute("href",
"data:application/octet-stream;base64,"
+ Base64.encode(content));
};
}
};
</script>
bobby_yjy
2013-04-20
知道答主
回答量:17
采纳率:0%
帮助的人:20.9万
展开全部
要在本地保存信息,用cookie才是正道。用javascript直接读写本地文件几乎是不可能的(否则就没人敢上网浏览网页了),更别说做到跨浏览器支持了。不过可以考虑在网站后台动态生成txt格式文件,提供给用户下载。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式