跨浏览器无依赖 DOM 就绪

Avatar of Chris Coyier
Chris Coyier

Denis Ciccale 的 版本

var DOMReady = function(a, b, c) {
  b = document
  c = 'addEventListener'
  b[c] ? b[c]('DocumentContentLoaded', a) : window.attachEvent('onload', a)
}
    
DOMReady(function () {
  alert('The DOM is Ready!');
});

最小化

var DOMReady = function(a,b,c){b=document,c='addEventListener';b[c]?b[c]('DOMContentLoaded',a):window.attachEvent('onload',a)}

Dustin Diaz 的 版本

function r(f){/in/.test(document.readyState)?setTimeout('r('+f+')',9):f()}

他还有一个代码库,其中的代码 略有不同(并且看起来更新),所以你可能想尝试一下,尽管我发现上面这个版本本身已经相当有效了。他的 0.3.0 分支 是 IE 6-7-8 所必需的。


原生 DOM 函数是

document.addEventListener('DOMContentLoaded', function() {

});

如果你只希望支持 支持该功能的浏览器,那么这将是一个不错的选择。