javascript - JS兼容IE怎么实现下载图片在本地

查看:420
本文介绍了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,下载图片?

解决方案

查了下百度,找到一种解决方法,做了点修改,测试了下对IE,360,及谷歌可以运行下载,其他浏览器暂没试,暂时做如下处理

代码如下:

    $("#tab1").bindChildEvent("#download",function(){
             var imgPathURL=$("#div_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);
    };

这篇关于javascript - JS兼容IE怎么实现下载图片在本地的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆