-
-
Save carlosvillu/668859 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// HOWTO: load LABjs itself dynamically! | |
// inline this code in your page to load LABjs itself dynamically, if you're so inclined. | |
(function (global, oDOC, handler) { | |
var head = oDOC.head || oDOC.getElementsByTagName("head"); | |
function LABjsLoaded() { | |
// do cool stuff with $LAB here | |
} | |
// loading code borrowed directly from LABjs itself | |
setTimeout(function () { | |
if ("item" in head) { // check if ref is still a live node list | |
if (!head[0]) { // append_to node not yet ready | |
setTimeout(arguments.callee, 25); | |
return; | |
} | |
head = head[0]; // reassign from live node list ref to pure node ref -- avoids nasty IE bug where changes to DOM invalidate live node lists | |
} | |
var scriptElem = oDOC.createElement("script"), | |
scriptdone = false; | |
scriptElem.onload = scriptElem.onreadystatechange = function () { | |
if ((scriptElem.readyState && scriptElem.readyState !== "complete" && scriptElem.readyState !== "loaded") || scriptdone) { | |
return false; | |
} | |
scriptElem.onload = scriptElem.onreadystatechange = null; | |
scriptdone = true; | |
LABjsLoaded(); | |
}; | |
scriptElem.src = "/path/to/LAB.js"; | |
head.insertBefore(scriptElem, head.firstChild); | |
}, 0); | |
// required: shim for FF <= 3.5 not having document.readyState | |
if (oDOC.readyState == null && oDOC.addEventListener) { | |
oDOC.readyState = "loading"; | |
oDOC.addEventListener("DOMContentLoaded", handler = function () { | |
oDOC.removeEventListener("DOMContentLoaded", handler, false); | |
oDOC.readyState = "complete"; | |
}, false); | |
} | |
})(window, document); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// compressed more suitable for inlining | |
// ~640b before gzip | |
(function(g,b,d){var c=b.head||b.getElementsByTagName("head"),D="readyState",E="onreadystatechange",F="DOMContentLoaded",G="addEventListener",H=setTimeout; | |
function f(){ | |
// $LAB stuff here | |
} | |
H(function(){if("item"in c){if(!c[0]){H(arguments.callee,25);return}c=c[0]}var a=b.createElement("script"),e=false;a.onload=a[E]=function(){if((a[D]&&a[D]!=="complete"&&a[D]!=="loaded")||e){return false}a.onload=a[E]=null;e=true;f()}; | |
a.src="/path/to/LAB.js"; | |
c.insertBefore(a,c.firstChild)},0);if(b[D]==null&&b[G]){b[D]="loading";b[G](F,d=function(){b.removeEventListener(F,d,false);b[D]="complete"},false)}})(this,document); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment