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.
This commit is contained in:
parent
5c21e44fce
commit
3b1cf91fa4
42
src/event.js
42
src/event.js
|
@ -526,21 +526,33 @@ function bindReady(){
|
||||||
// Use the handy event callback
|
// Use the handy event callback
|
||||||
document.addEventListener( "DOMContentLoaded", jQuery.ready, false );
|
document.addEventListener( "DOMContentLoaded", jQuery.ready, false );
|
||||||
|
|
||||||
// If IE is used and is not in a frame
|
// If IE event model is used
|
||||||
// Continually check to see if the document is ready
|
if ( document.attachEvent )
|
||||||
if ( jQuery.browser.msie && window == top ) (function(){
|
// ensure firing before onload,
|
||||||
if (jQuery.isReady) return;
|
// maybe late but safe also for iframes
|
||||||
try {
|
document.attachEvent("onreadystatechange", function(e) {
|
||||||
// If IE is used, use the trick by Diego Perini
|
if ( document.readyState == "complete" ) {
|
||||||
// http://javascript.nwbox.com/IEContentLoaded/
|
document.detachEvent("onreadystatechange", arguments.callee );
|
||||||
document.documentElement.doScroll("left");
|
jQuery.ready();
|
||||||
} catch( error ) {
|
}
|
||||||
setTimeout( arguments.callee, 0 );
|
});
|
||||||
return;
|
|
||||||
}
|
// If IE and not an iframe
|
||||||
// and execute any waiting functions
|
if ( document.documentElement.doScroll && !window.frameElement )
|
||||||
jQuery.ready();
|
// 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 )
|
if ( jQuery.browser.opera )
|
||||||
document.addEventListener( "DOMContentLoaded", function () {
|
document.addEventListener( "DOMContentLoaded", function () {
|
||||||
|
|
Loading…
Reference in a new issue