document-ready-promise
Version:
A simple ES2015 Promise-based "document ready" event handler.
26 lines (21 loc) • 674 B
JavaScript
(function (document, promise) {
if (typeof module !== 'undefined') module.exports = promise
else document.ready = promise
})(window.document, function (chainVal) {
'use strict'
var d = document,
w = window,
loaded = /^loaded|^i|^c/.test(d.readyState),
DOMContentLoaded = 'DOMContentLoaded',
load = 'load'
return new Promise(function (resolve) {
if (loaded) return resolve(chainVal)
function onReady () {
resolve(chainVal)
d.removeEventListener(DOMContentLoaded, onReady)
w.removeEventListener(load, onReady)
}
d.addEventListener(DOMContentLoaded, onReady)
w.addEventListener(load, onReady)
})
})