diff --git a/src/loaders/FileLoader.js b/src/loaders/FileLoader.js index 2fb06a8301e0acf22f6add3105915cc5dcf484ff..97cfa64e5d86590296bfa8f6966b4c4e6850462e 100644 --- a/src/loaders/FileLoader.js +++ b/src/loaders/FileLoader.js @@ -46,15 +46,13 @@ Object.assign( FileLoader.prototype, { // Safari can not handle Data URIs through XMLHttpRequest so process manually if ( dataUriRegexResult ) { - var mimeType = dataUriRegexResult[1]; - var isBase64 = !!dataUriRegexResult[2]; - var data = dataUriRegexResult[3]; + var mimeType = dataUriRegexResult[ 1 ]; + var isBase64 = !! dataUriRegexResult[ 2 ]; + var data = dataUriRegexResult[ 3 ]; - data = window.decodeURIComponent(data); + data = window.decodeURIComponent( data ); - if( isBase64 ) { - data = window.atob(data); - } + if ( isBase64 ) data = window.atob( data ); try { @@ -67,16 +65,18 @@ Object.assign( FileLoader.prototype, { case 'blob': response = new ArrayBuffer( data.length ); + var view = new Uint8Array( response ); + for ( var i = 0; i < data.length; i ++ ) { - view[ i ] = data.charCodeAt( i ); + view[ i ] = data.charCodeAt( i ); } if ( responseType === 'blob' ) { - response = new Blob( [ response ], { "type" : mimeType } ); + response = new Blob( [ response ], { type: mimeType } ); } @@ -104,24 +104,24 @@ Object.assign( FileLoader.prototype, { } // Wait for next browser tick - window.setTimeout( function() { + window.setTimeout( function () { if ( onLoad ) onLoad( response ); scope.manager.itemEnd( url ); - }, 0); + }, 0 ); } catch ( error ) { // Wait for next browser tick - window.setTimeout( function() { + window.setTimeout( function () { if ( onError ) onError( error ); scope.manager.itemError( url ); - }, 0); + }, 0 ); }