Skip to content

Instantly share code, notes, and snippets.

@devbyray
Last active November 13, 2023 17:46
Show Gist options
  • Star 11 You must be signed in to star a gist
  • Fork 6 You must be signed in to fork a gist
  • Save devbyray/84bc7def8fbfa06ffd84 to your computer and use it in GitHub Desktop.
Save devbyray/84bc7def8fbfa06ffd84 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>
@devbyray
Copy link
Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment