288
288
289
289
ElementQueries . withTracking = false ;
290
290
291
- function init ( ) {
292
- ElementQueries . instance = new ElementQueries ( ) ;
291
+ ElementQueries . init = function ( ) {
292
+ if ( ! ElementQueries . instance ) {
293
+ ElementQueries . instance = new ElementQueries ( ) ;
294
+ }
295
+
293
296
ElementQueries . instance . init ( ElementQueries . withTracking ) ;
294
- }
297
+ } ;
298
+
299
+ var domLoaded = function ( callback ) {
300
+ /* Internet Explorer */
301
+ /*@cc_on
302
+ @if (@_win32 || @_win64)
303
+ document.write('<script id="ieScriptLoad" defer src="//:"><\/script>');
304
+ document.getElementById('ieScriptLoad').onreadystatechange = function() {
305
+ if (this.readyState == 'complete') {
306
+ callback();
307
+ }
308
+ };
309
+ @end @*/
310
+ /* Mozilla, Chrome, Opera */
311
+ if ( document . addEventListener ) {
312
+ document . addEventListener ( 'DOMContentLoaded' , callback , false ) ;
313
+ }
314
+ /* Safari, iCab, Konqueror */
315
+ if ( / K H T M L | W e b K i t | i C a b / i. test ( navigator . userAgent ) ) {
316
+ var DOMLoadTimer = setInterval ( function ( ) {
317
+ if ( / l o a d e d | c o m p l e t e / i. test ( document . readyState ) ) {
318
+ callback ( ) ;
319
+ clearInterval ( DOMLoadTimer ) ;
320
+ }
321
+ } , 10 ) ;
322
+ }
323
+ /* Other web browsers */
324
+ window . onload = callback ;
325
+ } ;
295
326
296
327
if ( window . addEventListener ) {
297
- window . addEventListener ( 'load' , init , false ) ;
328
+ window . addEventListener ( 'load' , ElementQueries . init , false ) ;
298
329
} else {
299
- window . attachEvent ( 'onload' , init ) ;
330
+ window . attachEvent ( 'onload' , ElementQueries . init ) ;
300
331
}
332
+ domLoaded ( ElementQueries . init ) ;
301
333
302
- } ) ( ) ;
334
+ } ) ( ) ;
0 commit comments