Skip to content

Commit 3f87e2a

Browse files
committed
Added ondomready inits
1 parent 572f1aa commit 3f87e2a

File tree

1 file changed

+38
-6
lines changed

1 file changed

+38
-6
lines changed

src/ElementQueries.js

Lines changed: 38 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -288,15 +288,47 @@
288288

289289
ElementQueries.withTracking = false;
290290

291-
function init() {
292-
ElementQueries.instance = new ElementQueries();
291+
ElementQueries.init = function() {
292+
if (!ElementQueries.instance) {
293+
ElementQueries.instance = new ElementQueries();
294+
}
295+
293296
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 (/KHTML|WebKit|iCab/i.test(navigator.userAgent)) {
316+
var DOMLoadTimer = setInterval(function () {
317+
if (/loaded|complete/i.test(document.readyState)) {
318+
callback();
319+
clearInterval(DOMLoadTimer);
320+
}
321+
}, 10);
322+
}
323+
/* Other web browsers */
324+
window.onload = callback;
325+
};
295326

296327
if (window.addEventListener) {
297-
window.addEventListener('load', init, false);
328+
window.addEventListener('load', ElementQueries.init, false);
298329
} else {
299-
window.attachEvent('onload', init);
330+
window.attachEvent('onload', ElementQueries.init);
300331
}
332+
domLoaded(ElementQueries.init);
301333

302-
})();
334+
})();

0 commit comments

Comments
 (0)