我一直在寻找最简单的方法来自动刷新页面上的特定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部分时它只是什么都没有,我想哈哈!
答案 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();
});
注意,我也在这里使用jsFiddle的echo/html/
功能。 data
变量已调整为使用此变量以进行演示。实际上,与请求一起发送的data
是GET
或POST
变量,就像您正常使用一样。此外,我不在response
中使用success
,但那是因为它在jsFiddle的演示模式中没有返回任何内容。
jQuery make这个东西很简单。真的,我会考虑使用它而不是大多数其他方法(尽管有要求)。