| /*! | |
| JSZipUtils - A collection of cross-browser utilities to go along with JSZip. | |
| <http://stuk.github.io/jszip-utils> | |
| (c) 2014 Stuart Knightley, David Duponchel | |
| Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip-utils/master/LICENSE.markdown. | |
| */ | |
| !function(e){"object"==typeof exports?module.exports=e():"function"==typeof define&&define.amd?define(e):"undefined"!=typeof window?window.JSZipUtils=e():"undefined"!=typeof global?global.JSZipUtils=e():"undefined"!=typeof self&&(self.JSZipUtils=e())}(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){ | |
| 'use strict'; | |
| var JSZipUtils = {}; | |
| // just use the responseText with xhr1, response with xhr2. | |
| // The transformation doesn't throw away high-order byte (with responseText) | |
| // because JSZip handles that case. If not used with JSZip, you may need to | |
| // do it, see https://developer.mozilla.org/En/Using_XMLHttpRequest#Handling_binary_data | |
| JSZipUtils._getBinaryFromXHR = function (xhr) { | |
| // for xhr.responseText, the 0xFF mask is applied by JSZip | |
| return xhr.response || xhr.responseText; | |
| }; | |
| // taken from jQuery | |
| function createStandardXHR() { | |
| try { | |
| return new window.XMLHttpRequest(); | |
| } catch( e ) {} | |
| } | |
| function createActiveXHR() { | |
| try { | |
| return new window.ActiveXObject("Microsoft.XMLHTTP"); | |
| } catch( e ) {} | |
| } | |
| // Create the request object | |
| var createXHR = window.ActiveXObject ? | |
| /* Microsoft failed to properly | |
| * implement the XMLHttpRequest in IE7 (can't request local files), | |
| * so we use the ActiveXObject when it is available | |
| * Additionally XMLHttpRequest can be disabled in IE7/IE8 so | |
| * we need a fallback. | |
| */ | |
| function() { | |
| return createStandardXHR() || createActiveXHR(); | |
| } : | |
| // For all other browsers, use the standard XMLHttpRequest object | |
| createStandardXHR; | |
| JSZipUtils.getBinaryContent = function(path, callback) { | |
| /* | |
| * Here is the tricky part : getting the data. | |
| * In firefox/chrome/opera/... setting the mimeType to 'text/plain; charset=x-user-defined' | |
| * is enough, the result is in the standard xhr.responseText. | |
| * cf https://developer.mozilla.org/En/XMLHttpRequest/Using_XMLHttpRequest#Receiving_binary_data_in_older_browsers | |
| * In IE <= 9, we must use (the IE only) attribute responseBody | |
| * (for binary data, its content is different from responseText). | |
| * In IE 10, the 'charset=x-user-defined' trick doesn't work, only the | |
| * responseType will work : | |
| * http://msdn.microsoft.com/en-us/library/ie/hh673569%28v=vs.85%29.aspx#Binary_Object_upload_and_download | |
| * | |
| * I'd like to use jQuery to avoid this XHR madness, but it doesn't support | |
| * the responseType attribute : http://bugs.jquery.com/ticket/11461 | |
| */ | |
| try { | |
| var xhr = createXHR(); | |
| xhr.open('GET', path, true); | |
| // recent browsers | |
| if ("responseType" in xhr) { | |
| xhr.responseType = "arraybuffer"; | |
| } | |
| // older browser | |
| if(xhr.overrideMimeType) { | |
| xhr.overrideMimeType("text/plain; charset=x-user-defined"); | |
| } | |
| xhr.onreadystatechange = function(evt) { | |
| var file, err; | |
| // use `xhr` and not `this`... thanks IE | |
| if (xhr.readyState === 4) { | |
| if (xhr.status === 200 || xhr.status === 0) { | |
| file = null; | |
| err = null; | |
| try { | |
| file = JSZipUtils._getBinaryFromXHR(xhr); | |
| } catch(e) { | |
| err = new Error(e); | |
| } | |
| callback(err, file); | |
| } else { | |
| callback(new Error("Ajax error for " + path + " : " + this.status + " " + this.statusText), null); | |
| } | |
| } | |
| }; | |
| xhr.send(); | |
| } catch (e) { | |
| callback(new Error(e), null); | |
| } | |
| }; | |
| // export | |
| module.exports = JSZipUtils; | |
| // enforcing Stuk's coding style | |
| // vim: set shiftwidth=4 softtabstop=4: | |
| },{}]},{},[1]) | |
| (1) | |
| }); | |
| ; |