【问题标题】:Reload page every 5 seconds - external JS每 5 秒重新加载一次页面 - 外部 JS
【发布时间】:2014-10-02 10:52:48
【问题描述】:

好的。我遇到的问题是我只是想为我的网络浏览器(firefox)做一个刷新循环,我想在 JS 中这样做。我知道如果你问我,它可以很容易地用其他语言完成。但是,javascript是必须的! :D 这不是一个 html 页面,只是一个使用 iMacros for Firefox 运行的简单 .js 文件。

这是我正在使用的代码。

            setInterval(refreshPage(), 5000);
            function refreshPage() {
                window.location.reload(1);
            }

window.location.reload(1);刷新页面没有问题:D甜!

但是当我使用 setInterval 或 setTimeout mumbojumbo 时,我总是得到 ReferenceError: setTimeout is not defined...

很奇怪。我用谷歌搜索,所有搜索都返回相同的 setInterval 和相同的 setTimeout 选项......没有人定义任何东西。 o_O 这到底是怎么回事!哈哈

你们中的一个 JS WIZARDS 可以破解这个代码吗?我需要一个 WIZARD 来拯救我 :D

【问题讨论】:

  • 如果“这不是 html 页面”,如何刷新页面?
  • 你得到了下面的答案,你使用了setInterval 错误。你也用错了window.location.reload。该参数是一个布尔值(如果为真,它将强制重新加载),所以正确的做法是location.reload(true); 参见doc。无需指定 window,因为它是全局对象。

标签: javascript refresh settimeout setinterval


【解决方案1】:

你的问题不清楚。您的代码使用了setInterval,但您的错误是关于setTimeout

让我假设您想要并使用setInterval,因为这样更有意义,因为您希望每 5 秒刷新一次页面。

setInterval 函数由浏览器定义。它需要一个函数名作为第一个参数。你传入了一个函数call。 要修复它,只需删除这对括号:

setInterval(refreshPage, 5000);
function refreshPage() {
    window.location.reload(1);
}

【讨论】:

  • 从技术上讲,它是对函数refreshPage(在本例中为undefined,因为它没有返回语句)的调用的结果,它是作为setInterval 的第一个参数。
【解决方案2】:

那是因为你在寻找

window.setInterval(function(){refreshPage()}, 5000);

也可以只调用 cmets 中所述的函数:

window.setInterval(refreshPage, 5000);

【讨论】:

  • "setTimeout is not defined..." 取决于参数如何?
  • 甚至不确定你的意思。他说他尝试使用 setInterval 但它不起作用,那是因为他没有正确使用它。我回答了他提供的代码的问题。
  • 我是说报告的错误发生在间隔回调甚至尝试触发之前。如果没有setTimeout,那你怎么叫都用不了……
  • 我会在 5 分钟内勾选这个作为答案。真是个野兽!
  • 为什么要将函数包装在函数调用中?为什么不直接使用window.setInterval(refreshPage, 5000);?而且由于页面重新加载,使用setInterval 没有意义......最好使用setTimeout
猜你喜欢
  • 2020-01-16
  • 2016-11-17
  • 2020-10-24
  • 2020-03-06
  • 1970-01-01
  • 2016-07-10
  • 1970-01-01
  • 2021-01-04
  • 2013-12-06
相关资源
最近更新 更多