關於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");
                })
相關文章
相關標籤/搜索