之前看過一個帖子,可以實現下載,但是在IE瀏覽器上面無法進行下載,但是別的瀏覽器可以
程式碼如下:
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);
};
請問有什麼辦法,實作相容IE,下載圖片?
大家讲道理2017-05-19 10:29:13
查了下百度,找到一種解決方法,做了點修改,測試了下對IE,360,及谷歌可以運行下載,其他瀏覽器暫沒試,暫時做如下處理
程式碼如下:
$("#tab1").bindChildEvent("#download",function(){
var imgPathURL=$("#p_edit_image_views #image").attr("src");
if(imgPathURL){
oDownLoad(imgPathURL);
}else{
$.jAlert("二维码图片为空");
}
});
//判断浏览器类型
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)
{
var oPop = window.open(imgURL,"","width=1, height=1, top=5000, left=5000");
for(; oPop.document.readyState != "complete"; )
{
if (oPop.document.readyState == "complete")break;
}
oPop.document.execCommand("SaveAs");
oPop.close();
}
function oDownLoad(url) {
if (myBrowser()==="IE"||myBrowser()==="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);
};