原生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篇) - 精确运算


下一篇:YUM仓库服务