Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'libs/bower_components/jquery/src/core/ready.js')
-rw-r--r--libs/bower_components/jquery/src/core/ready.js63
1 files changed, 37 insertions, 26 deletions
diff --git a/libs/bower_components/jquery/src/core/ready.js b/libs/bower_components/jquery/src/core/ready.js
index 392c4849f9..da7a0a2922 100644
--- a/libs/bower_components/jquery/src/core/ready.js
+++ b/libs/bower_components/jquery/src/core/ready.js
@@ -1,20 +1,23 @@
-define([
+define( [
"../core",
+ "../var/document",
"../core/init",
"../deferred"
-], function( jQuery ) {
+], function( jQuery, document ) {
// The deferred used on DOM ready
var readyList;
jQuery.fn.ready = function( fn ) {
+
// Add the callback
jQuery.ready.promise().done( fn );
return this;
};
-jQuery.extend({
+jQuery.extend( {
+
// Is the DOM ready to be used? Set to true once it occurs.
isReady: false,
@@ -39,11 +42,6 @@ jQuery.extend({
return;
}
- // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443).
- if ( !document.body ) {
- return setTimeout( jQuery.ready );
- }
-
// Remember that the DOM is ready
jQuery.isReady = true;
@@ -61,15 +59,15 @@ jQuery.extend({
jQuery( document ).off( "ready" );
}
}
-});
+} );
/**
* Clean-up method for dom ready events
*/
function detach() {
if ( document.addEventListener ) {
- document.removeEventListener( "DOMContentLoaded", completed, false );
- window.removeEventListener( "load", completed, false );
+ document.removeEventListener( "DOMContentLoaded", completed );
+ window.removeEventListener( "load", completed );
} else {
document.detachEvent( "onreadystatechange", completed );
@@ -81,8 +79,12 @@ function detach() {
* The ready event handler and self cleanup method
*/
function completed() {
+
// readyState === "complete" is good enough for us to call the dom ready in oldIE
- if ( document.addEventListener || event.type === "load" || document.readyState === "complete" ) {
+ if ( document.addEventListener ||
+ window.event.type === "load" ||
+ document.readyState === "complete" ) {
+
detach();
jQuery.ready();
}
@@ -93,23 +95,28 @@ jQuery.ready.promise = function( obj ) {
readyList = jQuery.Deferred();
- // Catch cases where $(document).ready() is called after the browser event has already occurred.
- // we once tried to use readyState "interactive" here, but it caused issues like the one
- // discovered by ChrisS here: http://bugs.jquery.com/ticket/12282#comment:15
- if ( document.readyState === "complete" ) {
+ // Catch cases where $(document).ready() is called
+ // after the browser event has already occurred.
+ // Support: IE6-10
+ // Older IE sometimes signals "interactive" too soon
+ if ( document.readyState === "complete" ||
+ ( document.readyState !== "loading" && !document.documentElement.doScroll ) ) {
+
// Handle it asynchronously to allow scripts the opportunity to delay ready
- setTimeout( jQuery.ready );
+ window.setTimeout( jQuery.ready );
// Standards-based browsers support DOMContentLoaded
} else if ( document.addEventListener ) {
+
// Use the handy event callback
- document.addEventListener( "DOMContentLoaded", completed, false );
+ document.addEventListener( "DOMContentLoaded", completed );
// A fallback to window.onload, that will always work
- window.addEventListener( "load", completed, false );
+ window.addEventListener( "load", completed );
// If IE event model is used
} else {
+
// Ensure firing before onload, maybe late but safe also for iframes
document.attachEvent( "onreadystatechange", completed );
@@ -122,18 +129,19 @@ jQuery.ready.promise = function( obj ) {
try {
top = window.frameElement == null && document.documentElement;
- } catch(e) {}
+ } catch ( e ) {}
if ( top && top.doScroll ) {
- (function doScrollCheck() {
+ ( function doScrollCheck() {
if ( !jQuery.isReady ) {
try {
+
// Use the trick by Diego Perini
// http://javascript.nwbox.com/IEContentLoaded/
- top.doScroll("left");
- } catch(e) {
- return setTimeout( doScrollCheck, 50 );
+ top.doScroll( "left" );
+ } catch ( e ) {
+ return window.setTimeout( doScrollCheck, 50 );
}
// detach all dom ready events
@@ -142,11 +150,14 @@ jQuery.ready.promise = function( obj ) {
// and execute any waiting functions
jQuery.ready();
}
- })();
+ } )();
}
}
}
return readyList.promise( obj );
};
-});
+// Kick off the DOM ready check even if the user does not
+jQuery.ready.promise();
+
+} );