3 回答
TA贡献1865条经验 获得超7个赞
以下JavaScript代码段可让您在给定的时间刷新:
function refreshAt(hours, minutes, seconds) {
var now = new Date();
var then = new Date();
if(now.getHours() > hours ||
(now.getHours() == hours && now.getMinutes() > minutes) ||
now.getHours() == hours && now.getMinutes() == minutes && now.getSeconds() >= seconds) {
then.setDate(now.getDate() + 1);
}
then.setHours(hours);
then.setMinutes(minutes);
then.setSeconds(seconds);
var timeout = (then.getTime() - now.getTime());
setTimeout(function() { window.location.reload(true); }, timeout);
}
然后,您可以添加脚本标签来调用该refreshAt()函数。
refreshAt(15,35,0); //Will refresh the page at 3:35pm
TA贡献1772条经验 获得超8个赞
<META HTTP-EQUIV="Refresh" CONTENT="5">
这将迫使页面每5秒重新加载一次。只需计算正确的时间间隔并将其添加到内容标签即可
TA贡献2051条经验 获得超10个赞
我发现此页面有类似的问题,并用它找出了可能对某些人有用的更具体的答案。对于此项目,我们希望确保一旦发生全球关注的现场活动时页面就会刷新,从而激活嵌入在用户页面上的播放器(我知道狭窄的用例-其他人可能会更好地用于它)。
上述答案中的一个挑战是如何处理时区转换,这对我们来说是一个更大的问题,因为我们要确保页面在特定的日期和时间刷新。为此,我获取了目标日期和今天的日期的UTC版本,将其转换为GMT,然后将Andrew的超时功能设置为两者之间的差值。
var target = new Date("January 28, 2011 13:25:00");
timeOffset = target.getTimezoneOffset() * 60000;
targetTime = target.getTime();
targetUTC = targetTime + timeOffset;
var today = new Date();
todayTime = today.getTime();
todayUTC = todayTime + timeOffset;
refreshTime = (targetUTC - todayUTC);
if (refreshTime > 1) {
setTimeout(function() { window.location.reload(true); }, refreshTime);
}
添加回答
举报