每分钟重新加载页面的Greasemonkey脚本

5
如何每60秒重新加载页面?
我的尝试:
setTimeout (location.reload, 1 * 60 * 60);

我不确定那些数字的含义,也不知道如何将它们调整为仅在60秒后重新加载。

3个回答

17
setTimeout(function(){ location.reload(); }, 60*1000);
您需要将完整的函数作为第一个参数传递,第二个参数是毫秒级时间。因此在您的情况下,应该是60 * 1000。

那么,5秒就是5 * 1000吗? - Hiya
2
是的,正确的!它是毫秒级的延迟。因此,5000表示5秒。 - Aryess
对于300秒,我可以简单地执行300*1000吗?(我被文档搞糊涂了) - Hiya
是的,你可以。就像我说的一样,它是以毫秒为单位的时间。 - Aryess

10

你可以给出一个函数名,因为它是可调用的,但是location.reloadlocation对象的一个方法。虽然它是可调用的,但当它被计时器执行时,this上下文将不是location对象,这个事实会导致错误。

解决方案有:
像已接受答案中描述的那样编写一个简单的匿名函数包装器或
创建一个绑定到location作为其this上下文的reload方法的绑定函数:

setTimeout(location.reload.bind(location), 60000);

如果可以的话,我会收藏这个答案。那个特定的故障困扰了我很长时间,虽然我已经绕过它了,但能够连接点并弄清楚为什么会发生这种情况真是太好了。 - Nathan Tuggy

1

查看文档可能会对你有所帮助。setTimeout函数的参数是执行的动作和发生这个动作的毫秒数。 1 * 60 * 60 是3600毫秒或3.6秒。60秒的时间跨度将是60000。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接