var whenReady = (function() {
var funcs = [];
var ready = false;
function handler(e) {
if(ready) return;
if(e.type === 'onreadystatechange' && document.readyState !== 'complete') {
return;
}
for(var i=0; i<funcs.length; i++) {
funcs[i].call(document);
}
ready = true;
funcs = null;
}
if(document.addEventListener) {
document.addEventListener('DOMContentLoaded', handler, false);
document.addEventListener('readystatechange', handler, false);
window.addEventListener('load', handler, false);
}else if(document.attachEvent) {
document.attachEvent('onreadystatechange', handler);
window.attachEvent('onload', handler);
}
return function whenReady(fn) {
if(ready) { fn.call(document); }
else { funcs.push(fn); }
}
})();
function t1() {
console.log('t1');
}
function t2() {
console.log('t2');
}
whenReady(t1);
t2();
whenReady(t2);