EN
JavaScript - document ready equivalent without jQuery
16
points
In this article, we're going to have a look at how to make $(document).ready(...) method equivalent in pure JavaScript. The method is called when DOM is ready to make some manipulations. There are three states that web page can be in: loading, interactive and complete - ready event is executed in last both.
To get better knowledge about:
- when
readymethod is executed read official documentation, ready/loadevents order for different elements during page loading read this article,- how to handle
readyevent with jQuery read this article.
Quick problem solution:
// ONLINE-RUNNER:browser;
function ready(callback) {
if (document.readyState === 'complete' || document.readyState === 'interactive') {
setTimeout(callback, 0);
} else { // 'loading'
var proxy = function(e) {
if (document.readyState === 'complete' || document.readyState === 'interactive') {
document.removeEventListener('readystatechange', proxy);
callback();
}
};
document.addEventListener('readystatechange', proxy);
}
}
// Usage example:
ready(function(e) {
console.log('Document is ready!');
});