3

我在 blogspot 上使用 Javascript 小部件。它包括一个带有一些 javascripts 的 div,这些 javascripts 从服务器获取一些“非静态”字符串并将它们打印在页面上。直到这里一切正常,问题是我想每隔几秒钟更新一次这个 div 的执行,以便更新字符串,而不刷新整个页面,而只是刷新特定的小部件(div)。我添加了另一个尝试刷新特定 div 的脚本,但我没有运气。请看下面的代码

<div id="info">
<b>Song:</b>
<script type="text/javascript" src="xxxx">
You appear to have javascript turned off.
</script>
<br />
<b>Listeners:</b>
<script type="text/javascript" src="xxxx">
You appear to have javascript turned off.
</script>
<br />
<b>Server Status:</b> 
<img src="xxxxx.gif" alt="Stream status" width="17" height="17" align="absmiddle" />
</div>

刷新脚本:

  <script type="text/javascript">
    window.onload = startInterval;
    function startInterval()
    {
        setInterval("startTime();",5000);
    }

    function startTime()
    {
        document.getElementById('info').innerHTML = ??? // reload div    
    }
  </script>

另外可以使用类似的东西,但是这种方法重新加载整个页面而不是特定的 div。

<script>
setInterval(function() {
    parent.location.reload(true);
}, 5000); 
</script>
4

2 回答 2

5
于 2013-05-19T01:48:57.440 回答
2

这是一个小提琴工作示例,说明我通常如何声明我的设置间隔函数...

这个正在将我的#info div 的内部 html 设置为时间戳,以便您可以看到它是有效的。

在这里用设定的间隔摆弄, 但我认为这个过程还有另一个缺陷......

看起来您正在将 div 的内容更新为与以前完全相同的 html:

    document.getElementById('info').innerHTML = document.getElementById('info').innerHTML;   

这可能是您的问题,您使用的外部脚本可能正在编写 html,您只是在复制它而不是再次运行这些脚本。你想要做的是运行某种 AJAX 调用来重新运行这些脚本。

如果您有兴趣走这条路,您可以使用 jquery 库更轻松地做到这一点。或者为了保持严格的 javascript,我建议从这里开始:

w3 ajax 教程

于 2013-05-19T01:43:41.933 回答