首頁  >  問答  >  主體

javascript - JS相容IE怎麼實現下載圖片在本地

之前看過一個帖子,可以實現下載,但是在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,下載圖片?

伊谢尔伦伊谢尔伦2711 天前739

全部回覆(2)我來回復

  • PHP中文网

    PHP中文网2017-05-19 10:29:13

    IE上你可以使用window.open(src, name, '', true)做下載。

    回覆
    0
  • 大家讲道理

    大家讲道理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);
        };

    回覆
    0
  • 取消回覆