繁体   English   中英

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

[英]using javascript setTimeout to see if div has loaded

我正在使用动态脚本标签和 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
}

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

根据评论编辑,忘记分配间隔,所以它确实永远不会清除。

你在使用 iframe 吗?

如果是这样,请尝试

document.getElementById('YOUR_IFRAME_ID').contentWindow.document.getElementById('remote_div')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM