搜索

首页  >  问答  >  正文

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,下载图片?

伊谢尔伦伊谢尔伦2777 天前792

全部回复(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
  • 取消回复