run-before-onload.js

来自「《JavaScript精粹》 源文件下载」· JavaScript 代码 · 共 48 行

JS
48
字号
function domFunction(fn, dependencies)
{
  var counter = 0, collections = {}, timer = setInterval(function()
  {
    var ready = false;
    counter++;

    if (typeof document.getElementsByTagName != 'undefined'
        && (document.getElementsByTagName('body')[0] || document.body))
    {
      ready = true;

      if (typeof dependencies == 'object')
      {
        for (var i in dependencies)
        {
          if (dependencies[i] == 'id' && !document.getElementById(i))
          {
            ready = false;
            break;
          }
          else if (dependencies[i] == 'tag')
          {
            var len = document.getElementsByTagName(i).length;
            if (typeof collections[i] == 'undefined' || collections[i] != len || len < 1)
            {
              collections[i] = len;
              ready = false;
              break;
            }
          }
        }
      }
      if (ready)
      {
        clearInterval(timer);
        fn();
      }
    }

    if (counter >= 40)
    {
      clearInterval(timer);
    }

  }, 250);
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?