8 lines
3.1 KiB
JavaScript
8 lines
3.1 KiB
JavaScript
var saveAs=saveAs||function(c){if("undefined"===typeof navigator||!/MSIE [1-9]\./.test(navigator.userAgent)){var n=function(){return c.URL||c.webkitURL||c},m=c.document.createElementNS("http://www.w3.org/1999/xhtml","a"),z="download"in m,u=/Version\/[\d\.]+.*Safari/.test(navigator.userAgent),p=c.webkitRequestFileSystem,v=c.requestFileSystem||p||c.mozRequestFileSystem,A=function(a){(c.setImmediate||c.setTimeout)(function(){throw a;},0)},q=0,r=function(a){var e=function(){"string"===typeof a?n().revokeObjectURL(a):
|
|
a.remove()};c.chrome?e():setTimeout(e,500)},s=function(a,e,c){e=[].concat(e);for(var d=e.length;d--;){var b=a["on"+e[d]];if("function"===typeof b)try{b.call(a,c||a)}catch(f){A(f)}}},w=function(a){return/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(a.type)?new Blob(["\ufeff",a],{type:a.type}):a},l=function(a,e,b){b||(a=w(a));var d=this;b=a.type;var l=!1,f,h,t=function(){s(d,["writestart","progress","write","writeend"])},g=function(){if(h&&u&&"undefined"!==typeof FileReader){var b=
|
|
new FileReader;b.onloadend=function(){var a=b.result;h.location.href="data:attachment/file"+a.slice(a.search(/[,;]/));d.readyState=d.DONE;t()};b.readAsDataURL(a);d.readyState=d.INIT}else{if(l||!f)f=n().createObjectURL(a);h?h.location.href=f:void 0==c.open(f,"_blank")&&u&&(c.location.href=f);d.readyState=d.DONE;t();r(f)}},k=function(a){return function(){if(d.readyState!==d.DONE)return a.apply(this,arguments)}},x={create:!0,exclusive:!1},y;d.readyState=d.INIT;e||(e="download");if(z)f=n().createObjectURL(a),
|
|
setTimeout(function(){m.href=f;m.download=e;var a=new MouseEvent("click");m.dispatchEvent(a);t();r(f);d.readyState=d.DONE});else{c.chrome&&b&&"application/octet-stream"!==b&&(y=a.slice||a.webkitSlice,a=y.call(a,0,a.size,"application/octet-stream"),l=!0);p&&"download"!==e&&(e+=".download");if("application/octet-stream"===b||p)h=c;v?(q+=a.size,v(c.TEMPORARY,q,k(function(b){b.root.getDirectory("saved",x,k(function(b){var c=function(){b.getFile(e,x,k(function(b){b.createWriter(k(function(c){c.onwriteend=
|
|
function(a){h.location.href=b.toURL();d.readyState=d.DONE;s(d,"writeend",a);r(b)};c.onerror=function(){var a=c.error;a.code!==a.ABORT_ERR&&g()};["writestart","progress","write","abort"].forEach(function(a){c["on"+a]=d["on"+a]});c.write(a);d.abort=function(){c.abort();d.readyState=d.DONE};d.readyState=d.WRITING}),g)}),g)};b.getFile(e,{create:!1},k(function(a){a.remove();c()}),k(function(a){a.code===a.NOT_FOUND_ERR?c():g()}))}),g)}),g)):g()}},b=l.prototype;if("undefined"!==typeof navigator&&navigator.msSaveOrOpenBlob)return function(a,
|
|
b,c){c||(a=w(a));return navigator.msSaveOrOpenBlob(a,b||"download")};b.abort=function(){this.readyState=this.DONE;s(this,"abort")};b.readyState=b.INIT=0;b.WRITING=1;b.DONE=2;b.error=b.onwritestart=b.onprogress=b.onwrite=b.onabort=b.onerror=b.onwriteend=null;return function(a,b,c){return new l(a,b,c)}}}("undefined"!==typeof self&&self||"undefined"!==typeof window&&window||this.content);
|
|
"undefined"!==typeof module&&module.exports?module.exports.saveAs=saveAs:"undefined"!==typeof define&&null!==define&&null!=define.amd&&define([],function(){return saveAs});
|