使用js为间隔刷新页面

IT技术 javascript html refresh
2021-03-05 06:45:03

如何使用 javascript 每隔一分钟刷新一个页面。注意:我没有编辑 HTML body 标签的控制/选项(我们通常调用 onload 函数)。

6个回答

只需在页面的任何位置插入此代码:

<script type="text/javascript">
  setTimeout(function(){
    location = ''
  },60000)
</script>
也许你可以做类似的事情 if (location == 'your url') { setTimeout(...,60000) }
2021-04-30 06:45:03
您能否详细说明为什么此代码执行整个页面的重新加载?
2021-04-30 06:45:03
'setTimeout' 函数只调用一次对吗?那么如何以 time0ut 的间隔更新屏幕。
2021-05-03 06:45:03
如果我只想在特定 URL 上进行这项工作怎么办。我问我想在 MediaWiki 网站上为自己在 Special:MyPage/common.js 上使用它,以便仅在我坐在 Special:Watchlist 上等待响应时刷新。
2021-05-13 06:45:03
<script type="text/javascript">
    setTimeout(function () { 
      location.reload();
    }, 60 * 1000);
</script>

setTimeout在指定的毫秒数后重新加载页面,因此60 * 1000 = 1m. 此外,由于页面正在刷新,因此将始终在页面加载时设置超时。

应该将其更改为setTimeout. 并告诉他把它放在页面的代码中,而不是在控制台或其他东西中。
2021-05-09 06:45:03

您不需要在 body 标签中包含代码。只需在下面添加此代码段,无论它在页面中的哪个位置,它都应该可以工作。

<script type="text/javascript">
    setInterval('window.location.reload()', 60000);
</script>

只要您可以在某些地方访问 HTML 并且您的编辑器不会过滤掉标签,您就应该没问题。如果您的编辑器有一个单独的 JavaScript 代码区域,那么只需输入 setInterval 行。:)

事情是这样的! (第 4 点是针对这个特定问题的)

1)。如果你想一遍又一遍地重新加载相同的窗口,那么只需执行
window.location.reload()

2)。如果你想从服务器硬重新加载然后执行
window.location.reload(true)
(基本上,只需将true布尔参数传递给同一行代码)

3)。如果您想在超时的情况下执行与第 1 点和第 2 点相同的工作。即在一段时间后执行重新加载,然后执行
setTimeout("window.location.reload()",10000);
(这应该在 10 秒后在窗口上执行。只是一次)

4)。如果您想在某个超时时间内继续重新加载窗口,请执行
setInterval("window.location.reload()",10000);

(这应该在 10 秒后在窗口上执行。间隔为 10 秒)


当然,有很多方法可以传递回调......
setInterval(function(){window.location.reload();},10000);
或者
<code>
function call1(){
  location.reload(true);
}
setInterval(call1,10000);
</code>

注意:
-查看 [setTimeout][1] 和 [setInterval][2] 函数的 MDN 指南。
- 使用window对象是可选的,但很好用。(window 是一个全局对象,并且已经可用于您当前的窗口。)

如果您不想编辑页面,这就是诀窍。打开控制台并编写下面提到的代码段。

INTERVAL = 5    // seconds
STOP_AFTER = 15 // seconds

// Open the same link in the new tab
win1 = window.open(location.href);

// At every 5 seconds, reload the page
timer1 = setInterval(() => {
    win1.location.reload();
    console.log("Refreshed");
},INTERVAL*1000)

// Stop reloading after 15 seconds
setTimeout(() => clearInterval(timer1), STOP_AFTER*1000)
  1. 既然你想重新加载它,你不能简单地写 location.reload() 因为一旦重新加载控制台就会被清除。
  2. 因此,它将打开一个具有相同链接的新选项卡。使用第一个选项卡的控制台可以轻松控制第二个选项卡。