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

时间:2010-04-21 06:19:46

标签: javascript json dynamic scripting settimeout

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

问题是javascript函数在页面加载时看不到div,因为它是远程数据。如果我设置一个大约300的超时,它通常工作,我的javascipt可以看到div。但有时需要更长的时间才能打破javascript。

我想这个:

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

但它似乎没有用......它有什么问题?

2 个答案:

答案 0 :(得分:3)

您可能希望使用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。

根据评论编辑,忘了分配间隔,所以它确实不会清楚。

答案 1 :(得分:0)

您使用的是iframe吗?

如果是,请尝试

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