HTML5页面实现文件下载:
非 IE 浏览器可以直接使用 HTML5中的 <a> 标签来实现下载,如下:
<a href="a/a.txt" download="b.txt">点击下载文件</a><!-- not IE -->
IE浏览器需要调用系统的 SaveAs 方法来实现,具体代码如下:
html:
<a href="javascript: void 0" onclick="savetxt('a/a.txt'); return false">点击下载文件</a>
<a href="javascript:svcode({value: '3546103sdf1685sdf'})" >点击下载文件</a>
<a href="javascript:saveCodeByIframe({value: '3546103sdf1685sdf'})" >点击下载文件</a>
js:
<script type="text/javascript" charset="utf-8">
//IE.保存的是HTML页面
function savetxt(fileURL){
var fileURL=window.open (fileURL,"_blank","height=0,width=0,toolbar=no,menubar=no,scrollbars=no,resizable=on,location=no,status=no");
fileURL.window.close();
fileURL.close();
fileURL.document.execCommand("SaveAs", false, "b.txt");
}
//IE,保存文本
function svcode(obj) {
var winname = window.open('', '_blank', 'height=1,width=1,top=200,left=300');
winname.document.open('text/html', 'replace');
winname.document.writeln(obj.value);
winname.close();
winname.document.execCommand('saveas',false,'b.txt');
}
//IE,保存文本
function saveCodeByIframe(obj) {
alert(navigator.appName);
//if (navigator.appName == "Microsoft Internet Explorer"){}
//获取IFrame的三种方式
//var myFrame = window.frames["myFrame"].document;
//var myFrame = document.getElementById("myFrame").contentWindow.document
var myFrame = document.getElementById("myFrame").Document
myFrame.open("text/html", "replace");
myFrame.write(obj.value);
myFrame.close();
myFrame.execCommand('SaveAs', true, 'b.txt');
}
</script>