Skip to content

Instantly share code, notes, and snippets.

@vordan
Forked from devbyray/domIsReady.js
Created February 19, 2017 15:20
Show Gist options
  • Save vordan/cf00521cc58e6c5caca73f62ef277ed8 to your computer and use it in GitHub Desktop.
Save vordan/cf00521cc58e6c5caca73f62ef277ed8 to your computer and use it in GitHub Desktop.
Vanilla JavaScript Document Ready (Cross-Browser)
var domIsReady = (function(domIsReady) {
var isBrowserIeOrNot = function() {
return (!document.attachEvent || typeof document.attachEvent === "undefined" ? 'not-ie' : 'ie');
}
domIsReady = function(callback) {
if(callback && typeof callback === 'function'){
if(isBrowserIeOrNot() !== 'ie') {
document.addEventListener("DOMContentLoaded", function() {
return callback();
});
} else {
document.attachEvent("onreadystatechange", function() {
if(document.readyState === "complete") {
return callback();
}
});
}
} else {
console.error('The callback is not a function!');
}
}
return domIsReady;
})(domIsReady || {});
(function(document, window, domIsReady, undefined) {
domIsReady(function() {
console.log('My DOM is ready peeps!');
document.querySelector('#page').style.background = 'blue';
});
})(document, window, domIsReady);
<div id="page">
This is the DOM!
</div>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment