![](/img/trans.png)
[英]How to make sure my dom manipulating function/code is called after the DOM has been rendered?
[英]I need help to place a function so my code runs after the DOM has been rendered
我有一行代码比DOM运行得更快,因此我需要一个超时功能,但我不知道将其放在哪里。
function testing() {
var newHeadline = document.createElement("h1");
newHeadline.textContent = "Headline";
document.getElementsByClassName("col-sm")[0].insertBefore(newHeadline, document.getElementsByClassName("text-content")[0]);
for (var a = 0; a < 10; a++) {
if (document.getElementsByClassName("form-control")[0] != undefined) {
document.getElementsByClassName("form-control")[0].parentElement.remove();
return true
}
}
}
使用window.onload。 window.onload确保首先加载窗口中的所有内容,包括脚本和图像,然后加载所有内容,然后调用提供的函数。
window.onload=function testing() { var newHeadline = document.createElement("h1"); newHeadline.textContent = "Headline"; document.getElementsByClassName("col-sm")[0].insertBefore(newHeadline, document.getElementsByClassName("text-content")[0]); for (var a = 0; a < 10; a++) { if (document.getElementsByClassName("form-control")[0] != undefined) { document.getElementsByClassName("form-control")[0].parentElement.remove(); return true } } }
如果要等待直到所有HTML都已加载并且解析了JavaScript,请使用DOMContentLoaded
事件;如果也要等待所有图像和样式都已应用,请使用load
事件。
if (document.readyState === "complete") testing();
else addEventListener("DOMContentLoaded", testing);
要么
if (document.readyState === "complete") testing();
else addEventListener("load", testing);
您还可以使用一个空的timeout
,在脚本被解析并运行之后立即运行该函数。
setTimeout(testing, 0);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.