1

我想用 jquery 每秒重新加载一个 url,我尝试如下代码,这个代码只重新加载一次 url。我该怎么办?

<a href="http://myweb.com/" id="thisLink"></a>

setInterval(window.location = $('#thisLink').attr('href'), 1000);

演示:http: //jsfiddle.net/QBMLm/

4

5 回答 5

1

如果它是您的页面,您可以在 head 中使用它:

<meta http-equiv="refresh" content="1;url=/">

当然,这只适用于它嵌入的页面,并且不会继续重新加载其他一些外部站点?

于 2012-10-03T13:18:34.927 回答
1

setInterval在浏览器重新加载之间不是持久的。此外,它需要一个函数作为第一个参数。您可以尝试以下方法:

setTimeout(function() {
    window.location = $('#thisLink').attr('href');
}, 1000);

它会在重定向前等待 1 秒。如果您要重定向到的页面具有相同的代码,它将执行相同的操作。

于 2012-10-03T13:19:12.873 回答
0

一旦你重新加载 url(window.location更改),它的上下文(和范围)就setInterval变得毫无意义(页面被丢弃并加载下一个页面)。然后重新加载并setInterval重新分配脚本。

哦,从语法上讲,该代码是无效的。您可能希望将window.location部分包装在 a 中function(){},例如

setInterval(function(){
  window.location = $('#thisLink').attr('href')
}, 1000);

否则它实际上不是以间隔方式执行,而是立即执行。

于 2012-10-03T13:16:47.330 回答
0

它只重新加载一次,因为一旦你改变window.location你离开你的页面。

您需要在新命名窗口中打开链接或将子页面嵌入iframe。

setInterval(function() {
    window.open($('#thisLink').attr('href'), 'mywindow', '');
});​
于 2012-10-03T13:16:57.060 回答