
js代码
var imageUrl = e.data.img;if (browserIsIe()) { //调用创建iframe的函数 createIframe(imageUrl);} else { //创建原生a标签实现动态Img地址及下载触发 var tempa = document.createElement('a'); tempa.href = imageUrl; tempa.download = 'download'; document.body.append(tempa); tempa.click(); tempa.remove();}
其中的两个方法
1、判断是否为Trident内核浏览器(IE等)函数
function browserIsIe() { if (!!window.ActiveXObject || "ActiveXObject" in window) { return true; } else { return false; }}
2.创建iframe并赋值的函数,传入参数为图片的src属性值.
function createIframe(imgSrc) { //如果隐藏的iframe不存在则创建 if ($("#IframeReportImg").length === 0) { $('').appendTo("body"); } //iframe的src属性如不指向图片地址,则手动修改,加载图片 if ($('#IframeReportImg').attr("src") != imgSrc) { $('#IframeReportImg').attr("src", imgSrc); } else { //如指向图片地址,直接调用下载方法 downloadImg(); }}
3.下载图片的函数
function downloadImg() { //iframe的src属性不为空,调用execCommand(),保存图片 if ($('#IframeReportImg').src != "about:blank") { window.frames["IframeReportImg"].document.execCommand("SaveAs"); }}