簡體   English   中英

我需要幫助來放置函數,以便在呈現DOM之后運行我的代碼

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM