Как я могу автоматически изменить страницу в Javascript? - PullRequest
0 голосов
/ 03 октября 2018

Попытка получить код для автоматического изменения страницы с помощью setTimeout, но я не получаю его на работу.

setTimeout()(page3, 500);

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

Вот так выглядит мой код прямо сейчас, но я подозреваю, что этого недостаточно.Кто-нибудь знает, чего не хватает?

Ответы [ 3 ]

0 голосов
/ 03 октября 2018

setTimout нужен определенный синтаксис для работы, ознакомьтесь с лучшей документацией по JavaScript от Mozilla: 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")
0 голосов
/ 03 октября 2018

В предоставленном фрагменте кода есть 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);
0 голосов
/ 03 октября 2018

попробуйте это

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

setTimeout(page3, 500);
...