OLD | NEW |
| (Empty) |
1 /*! | |
2 * domready (c) Dustin Diaz 2012 - License MIT | |
3 */ | |
4 !function (name, context, definition) { | |
5 if (typeof module != 'undefined') module.exports = definition() | |
6 else if (typeof define == 'function' && typeof define.amd == 'object') define(
definition) | |
7 else context[name] = definition() | |
8 }('domready', this, function (ready) { | |
9 | |
10 var fns = [], fn, f = false | |
11 , doc = document | |
12 , testEl = doc.documentElement | |
13 , hack = testEl.doScroll | |
14 , domContentLoaded = 'DOMContentLoaded' | |
15 , addEventListener = 'addEventListener' | |
16 , onreadystatechange = 'onreadystatechange' | |
17 , readyState = 'readyState' | |
18 , loaded = /^loade|c/.test(doc[readyState]) | |
19 | |
20 function flush(f) { | |
21 loaded = 1 | |
22 while (f = fns.shift()) f() | |
23 } | |
24 | |
25 doc[addEventListener] && doc[addEventListener](domContentLoaded, fn = function
() { | |
26 doc.removeEventListener(domContentLoaded, fn, f) | |
27 flush() | |
28 }, f) | |
29 | |
30 | |
31 hack && doc.attachEvent(onreadystatechange, fn = function () { | |
32 if (/^c/.test(doc[readyState])) { | |
33 doc.detachEvent(onreadystatechange, fn) | |
34 flush() | |
35 } | |
36 }) | |
37 | |
38 return (ready = hack ? | |
39 function (fn) { | |
40 self != top ? | |
41 loaded ? fn() : fns.push(fn) : | |
42 function () { | |
43 try { | |
44 testEl.doScroll('left') | |
45 } catch (e) { | |
46 return setTimeout(function() { ready(fn) }, 50) | |
47 } | |
48 fn() | |
49 }() | |
50 } : | |
51 function (fn) { | |
52 loaded ? fn() : fns.push(fn) | |
53 }) | |
54 }) | |
OLD | NEW |