摘录一下,很好的代码
whenReady = (function() {
var funcs = [],
ready = false;
function handler(e) {
if (ready) {
return;
}
if (e.type === 'onreadystatechange' && document.readyState !== 'complete') {
return;
}
var i = 0;
for (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); // IE9+
window.addEventListener('load', handler, false);
} else if (document.attachEvent) {
document.attachEvent('onreadystatechange', handler);
window.attachEvent('onload', handler);
}
return function(fn) {
if (ready) {
fn.call(document);
} else {
funcs.push(fn);
}
};
})();