ready.js 576 B

12345678910111213141516171819202122
  1. var fns = [];
  2. var listener;
  3. var doc = document;
  4. var hack = doc.documentElement.doScroll;
  5. var domContentLoaded = 'DOMContentLoaded';
  6. var loaded = (hack ? /^loaded|^c/ : /^loaded|^i|^c/).test(doc.readyState);
  7. if (!loaded) {
  8. doc.addEventListener(
  9. domContentLoaded,
  10. (listener = function() {
  11. doc.removeEventListener(domContentLoaded, listener);
  12. loaded = 1;
  13. while ((listener = fns.shift())) listener();
  14. })
  15. );
  16. }
  17. exports = function(fn) {
  18. loaded ? setTimeout(fn, 0) : fns.push(fn);
  19. };
  20. module.exports = exports;