使用javascript自动刷新div

时间:2012-05-28 20:27:35

标签: javascript reload

我一直在寻找最简单的方法来自动刷新页面上的特定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:

 有些东西

我希望每隔x秒刷新一次div,所以是的,您可以忽略我的示例中的Date()部分,我只是发现代码不行,但是当我尝试删除.innerHTML部分时它只是什么都没有,我想哈哈!

2 个答案:

答案 0 :(得分:1)

你在找这样的东西吗?

<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>

答案 1 :(得分:1)

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


说我有以下div我想动态刷新:

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

jQuery提供$.ajax group of functions,允许您动态请求页面并将响应用作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/

注意,我也在这里使用jsFiddle的echo/html/功能。 data变量已调整为使用此变量以进行演示。实际上,与请求一起发送的dataGETPOST变量,就像您正常使用一样。此外,我response中使用success,但那是因为它在jsFiddle的演示模式中没有返回任何内容。

jQuery make这个东西很简单。真的,我会考虑使用它而不是大多数其他方法(尽管有要求)。