問題描述:谷歌下載功能正常,可是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"); })