1 // domready.js (https://github.com/ded/domready)
2 // NB not minified, as it the minified version doesn't work
3 // License: MIT license
4 !function (context, doc) {
5 var fns = [], ol, fn, f = false,
6 testEl = doc.documentElement,
7 hack = testEl.doScroll,
8 domContentLoaded = 'DOMContentLoaded',
9 addEventListener = 'addEventListener',
10 onreadystatechange = 'onreadystatechange',
11 loaded = /^loade|c/.test(doc.readyState);
15 while (i = fns.shift()) { i() }
17 doc[addEventListener] && doc[addEventListener](domContentLoaded, fn = function () {
18 doc.removeEventListener(domContentLoaded, fn, f);
23 hack && doc.attachEvent(onreadystatechange, (ol = function () {
24 if (/^c/.test(doc.readyState)) {
25 doc.detachEvent(onreadystatechange, ol);
30 context['domReady'] = hack ?
33 loaded ? fn() : fns.push(fn) :
36 testEl.doScroll('left');
38 return setTimeout(function() { context['domReady'](fn) }, 50);
44 loaded ? fn() : fns.push(fn);