我正在尝试延迟加载javascript,但无法使其可靠运行.我的页面加载非常快,我想保持这种状态,因此我不会使用超时来延迟加载.除了document.readyState外,如何确保DOM真正准备好进行修改?
方法一:
poll readyState
createElement script
src = url
appendElement to head
结果:
IE8: always aborts
FF3: loads first time, aborts every
otherChrome: loads first time, aborts every
other
方法II:(lazyload包含在head标签中)
- load with lazyload
结果:
IE8: always aborts
FF3: works
Chrome: loads first time, aborts every
other
解决方法:
如果您将< script>标签在< / body>上方标签,您可以使用DOM进行大多数操作,而不会引起任何错误,即< script>标签通常可以修改.
但是,如果您正在寻找更健壮的解决方案,则可以通过检查主要库如何检测DOM是否准备就绪来取得一些进展,这是入门(jQuery):http://github.com/jquery/jquery/blob/master/src/core.js#L393