Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
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...
commit 3b1cf91fa44a02ed1377e9fe37b868a6e54762ea 1 parent 5c21e44
@jeresig jeresig authored
Showing with 27 additions and 15 deletions.
  1. +27 −15 src/event.js
View
42 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 () {
Please sign in to comment.
Something went wrong with that request. Please try again.