[richfaces-svn-commits] JBoss Rich Faces SVN: r1363 - trunk/sandbox/scrollable-grid/src/main/javascript.

richfaces-svn-commits at lists.jboss.org richfaces-svn-commits at lists.jboss.org
Thu Jun 28 06:10:32 EDT 2007


Author: dmorozov
Date: 2007-06-28 06:10:32 -0400 (Thu, 28 Jun 2007)
New Revision: 1363

Modified:
   trunk/sandbox/scrollable-grid/src/main/javascript/ClientUILib.js
Log:
Add custom prototype Event: OnDOMReady.
Usage: Event.onReady(callbackFunction);

Modified: trunk/sandbox/scrollable-grid/src/main/javascript/ClientUILib.js
===================================================================
--- trunk/sandbox/scrollable-grid/src/main/javascript/ClientUILib.js	2007-06-28 09:57:00 UTC (rev 1362)
+++ trunk/sandbox/scrollable-grid/src/main/javascript/ClientUILib.js	2007-06-28 10:10:32 UTC (rev 1363)
@@ -220,5 +220,37 @@
 		evt.initMouseEvent('click', true, true, this.ownerDocument.defaultView, 1, 0, 0, 0, 0, false, false, false, false, 0, null);
 		this.dispatchEvent(evt);
 	}
-}
 };
+
+// Usage: Event.onReady(callbackFunction);
+Object.extend(Event, {
+	_domReady : function() {
+		if (arguments.callee.done) return;
+		arguments.callee.done = true;
+		 
+		if (Event._timer) clearInterval(Event._timer);
+		
+		Event._readyCallbacks.each(function(f) { f() });
+		Event._readyCallbacks = null;
+	},
+	onReady : function(f) {
+		if (!this._readyCallbacks) {
+			var domReady = this._domReady;
+		
+			if (domReady.done) return f();
+		
+			if (document.addEventListener)
+				document.addEventListener("DOMContentLoaded", domReady, false);
+			if (/WebKit/i.test(navigator.userAgent)) {
+				this._timer = setInterval(function() {
+					if (/loaded|complete/.test(document.readyState)) domReady();
+				}, 10);
+			}
+			Event.observe(window, 'load', domReady);
+			Event._readyCallbacks = [];
+		}
+		Event._readyCallbacks.push(f);
+	}
+});
+
+};




More information about the richfaces-svn-commits mailing list