【问题标题】:How can I automatically change a page in Javascript?如何在 Javascript 中自动更改页面?
【发布时间】:2018-10-03 12:33:47
【问题描述】:

试图让代码使用 setTimeout 自动更改页面,但我没有让它工作。

setTimeout()(page3, 500);

function page3() {
  changepage3('automatic')
}

这就是我的代码现在的样子,但我怀疑这还不够。有谁知道缺少什么?

【问题讨论】:

  • 去掉第一个(),应该是setTimeout(page3, 500)。如果 JS 代码没有按预期运行,请按 F12 检查控制台。您很可能需要调试一个错误。另请注意,每 0.5 秒刷新一次内容似乎太快了。

标签: javascript jquery html css settimeout


【解决方案1】:

试试这个

function page3() {
  changepage3('automatic') 
}

setTimeout(page3, 500);

【讨论】:

【解决方案2】:

setTimout 需要特定的语法才能工作,请查看 Mozilla 的最佳 JavaScript 文档:https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setTimeout#Syntax

这是一个例子

saySomethingAfter(5);

function saySomethingAfter(second) {
    setTimeout(saySomething, second * 1000);
}

function saySomething() {
    console.log("Something");
}

您的问题是“如何在 Javascript 中自动更改页面?”使用setTimeout。我们来分析一下需求:


function changePage(url) {
  window.open(url, "_self");
}

function changePageAfter5sec(url) {
  setTimeout(function() {
    changePage(url)
  }, 5000);
}

changePageAfter5sec("https://stackoverflow.com")

另一种使用漂亮的函数式 JavaScript 的方式:

function changePage(url) {
  return () => {
    window.open(url, "_self");
  }
}

function changePageAfter(second) {
  return (url) => {
    setTimeout(changePage(url), second*1000);
  }
}

const changePageAfter5sec = changePageAfter(5);

changePageAfter5sec("https://stackoverflow.com")

【讨论】:

    【解决方案3】:

    你提供的sn-p代码有2个主要问题:

    1. 这不是正确的 setTimeout() 语法 - 因此它实际上不起作用。
    2. 即使它确实有效,它也会调用 1 个使用另一个不存在的函数的函数,从而破坏代码。

    修复问题 1:

    window.setTimeout(changePage, 5000);

    现在我们有一个运行超时,它将在启动后(通常)触发 5000 毫秒。 所以让我们解决问题2,让changepage()调用一个实际正确的url打开函数:

    function changePage(){
        window.open(urlOfPage3);
    }
    

    最后是一个更简单的版本,在 setTimeout 中有一个匿名回调函数:

    window.setTimeout(function(){
        window.open(urlOfPage3);
    }, 5000);
    

    【讨论】:

      猜你喜欢
      • 2016-11-02
      • 1970-01-01
      • 2019-08-15
      • 2019-04-25
      • 1970-01-01
      • 1970-01-01
      • 2017-12-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多