chrome扩展javascript中的循环使页面无法加载

chrome扩展javascript中的循环使页面无法加载,javascript,loops,google-chrome,Javascript,Loops,Google Chrome,我只是想在脚本运行之前设置一个条件,所以我决定在代码运行之前运行这个循环,但是网站不想加载它: s =document.documentElement.innerText.split(",")[5] while (s != " 2021 - June 25"){ s =document.documentElement.innerText.split(",")[5] } 它检查字符串是否正确,以便运行完整脚本。我这样做是因为网站

我只是想在脚本运行之前设置一个条件,所以我决定在代码运行之前运行这个循环,但是网站不想加载它:

s =document.documentElement.innerText.split(",")[5]
while (s != " 2021 - June 25"){
    s =document.documentElement.innerText.split(",")[5]
}
它检查字符串是否正确,以便运行完整脚本。我这样做是因为网站有动态内容和负载在2倍。希望你能理解我。 网站为:


谢谢。

您可以使用以下技巧:

  • 设置以检查图像DOM元素并向其添加事件侦听器
  • 事件侦听器应该等待映像加载,然后您可以执行操作
  • 我们选择图像是因为它们加载速度慢。尝试找出任何图像的类/id(不应是动态的)

    var checkInterval = setInterval(()=>{
    if(document.querySelector('.slowImageClass')!=null){
    document.querySelector('.slowImageClass').addEventListener('load', () => {
       clearInterval(checkInterval ); //To stop the loop
       //Your actions
    
    });
    }
    },300  /**  time in milliseconds        **/);
    
    

    事件仅适用于少数DOM元素类型。图像就是其中之一。

    在最坏的情况下,如果您真的需要检查此use setTimeout而不是for Loop,这是否回答了您的问题?看起来您试图做的是造成一个无限循环。while条件将始终为真,并且这种情况将继续发生。没有别的办法了。谢谢你的回答。但在屏幕上显示之前,它会显示为null吗?它们不能出现在html代码中,但不能出现在屏幕上吗?我可以对另一个类(比如字符串)执行同样的操作吗?Load用于加载图像。当它们位于DOM(HTML代码)中时,if条件变为true。当图像被实际加载时,事件处理程序被执行。好的,谢谢你,在我检查图片元素并获取类名时,我试图在网站中使用它。document.querySelector('hero-image--image wrapper ng scope')在控制台中总是返回null,这正常吗?别忘了类前面的“.”。如果它是一个id,那么对于您必须使用的多个类,它就是“#”。比如->document.querySelector('.hero-image-image.animated');