123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- define(function () {
- 'use strict';
- var isTop, testDiv, scrollIntervalId,
- isBrowser = typeof window !== "undefined" && window.document,
- isPageLoaded = !isBrowser,
- doc = isBrowser ? document : null,
- readyCalls = [];
- function runCallbacks(callbacks) {
- var i;
- for (i = 0; i < callbacks.length; i += 1) {
- callbacks[i](doc);
- }
- }
- function callReady() {
- var callbacks = readyCalls;
- if (isPageLoaded) {
-
- if (callbacks.length) {
- readyCalls = [];
- runCallbacks(callbacks);
- }
- }
- }
-
- function pageLoaded() {
- if (!isPageLoaded) {
- isPageLoaded = true;
- if (scrollIntervalId) {
- clearInterval(scrollIntervalId);
- }
- callReady();
- }
- }
- if (isBrowser) {
- if (document.addEventListener) {
-
-
- document.addEventListener("DOMContentLoaded", pageLoaded, false);
- window.addEventListener("load", pageLoaded, false);
- } else if (window.attachEvent) {
- window.attachEvent("onload", pageLoaded);
- testDiv = document.createElement('div');
- try {
- isTop = window.frameElement === null;
- } catch (e) {}
-
-
-
- if (testDiv.doScroll && isTop && window.external) {
- scrollIntervalId = setInterval(function () {
- try {
- testDiv.doScroll();
- pageLoaded();
- } catch (e) {}
- }, 30);
- }
- }
-
-
-
-
-
-
-
-
-
-
-
- if (document.readyState === "complete") {
- pageLoaded();
- }
- }
-
-
- function domReady(callback) {
- if (isPageLoaded) {
- callback(doc);
- } else {
- readyCalls.push(callback);
- }
- return domReady;
- }
- domReady.version = '2.0.1';
-
- domReady.load = function (name, req, onLoad, config) {
- if (config.isBuild) {
- onLoad(null);
- } else {
- domReady(onLoad);
- }
- };
-
- return domReady;
- });
|