Advertisement
cgrunwald

Untitled

Sep 4th, 2012
45
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. (function (global, doc, handler) {
  2.     var head = doc.head || doc.getElementsByTagName("head");
  3.     var consts = (function (consts) {
  4.         consts.jqurl = "//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js";
  5.         return consts;
  6.     })({});
  7.  
  8.     function OnLoaded() {
  9.         global.$ = global.jQuery;
  10.     }
  11.  
  12.     // loading code borrowed directly from LABjs itself
  13.     setTimeout(function () {
  14.         if("item" in head) { // check if ref is still a live node list
  15.             if(!head[0]) { // append_to node not yet ready
  16.                 setTimeout(arguments.callee, 25);
  17.                 return;
  18.             }
  19.             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
  20.         }
  21.         var scriptElem = doc.createElement("script"),
  22.             scriptdone = false;
  23.         scriptElem.onload = scriptElem.onreadystatechange = function () {
  24.             if((scriptElem.readyState && scriptElem.readyState !== "complete" && scriptElem.readyState !== "loaded") || scriptdone) {
  25.                 return false;
  26.             }
  27.             scriptElem.onload = scriptElem.onreadystatechange = null;
  28.             scriptdone = true;
  29.             return OnLoaded();
  30.         };
  31.         scriptElem.src = consts.jqurl;
  32.         head.insertBefore(scriptElem, head.firstChild);
  33.     }, 0);
  34.  
  35.     // required: shim for FF <= 3.5 not having document.readyState
  36.     if(doc.readyState == null && doc.addEventListener) {
  37.         doc.readyState = "loading";
  38.         doc.addEventListener("DOMContentLoaded", handler = function () {
  39.             doc.removeEventListener("DOMContentLoaded", handler, false);
  40.             doc.readyState = "complete";
  41.         }, false);
  42.     }
  43. })(window, document);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement