[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