From c9af7bb67bfefc3f37b4cdd4a066a29138f202b3 Mon Sep 17 00:00:00 2001 From: piernov Date: Thu, 13 Mar 2014 16:48:55 +0100 Subject: Importation du projet --- Processing-js/libs/js/Window/DOMLoader.XMLHttp.js | 130 ++++++++++++++++++++++ 1 file changed, 130 insertions(+) create mode 100644 Processing-js/libs/js/Window/DOMLoader.XMLHttp.js (limited to 'Processing-js/libs/js/Window/DOMLoader.XMLHttp.js') diff --git a/Processing-js/libs/js/Window/DOMLoader.XMLHttp.js b/Processing-js/libs/js/Window/DOMLoader.XMLHttp.js new file mode 100644 index 0000000..8384051 --- /dev/null +++ b/Processing-js/libs/js/Window/DOMLoader.XMLHttp.js @@ -0,0 +1,130 @@ +/* + + DOMLoader.XMLHttp + -------------------------- + DOMLoader.sendRequest({ + url: "./dir/something.extension", + data: "test!", + onerror: function(event) { + console.log(event); + }, + onload: function(response) { + console.log(response.responseText); + }, + onprogress: function (event) { + var percent = event.loaded / event.total * 100 >> 0; + loader.message("loading: " + percent + "%"); + } + }); + +*/ + +if (typeof(DOMLoader) === "undefined") var DOMLoader = {}; + +// Add XMLHttpRequest when not available + +if (typeof (XMLHttpRequest) === "undefined") { + var XMLHttpRequest; + (function () { // find equivalent for IE + var factories = [ + function () { + return new ActiveXObject("Msxml2.XMLHTTP") + }, function () { + return new ActiveXObject("Msxml3.XMLHTTP") + }, function () { + return new ActiveXObject("Microsoft.XMLHTTP") + }]; + for (var i = 0; i < factories.length; i++) { + try { + factories[i](); + } catch (e) { + continue; + } + break; + } + XMLHttpRequest = factories[i]; + })(); +} + +if (typeof ((new XMLHttpRequest()).responseText) === "undefined") { + // http://stackoverflow.com/questions/1919972/how-do-i-access-xhr-responsebody-for-binary-data-from-javascript-in-ie + var IEBinaryToArray_ByteStr_Script = + "\r\n"+ + "\r\n"; + + // inject VBScript + document.write(IEBinaryToArray_ByteStr_Script); + + DOMLoader.sendRequest = function(conf) { + // helper to convert from responseBody to a "responseText" like thing + function getResponseText(binary) { + var byteMapping = {}; + for (var i = 0; i < 256; i++) { + for (var j = 0; j < 256; j++) { + byteMapping[String.fromCharCode(i + j * 256)] = String.fromCharCode(i) + String.fromCharCode(j); + } + } + // call into VBScript utility fns + var rawBytes = IEBinaryToArray_ByteStr(binary); + var lastChr = IEBinaryToArray_ByteStr_Last(binary); + return rawBytes.replace(/[\s\S]/g, function (match) { + return byteMapping[match]; + }) + lastChr; + }; + // + var req = XMLHttpRequest(); + req.open("GET", conf.url, true); + if (conf.responseType) req.responseType = conf.responseType; + if (conf.onerror) req.onerror = conf.onerror; + if (conf.onprogress) req.onprogress = conf.onprogress; + req.onreadystatechange = function (event) { + if (req.readyState === 4) { + if (req.status === 200) { + req.responseText = getResponseText(req.responseBody); + } else { + req = false; + } + if (conf.onload) conf.onload(req); + } + }; + req.setRequestHeader("Accept-Charset", "x-user-defined"); + req.send(null); + return req; + } +} else { + DOMLoader.sendRequest = function(conf) { + var req = new XMLHttpRequest(); + req.open(conf.data ? "POST" : "GET", conf.url, true); + if (req.overrideMimeType) req.overrideMimeType("text/plain; charset=x-user-defined"); + if (conf.data) req.setRequestHeader('Content-type','application/x-www-form-urlencoded'); + if (conf.responseType) req.responseType = conf.responseType; + if (conf.onerror) req.onerror = conf.onerror; + if (conf.onprogress) req.onprogress = conf.onprogress; + req.onreadystatechange = function (event) { + if (req.readyState === 4) { + if (req.status !== 200 && req.status != 304) { + if (conf.onerror) conf.onerror(event, false); + return; + } + if (conf.onload) { + conf.onload(req); + } + } + }; + req.send(conf.data); + return req; + }; +} \ No newline at end of file -- cgit v1.2.3-54-g00ecf