0

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

但它只是不起作用。我究竟做错了什么?

4

2 回答 2

3

您可能希望使用 setInterval 来执行此操作。就像是:

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

function load_content() {
   //loading content here
}

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

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

于 2010-04-21T06:46:29.957 回答
0

你在使用 iframe 吗?

如果是这样,请尝试

document.getElementById('YOUR_IFRAME_ID').contentWindow.document.getElementById('remote_div')
于 2010-04-21T09:56:18.913 回答