关于ie11和谷歌下载功能的兼容性处理

问题描述:谷歌下载功能正常,可是ie11下载功能失效。javascript

解决此问题用到的插件:jszip-utils-ie.js,jszip.js,jszip-utils.js
以前使用的是form表单进行下载处理,可是这个只使用与谷歌等部分浏览器的下载,不支持ie。html

var form = $("<form>"); //定义一个form表单
             form.attr("style", "display:none");
             form.attr("target", "");
             form.attr("method", "get"); //请求类型
             form.attr("action", url); //请求地址请输入代码
             var input1 = $("<input>");
             input1.attr("type", "hidden");
             input1.attr("name", "access_token");
             input1.attr("value", appconfig.token);
             form.append(input1);
             $("body").append(form); //将表单放置在web中
             form.submit();

解决方案java

html须要作兼容ie判断
    <script type="text/javascript" src="../lib/jszip.js"></script>
<script type="text/javascript" src="../lib/jszip-utils.js"></script>
<!--[if IE]>
<script type="text/javascript" src="js/jszip-utils-ie.js"></script>
<![endif]-->
使用JSZip进行兼容性处理:

// 1) get a promise of the content
            var promise = new JSZip.external.Promise(function (resolve, reject) {
                JSZipUtils.getBinaryContent(url, function (err, data) {
                    if (err) {
                        reject(err);
                    } else {
                        resolve(data);
                    }
                });
            });

            promise.then(JSZip.loadAsync)                     // 2) chain with the zip promise
                .then(function (zip) {
                    // return zip.file("Hello.txt").async("string"); // 3) chain with the text content promise
                    // var zip = new JSZip();
                    zip.generateAsync({type: "blob"})
                        .then(function (blob) {
                            saveAs(blob, mapid + ".zip");
                        });
                    // saveAs(zip,"bb.zip");
                })
相关文章
相关标签/搜索