如何使用javascript生成txt格式文件保存到本地,要求跨浏览器支持,怎么做呢?
2个回答
展开全部
最近看到好几个人问这问题了,其实要实现并不难,而且还是跨浏览器的,但并不完美。
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>
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询