谷歌浏览器扩展如何等待页面完全加载(加载屏幕)

时间:2018-03-30 21:17:35

标签: javascript google-chrome google-chrome-extension

我的Chrome扩展程序试图在页面上使用CSS选择器来获取某些元素。我遇到了一个问题,在这个网站加载异常/连续加载元素之后,它的changeInfo.status已经完成了#34;当我的脚本执行时,它不会从尚未加载的部分中获取信息。这方面的一个例子是具有加载屏幕和具有多个框架的网站的网站。一个可能的解决方案是让用户单击一个按钮来执行脚本,但我想知道是否有另一种方法告诉我的脚本等待页面完全加载,这样它就可以自动提取信息。我想要一个替代解决方案,而不是将allFrames设置为true,因为它不适用于所有具有此问题的网站,我也不觉得我的脚本必须在它遇到的每一帧上运行。我也试过等待加载事件,但这对我没用。

1 个答案:

答案 0 :(得分:0)

因为load事件将在动态内容加载之前触发,所以您将无法使用它。如果您没有内容加载的钩子并想要更“自动化”的东西,您可以使用递归超时功能并定期检查所需内容以在内容存在时加载和操作。

function timeoutFunction() {
  var inputVal = document.getElementById("checkThis").value;
  console.log(inputVal);
  if (inputVal !== "STOP") {
    setTimeout(timeoutFunction, 3000);
    console.log("Keyword not found.");
  } else {
    console.log("Keyword found.");
  }
}

$(function(){setTimeout(timeoutFunction, 3000)});
<span>The function will check every three seconds for the value of this input to be "STOP"</span>
<input id="checkThis">