61,112
社区成员
发帖
与我相关
我的任务
分享
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>图片下载测试</title>
</head>
<body>
<!--本地图片,IE下载没问题-->
<img class="qr_img" src="../images/Dgml-logo.gif" download="" />
<!--跨域图片,IE下载有问题-->
<img class="qr_img" src="https://ss0.bdstatic.com/5aV1bjqh_Q23odCf/static/superman/img/logo/logo_white_fe6da1ec.png" download="" />
</body>
</html>
<script src="../Script/jquery-1.7.2.min.js"></script>
<script>
var timer = null;
$(".qr_img").bind('click', function () {
var imgPathURL = this.src;
if (imgPathURL) {
oDownLoad(imgPathURL);
} else {
alert("图片为空");
}
});
//判断浏览器类型
function myBrowser() {
var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串
var isOpera = userAgent.indexOf("Opera") > -1;
if (isOpera) {
return "Opera"
}; //判断是否Opera浏览器
if (userAgent.indexOf("Firefox") > -1) {
return "FF";
} //判断是否Firefox浏览器
if (userAgent.indexOf("Chrome") > -1) {
return "Chrome";
}
if (userAgent.indexOf("Safari") > -1) {
return "Safari";
} //判断是否Safari浏览器
if (userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1 && !isOpera) {
return "IE";
}; //判断是否IE浏览器
if (userAgent.indexOf("Trident") > -1) {
return "Edge";
} //判断是否Edge浏览器
}
//IE浏览器图片保存本地
function SaveAs5(imgURL) {
//如果隐藏IFRAME不存在,则添加
if (!document.getElementById("IframeReportImg"))
$('<iframe style="display:none;" id="IframeReportImg" name="IframeReportImg" width="200" height="200" src="about:blank"></iframe>').appendTo("body");
var iframe = document.getElementById("IframeReportImg");
iframe.src = imgURL;
timer = setInterval(DoSaveAsIMG, 100);
}
function DoSaveAsIMG() {
var iframe = document.getElementById("IframeReportImg");
//如果跨域此处会出错
try{
if (iframe.contentDocument.readyState == 'complete') {
clearInterval(timer);
iframe.contentWindow.document.execCommand('SaveAs');
}
} catch (ex) {
clearInterval(timer);
alert('使用IE浏览器下载发生错误,信息如下:\n\n' + ex.message + '\n\n可使用谷歌浏览器或火狐浏览器下载' );
}
}
function oDownLoad(url) {
var browser = myBrowser();
if (browser === "IE" || browser === "Edge") {
SaveAs5(url);
} else {
download(url);
}
}
//谷歌,360极速等浏览器下载
function download(src) {
var $a = document.createElement('a');
$a.setAttribute("href", src);
$a.setAttribute("download", "");
var evObj = document.createEvent('MouseEvents');
evObj.initMouseEvent('click', true, true, window, 0, 0, 0, 0, 0, false, false, true, false, 0, null);
$a.dispatchEvent(evObj);
};
</script>