Skip to content
Permalink
Browse files

Landed the patch, by Diego, that 1) Removes browser sniffing from the…

… ready code and 2) Provides some form of fallback DOM Ready for Iframes in IE. Closes #2614.
  • Loading branch information
jeresig committed Nov 12, 2008
1 parent 5c21e44 commit 3b1cf91fa44a02ed1377e9fe37b868a6e54762ea
Showing with 27 additions and 15 deletions.
  1. +27 −15 src/event.js
@@ -526,21 +526,33 @@ function bindReady(){
// Use the handy event callback
document.addEventListener( "DOMContentLoaded", jQuery.ready, false );

// If IE is used and is not in a frame
// Continually check to see if the document is ready
if ( jQuery.browser.msie && window == top ) (function(){
if (jQuery.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
jQuery.ready();
})();
// If IE event model is used
if ( document.attachEvent )
// ensure firing before onload,
// maybe late but safe also for iframes
document.attachEvent("onreadystatechange", function(e) {
if ( document.readyState == "complete" ) {
document.detachEvent("onreadystatechange", arguments.callee );
jQuery.ready();
}
});

// If IE and not an iframe
if ( document.documentElement.doScroll && !window.frameElement )
// continually check to see if the document is ready
(function(){
if (jQuery.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
jQuery.ready();
})();

if ( jQuery.browser.opera )
document.addEventListener( "DOMContentLoaded", function () {

0 comments on commit 3b1cf91

Please sign in to comment.
You can’t perform that action at this time.