Files
@ 72d2c165613c
Branch filter:
Location: CSY/sefm2020/themes/bootstrap3/static/js/jXHR.js - annotation
72d2c165613c
2.4 KiB
text/javascript
Explicitly register for both conf and workshops
913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 913a26cb1708 | // jXHR.js (JSON-P XHR)
// v0.1 (c) Kyle Simpson
// MIT License
(function(global){
var SETTIMEOUT = global.setTimeout, // for better compression
doc = global.document,
callback_counter = 0;
global.jXHR = function() {
var script_url,
script_loaded,
jsonp_callback,
scriptElem,
publicAPI = null;
function removeScript() { try { scriptElem.parentNode.removeChild(scriptElem); } catch (err) { } }
function reset() {
script_loaded = false;
script_url = "";
removeScript();
scriptElem = null;
fireReadyStateChange(0);
}
function ThrowError(msg) {
try { publicAPI.onerror.call(publicAPI,msg,script_url); } catch (err) { throw new Error(msg); }
}
function handleScriptLoad() {
if ((this.readyState && this.readyState!=="complete" && this.readyState!=="loaded") || script_loaded) { return; }
this.onload = this.onreadystatechange = null; // prevent memory leak
script_loaded = true;
if (publicAPI.readyState !== 4) ThrowError("Script failed to load ["+script_url+"].");
removeScript();
}
function fireReadyStateChange(rs,args) {
args = args || [];
publicAPI.readyState = rs;
if (typeof publicAPI.onreadystatechange === "function") publicAPI.onreadystatechange.apply(publicAPI,args);
}
publicAPI = {
onerror:null,
onreadystatechange:null,
readyState:0,
open:function(method,url){
reset();
internal_callback = "cb"+(callback_counter++);
(function(icb){
global.jXHR[icb] = function() {
try { fireReadyStateChange.call(publicAPI,4,arguments); }
catch(err) {
publicAPI.readyState = -1;
ThrowError("Script failed to run ["+script_url+"].");
}
global.jXHR[icb] = null;
};
})(internal_callback);
script_url = url.replace(/=\?/,"=jXHR."+internal_callback);
fireReadyStateChange(1);
},
send:function(){
SETTIMEOUT(function(){
scriptElem = doc.createElement("script");
scriptElem.setAttribute("type","text/javascript");
scriptElem.onload = scriptElem.onreadystatechange = function(){handleScriptLoad.call(scriptElem);};
scriptElem.setAttribute("src",script_url);
doc.getElementsByTagName("head")[0].appendChild(scriptElem);
},0);
fireReadyStateChange(2);
},
setRequestHeader:function(){}, // noop
getResponseHeader:function(){return "";}, // basically noop
getAllResponseHeaders:function(){return [];} // ditto
};
reset();
return publicAPI;
};
})(window);
|