Skip to content
This repository was archived by the owner on Dec 31, 2022. It is now read-only.

Commit d169fc0

Browse files
committed
LABjs.next: fixing another bug with XHR
1 parent a0b4eaf commit d169fc0

File tree

1 file changed

+6
-5
lines changed

1 file changed

+6
-5
lines changed

next/LAB.src.js

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818
root_page = /^[^?#]*\//.exec(location.href)[0],
1919
root_domain = /^\w+\:\/\/\/?[^\/]+/.exec(root_page)[0],
2020
append_to = document.head || document.getElementsByTagName("head"),
21+
22+
disable_xhr = !(XMLHttpRequest || ActiveXObject), // flag shared by all instances, for whether XHR failed or is invalid
2123

2224
// inferences... ick, but still necessary
2325
opera_or_gecko = (global.opera && Object.prototype.toString.call(global.opera) == "[object Opera]") || ("MozAppearance" in document.documentElement.style),
@@ -42,6 +44,7 @@
4244
log_msg = function(msg) { global.console.log(msg); };
4345
log_error = function(msg,err) { global.console.error(msg,err); };
4446
}
47+
if (disable_xhr) log_msg("LABjs warning: XHR disabled after init failure.");
4548
/*!END_DEBUG*/
4649

4750
// test for function
@@ -183,10 +186,6 @@
183186
// same-domain, so use XHR+script injection
184187
else if (same_domain(src) && chain_opts[_UseLocalXHR]) {
185188
var xhr = XMLHttpRequest ? new XMLHttpRequest() : (ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : null);
186-
if (!xhr) {
187-
global_defaults[_UseLocalXHR] = chain_opts[_UseLocalXHR] = false; // can't use XHR for some reason, so don't try anymore
188-
return request_script(chain_opts,script_obj,chain_group,registry_item,onload);
189-
}
190189
/*!START_DEBUG*/if (chain_opts[_Debug]) log_msg("start script preload (xhr): "+src);/*!END_DEBUG*/
191190
xhr.onreadystatechange = function() {
192191
if (xhr.readyState == 4) {
@@ -222,7 +221,7 @@
222221
;
223222

224223
// global defaults
225-
global_defaults[_UseLocalXHR] = true;
224+
global_defaults[_UseLocalXHR] = !disable_xhr;
226225
global_defaults[_AlwaysPreserveOrder] = false;
227226
global_defaults[_AllowDuplicates] = false;
228227
global_defaults[_CacheBust] = false;
@@ -432,6 +431,7 @@
432431
wait:chainedAPI.wait,
433432
setOptions:function(opts){
434433
merge_objs(opts,chain_opts);
434+
chain_opts[_UseLocalXHR] = chain_opts[_UseLocalXHR] && !disable_xhr;
435435
return chainedAPI;
436436
}
437437
};
@@ -442,6 +442,7 @@
442442
// main API functions
443443
setGlobalDefaults:function(opts){
444444
merge_objs(opts,global_defaults);
445+
global_defaults[_UseLocalXHR] = global_defaults[_UseLocalXHR] && !disable_xhr;
445446
return instanceAPI;
446447
},
447448
setOptions:function(){

0 commit comments

Comments
 (0)