javascript - 使用 javascript setTimeout 来查看 div 是否已加载

标签 javascript json dynamic scripting settimeout

我正在使用动态脚本标签和 JSON 加载远程数据。我在网站上显示的远程页面中有一个 div,我用它来加载内容。

问题是 javascript 函数在页面加载时看不到 div,因为它是远程数据。如果我设置大约 300 的超时,它通常会起作用,并且我的 javascript 可以看到 div。但有时需要更长的时间并且会破坏 JavaScript。

我正在尝试这个:

function load_content() {
  if (document.getElementById('remote_div') == null) {
    setTimeout('load_content()', 300);
  } else {
    document.getElementById('remote_div').innerHTML = 'Content goes here'
  }
}

但它就是行不通。我做错了什么?

最佳答案

您可能想使用 setInterval 来执行此操作。像这样的东西:

var intrval = setInterval( function(){
  if(document.getElementById('remote_div')) {
      load_content();
       clearInterval(intrval);
 }, 50);

function load_content() {
   //loading content here
}

这样您就不必估计加载时间。当在 DOM 树中找到 div#remote_div 时,将执行 load_content。

根据评论进行编辑,忘记指定间隔,所以确实不清楚。

关于javascript - 使用 javascript setTimeout 来查看 div 是否已加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2680734/

相关文章:

javascript - Chrome 的 Bootstrap 日期选择器问题

java - 如何将 token 添加到 HttpPost Json 消息

javascript - JSON.解析得到 "Uncaught SyntaxError: Unexpected token h"

sql - 查询一个表以及表中存储的列名

jsf - 如何在 p :tabView component 中动态添加和删除选项卡

javascript - 使用 Owl Carousel 将 slider 的滚动设置为仅 4 个元素?

javascript - 使用 Flask 在 Javascript 上提供 json 数据

javascript - 用另一个对象的细节填充对象

java - Jackson 将 YAML 文件反序列化为 Map(没有自定义反序列化器)

C++在函数中分配动态内存 - 新手问题