[英]How do I check when the HTML component of the DOM has loaded without using a JavaScript library?
我想检测<body>
元素何时完成从外部脚本加载到 DOM 中而不使用外部 JavaScript 库。 我不想使用document.ready
或window.onload
因为它们在整个 DOM(包括所有外部文件)完成加载之前不会触发。
对于现代浏览器使用
window.addEventListener('DOMContentLoaded', function() {
// dom is ready
}, false);
对于 IE8 使用
window.onload = function() {
// dom is ready
};
为什么不将脚本放在结束正文标记的正上方
<body>
..
....
....
<script type="text/javascript".....
</script>
</body>
这可以确保所有内容都已加载
回应评论
将此代码放在文档的开头
对于 IE8 和更早版本的 IE
window.onload= function() {
var script=document.createElement("script");
script.src=url; // here use the url of the script
document.body.appendChild(script);
};
为他人
window.attachEventListener("DOMContentLoaded",function() {
var script=document.createElement("script");
script.src=url; // here use the url of the script
document.body.appendChild(script);
},false);
这是一个适用于所有浏览器的简单解决方案:
在 HTML 中的</body>
标记上方插入以下代码:
<script type="text/javascript"> try { ONLOAD() } catch(e) { ONLOADq=1 } </script> MINIFIED: <script type="text/javascript">try{ONLOAD()}catch(e){ONLOADq=1}</script>
将此代码插入外部 javascript:
if ( typeof ONLOADq === 'number') { ONLOAD() };
将需要在页面加载时运行的外部 javscript 中的所有代码放入名为ONLOAD
的 function 中。 例如:
function ONLOAD() { document.body.appendChild(ST1) };
第一部分涵盖外部 javascript 在 HTML 之前完成加载的实例,第二部分则反之亦然。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.