Bug Tracker

Ticket #2614: event-ready.patch

File event-ready.patch, 1.7 KB (added by diego, 12 years ago)

Patch for event.js in trunk

  • .js

    old new  
    528528                // Use the handy event callback
    529529                document.addEventListener( "DOMContentLoaded", jQuery.ready, false );
    530530
    531         // If IE is used and is not in a frame
    532         // Continually check to see if the document is ready
    533         if ( jQuery.browser.msie && window == top ) (function(){
    534                 if (jQuery.isReady) return;
    535                 try {
    536                         // If IE is used, use the trick by Diego Perini
    537                         // http://javascript.nwbox.com/IEContentLoaded/
    538                         document.documentElement.doScroll("left");
    539                 } catch( error ) {
    540                         setTimeout( arguments.callee, 0 );
    541                         return;
    542                 }
    543                 // and execute any waiting functions
    544                 jQuery.ready();
    545         })();
     531        // If IE event model is used
     532        if ( document.attachEvent )
     533                // ensure firing before onload,
     534                // maybe late but safe also for iframes
     535                document.attachEvent("onreadystatechange", function(e) {
     536                        if ( document.readyState == "complete" ) {
     537                                document.detachEvent("onreadystatechange", arguments.callee );
     538                                jQuery.ready();
     539                        }
     540                });
     541
     542        // If IE and not an iframe
     543        if ( document.documentElement.doScroll && !window.frameElement )
     544                // continually check to see if the document is ready
     545                (function(){
     546                        if (jQuery.isReady) return;
     547                        try {
     548                                // If IE is used, use the trick by Diego Perini
     549                                // http://javascript.nwbox.com/IEContentLoaded/
     550                                document.documentElement.doScroll("left");
     551                        } catch( error ) {
     552                                setTimeout( arguments.callee, 0 );
     553                                return;
     554                        }
     555                        // and execute any waiting functions
     556                        jQuery.ready();
     557                })();
    546558
    547559        if ( jQuery.browser.opera )
    548560                document.addEventListener( "DOMContentLoaded", function () {