2

我一直在寻找最简单的方法来刷新页面上的特定 div,每隔 x 秒自动刷新一次。

到目前为止,我有:

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

function startTime()
{
    document.getElementById('time').innerHTML = Date();
}

然而,innerHTML 设置为日期函数的最后一部分是我希望用“时间”ID 的内容代替,而不是实际的日期打印。

我知道我可以加载 iframe 或 externa html 页面,但我想简单地调用页面上的现有 div 而不必更改现有内容。那可能吗?

谢谢!

编辑:我的意思是我在页面上有一个看起来像这样的 div:

一些东西

我希望该 div 每 x 秒刷新一次,所以是的,您可以忽略我示例中的 Date() 部分,我只是按原样找到了该代码,但是当我尝试删除 .innerHTML 部分时,它什么也没做,我想想哈哈!

4

2 回答 2

3

你在寻找这样的东西吗?

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

function startTime() {
    var now = new Date();
    document.getElementById('time').innerHTML = now.getHours() + ":" + now.getMinutes() + ":" +now.getSeconds();
}
</script>
于 2012-05-28T20:32:44.537 回答
1

注意: OP 实际上是想在页面上已经包含的广告服务中重新加载脚本。以下内容对此无济于事;但是,由于提出问题的方式,我将留下这个答案,因为我认为它可以帮助其他人寻找以下类型的解决方案。请注意,这并没有演示如何“重新运行”已经包含的(可能是全局的和非函数式的)代码。


假设我有以下div要动态刷新的内容:

<div id="refresh">Refreshes...</div>

jQuery 提供了一$.ajax组函数,允许您动态请求页面并将响应用作 HTML。例如:

$(document).ready(function(){
    var $refresh = $('#refresh'),
        loaded = 1,
        data = {
            html: $.toJSON({
                text: 'some text',
                object: {}
            }),
            delay: 3
        };

    var refresh = function(){
        $.ajax({
            url: "/echo/html/",
            data: data,
            type: "GET",
            success: function(response) {
                $refresh.html($refresh.html() + '<br/>#' + loaded);
                loaded++;
                setTimeout(refresh, 3000);
            }
        });
    };

    refresh();
});

http://jsfiddle.net/Ah3jS/

注意,我在echo/html/这里也使用了 jsFiddle 的功能。出于演示目的,该data变量已调整为与此一起使用。实际上,data与请求一起发送的要么是GETPOST正常使用的变量,要么是变量。另外,我使用responsein success,但那是因为它在 jsFiddle 的演示模式下不返回任何内容。

jQuery 使这些东西变得非常容易。真的,我会考虑使用它而不是大多数其他方法(尽管有要求)。

于 2012-05-28T21:39:00.150 回答