1.1利用a链接的download属性(类型固定)
<a href="a.js" download="1">下载a.js</a>
<!--若download属性有值 下载的文件名自动为download属性值-->
<!--若download属性无值 下载的文件名自动为href属性值-->
1.2利用DataURI(限制了文件下载类型)
<a href="data:image/png;base64,aHR0cDovL2Nkbi5qaWd1by5jb20vemRtL3YxLjAuMy9pbWFnZXMvbG9nby5wbmc=" download>下载.png</a>
<a href="data:image/png;base64,aHR0cDovL2Nkbi5qaWd1by5jb20vemRtL3YxLjAuMy9pbWFnZXMvbG9nby5wbmc=" download="哈哈">哈哈.png</a>
<a href="http://cdn.jiguo.com/zdm/v1.0.3/images/logo.png" download="哈哈">logo.png</a>
1.3利用URL.creatObjectURL(不生效?)
思路:1.创建a,标签 2;利用blob大对象,生成DataURI 3.设置a的href为生成的DataURI 4.自动触发a的点击事件
<div style="color: red;" onclick="down('c.txt','content')" >
下载
</div>
<script>
function down(fileName,content) {
var a=document.createElementNS('www.jiguo.com','a');//命名空间
var blob=new Blob([content]);
// var event=document.createEvent('HTMLEvents');//HTMLevents,MouseEvents,UIEvents
// event.initEvent('click',false,false);
// eventType 字符串值。事件的类型。canBubble 事件是否起泡。cancelable 是否可以用 preventDefault() 方法取消事件。
var event=document.createEvent('MouseEvents');
event.initMouseEvent('click',true,false,window,0,0,0,0,0,false,false,false,false,0,null);
// typeArg - 指定事件类型。canBubbleArg - 指定该事件是否可以 bubble。cancelableArg - 指定是否可以阻止事件的默认操作。viewArg - 指定 Event 的 AbstractView。detailArg - 指定 Event 的鼠标单击量。screenXArg - 指定 Event 的屏幕 x 坐标screenYArg - 指定 Event 的屏幕 y 坐标clientXArg - 指定 Event 的客户机 x 坐标clientYArg - 指定 Event 的客户机 y 坐标ctrlKeyArg - 指定是否在 Event 期间按下 control 键。altKeyArg - 指定是否在 Event 期间按下 alt 键。shiftKeyArg - 指定是否在 Event 期间按下 shift 键。metaKeyArg - 指定是否在 Event 期间按下 meta 键。buttonArg - 指定 Event 的鼠标按键。relatedTargetArg - 指定 Event 的相关 EventTarget。
a.download=fileName;
a.href=URL.createObjectURL(blob);//DataURI格式的字符串
a.dispatchEvent(event);
}
</script>