Skip to content
Browse files

Upgrading domready library, just in case.

  • Loading branch information...
1 parent 8695f19 commit f18d6eda1e41202c514f82d3f90f6b3f578e74ff @etianen committed Jul 9, 2011
Showing with 121 additions and 121 deletions.
  1. +121 −121 lib/domready/domready.js
View
242 lib/domready/domready.js
@@ -2,145 +2,145 @@
var DomReady = window.DomReady = {};
- // Everything that has to do with properly supporting our document ready event. Brought over from the most awesome jQuery.
+ // Everything that has to do with properly supporting our document ready event. Brought over from the most awesome jQuery.
var userAgent = navigator.userAgent.toLowerCase();
// Figure out what browser is being used
var browser = {
- version: (userAgent.match( /.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/ ) || [])[1],
- safari: /webkit/.test(userAgent),
- opera: /opera/.test(userAgent),
- msie: (/msie/.test(userAgent)) && (!/opera/.test( userAgent )),
- mozilla: (/mozilla/.test(userAgent)) && (!/(compatible|webkit)/.test(userAgent))
+ version: (userAgent.match( /.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/ ) || [])[1],
+ safari: /webkit/.test(userAgent),
+ opera: /opera/.test(userAgent),
+ msie: (/msie/.test(userAgent)) && (!/opera/.test( userAgent )),
+ mozilla: (/mozilla/.test(userAgent)) && (!/(compatible|webkit)/.test(userAgent))
};
- var readyBound = false;
- var isReady = false;
- var readyList = [];
+ var readyBound = false;
+ var isReady = false;
+ var readyList = [];
- // Handle when the DOM is ready
- function domReady() {
- // Make sure that the DOM is not already loaded
- if(!isReady) {
- // Remember that the DOM is ready
- isReady = true;
+ // Handle when the DOM is ready
+ function domReady() {
+ // Make sure that the DOM is not already loaded
+ if(!isReady) {
+ // Remember that the DOM is ready
+ isReady = true;
- if(readyList) {
- for(var fn = 0; fn < readyList.length; fn++) {
- readyList[fn].call(window, []);
- }
+ if(readyList) {
+ for(var fn = 0; fn < readyList.length; fn++) {
+ readyList[fn].call(window, []);
+ }
- readyList = [];
- }
- }
- };
+ readyList = [];
+ }
+ }
+ };
- // From Simon Willison. A safe way to fire onload w/o screwing up everyone else.
- function addLoadEvent(func) {
- var oldonload = window.onload;
- if (typeof window.onload != 'function') {
- window.onload = func;
- } else {
- window.onload = function() {
- if (oldonload) {
- oldonload();
- }
- func();
- }
- }
- };
+ // From Simon Willison. A safe way to fire onload w/o screwing up everyone else.
+ function addLoadEvent(func) {
+ var oldonload = window.onload;
+ if (typeof window.onload != 'function') {
+ window.onload = func;
+ } else {
+ window.onload = function() {
+ if (oldonload) {
+ oldonload();
+ }
+ func();
+ }
+ }
+ };
- // does the heavy work of working through the browsers idiosyncracies (let's call them that) to hook onload.
- function bindReady() {
- if(readyBound) {
- return;
- }
-
- readyBound = true;
+ // does the heavy work of working through the browsers idiosyncracies (let's call them that) to hook onload.
+ function bindReady() {
+ if(readyBound) {
+ return;
+ }
+
+ readyBound = true;
- // Mozilla, Opera (see further below for it) and webkit nightlies currently support this event
- if (document.addEventListener && !browser.opera) {
- // Use the handy event callback
- document.addEventListener("DOMContentLoaded", domReady, false);
- }
+ // Mozilla, Opera (see further below for it) and webkit nightlies currently support this event
+ if (document.addEventListener && !browser.opera) {
+ // Use the handy event callback
+ document.addEventListener("DOMContentLoaded", domReady, false);
+ }
- // If IE is used and is not in a frame
- // Continually check to see if the document is ready
- if (browser.msie && window == top) (function(){
- if (isReady) return;
- try {
- // If IE is used, use the trick by Diego Perini
- // http://javascript.nwbox.com/IEContentLoaded/
- document.documentElement.doScroll("left");
- } catch(error) {
- setTimeout(arguments.callee, 0);
- return;
- }
- // and execute any waiting functions
- domReady();
- })();
+ // If IE is used and is not in a frame
+ // Continually check to see if the document is ready
+ if (browser.msie && window == top) (function(){
+ if (isReady) return;
+ try {
+ // If IE is used, use the trick by Diego Perini
+ // http://javascript.nwbox.com/IEContentLoaded/
+ document.documentElement.doScroll("left");
+ } catch(error) {
+ setTimeout(arguments.callee, 0);
+ return;
+ }
+ // and execute any waiting functions
+ domReady();
+ })();
- if(browser.opera) {
- document.addEventListener( "DOMContentLoaded", function () {
- if (isReady) return;
- for (var i = 0; i < document.styleSheets.length; i++)
- if (document.styleSheets[i].disabled) {
- setTimeout( arguments.callee, 0 );
- return;
- }
- // and execute any waiting functions
- domReady();
- }, false);
- }
+ if(browser.opera) {
+ document.addEventListener( "DOMContentLoaded", function () {
+ if (isReady) return;
+ for (var i = 0; i < document.styleSheets.length; i++)
+ if (document.styleSheets[i].disabled) {
+ setTimeout( arguments.callee, 0 );
+ return;
+ }
+ // and execute any waiting functions
+ domReady();
+ }, false);
+ }
- if(browser.safari) {
- var numStyles;
- (function(){
- if (isReady) return;
- if (document.readyState != "loaded" && document.readyState != "complete") {
- setTimeout( arguments.callee, 0 );
- return;
- }
- if (numStyles === undefined) {
- var links = document.getElementsByTagName("link");
- for (var i=0; i < links.length; i++) {
- if(links[i].getAttribute('rel') == 'stylesheet') {
- numStyles++;
- }
- }
- var styles = document.getElementsByTagName("style");
- numStyles += styles.length;
- }
- if (document.styleSheets.length != numStyles) {
- setTimeout( arguments.callee, 0 );
- return;
- }
-
- // and execute any waiting functions
- domReady();
- })();
- }
+ if(browser.safari) {
+ var numStyles;
+ (function(){
+ if (isReady) return;
+ if (document.readyState != "loaded" && document.readyState != "complete") {
+ setTimeout( arguments.callee, 0 );
+ return;
+ }
+ if (numStyles === undefined) {
+ var links = document.getElementsByTagName("link");
+ for (var i=0; i < links.length; i++) {
+ if(links[i].getAttribute('rel') == 'stylesheet') {
+ numStyles++;
+ }
+ }
+ var styles = document.getElementsByTagName("style");
+ numStyles += styles.length;
+ }
+ if (document.styleSheets.length != numStyles) {
+ setTimeout( arguments.callee, 0 );
+ return;
+ }
+
+ // and execute any waiting functions
+ domReady();
+ })();
+ }
- // A fallback to window.onload, that will always work
- addLoadEvent(domReady);
- };
+ // A fallback to window.onload, that will always work
+ addLoadEvent(domReady);
+ };
- // This is the public function that people can use to hook up ready.
- DomReady.ready = function(fn, args) {
- // Attach the listeners
- bindReady();
-
- // If the DOM is already ready
- if (isReady) {
- // Execute the function immediately
- fn.call(window, []);
- } else {
- // Add the function to the wait list
- readyList.push( function() { return fn.call(window, []); } );
- }
- };
+ // This is the public function that people can use to hook up ready.
+ DomReady.ready = function(fn, args) {
+ // Attach the listeners
+ bindReady();
- bindReady();
+ // If the DOM is already ready
+ if (isReady) {
+ // Execute the function immediately
+ fn.call(window, []);
+ } else {
+ // Add the function to the wait list
+ readyList.push( function() { return fn.call(window, []); } );
+ }
+ };
+ bindReady();
+
})();

0 comments on commit f18d6ed

Please sign in to comment.
Something went wrong with that request. Please try again.