原生JS 实现 dom ready

Posted xiaoyeblog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了原生JS 实现 dom ready相关的知识,希望对你有一定的参考价值。

记录一下项目技术问题:

记得:放在head标签内的脚本,第一时间执行

var baseTools = 
  // dom ready
  ready: function( f )
    var ie = !!(window.attachEvent && !window.opera);
    var wk = /webkit\/(\d+)/i.test(navigator.userAgent) && (RegExp.$1 < 525);
    var fn = [];
    var run = function ()  for (var i = 0; i < fn.length; i++) fn[i](); ;
    var d = document;

    if (!ie && !wk && d.addEventListener)
      return d.addEventListener(‘DOMContentLoaded‘, f, false);
    if (fn.push(f) > 1) return;
    if (ie)
      (function () 
        try  d.documentElement.doScroll(‘left‘); run(); 
        catch (err)  setTimeout(arguments.callee, 0); 
      )();
    else if (wk)
      var t = setInterval(function () 
        if (/^(loaded|complete)$/.test(d.readyState))
          clearInterval(t), run();
      , 0);
  
;

以上就是原生JS 实现 dom ready 的方法,接下来是使用:

;(function() 
  baseTools.ready(function() 
    你想实现的代码
  );
)();

 

以上是关于原生JS 实现 dom ready的主要内容,如果未能解决你的问题,请参考以下文章

jQuery学习— jQuery的ready事件和原生JS的load事件的区别

原生js实现jquery ready方法

原生JS实现jquery的ready

原生JS实现的DOM操作笔记(草稿整理)

再谈React.js实现原生js拖拽效果

js和jquery