一尘不染

javascript准备好了吗?

javascript

我知道我可以使用诸如prototype或jquery之类的不同框架来将函数附加到window.onload,但这不是我想要的。

我需要.readyState之类的东西,以便可以执行以下操作:

if(document.isReady){
  var id = document.getElem ...
}

除了使用框架做什么,还有其他方法吗?


阅读 293

收藏
2020-04-25

共1个答案

一尘不染

我已经更新了DOMAssistant库的代码,对我来说很好

var domReady = (function (){
  var arrDomReadyCallBacks = [] ;
  function excuteDomReadyCallBacks(){
       for (var i=0; i < arrDomReadyCallBacks.length; i++) {
         arrDomReadyCallBacks[i]();
       }
       arrDomReadyCallBacks = [] ;
  }

  return function (callback){
    arrDomReadyCallBacks.push(callback);
     /* Mozilla, Chrome, Opera */
      if (document.addEventListener ) {
          document.addEventListener('DOMContentLoaded', excuteDomReadyCallBacks, false);
      }
    /* Safari, iCab, Konqueror */
    if (/KHTML|WebKit|iCab/i.test(navigator.userAgent)) {
        browserTypeSet = true ;
        var DOMLoadTimer = setInterval(function () {
            if (/loaded|complete/i.test(document.readyState)) {
                //callback();
                excuteDomReadyCallBacks();
                clearInterval(DOMLoadTimer);
            }
        }, 10);
    }
    /* Other web browsers */

    window.onload = excuteDomReadyCallBacks;
}
})()
2020-04-25