Предотвратить многократные клики назад на обновленной странице - PullRequest
0 голосов
/ 02 июля 2018

Я перешел на предыдущую страницу с помощью метода window.history.go (), который работает.

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

Итак, как предотвратить повторное нажатие кнопки «Назад» при первом нажатии?

Нашел эту статью с помощью методов history.pushState() и window.onpopevent(): https://www.safaribooksonline.com/library/view/javascript-cookbook/9781449390211/ch20s04.html, это может быть решением?

А как реализовать в моем коде?

Код

HTML:

<div id="goToPreviousPage">
   <a href="#"></a>
</div>

JS:

const goBackButton = document.querySelector("#goToPreviousPage");

goBackButton.onclick = function(e) {
   window.history.go(-2);
}

Используя метод window.onbeforeunload, кнопка «Назад» работала после перезагрузки страницы, но в нормальном состоянии без перезагрузки страницы кнопка «Назад» больше не может перемещаться:

goBackButton.onclick = function(e) {
   window.onbeforeunload = function(event)
      {
        return confirm("Confirm refresh");
      }; 
   window.history.go(-4);
}

Есть предложения?

1 Ответ

0 голосов
/ 02 июля 2018

Я думаю, что проблема в том, что ваш href = "#" добавляет текущую страницу в историю при нажатии. Попробуйте добавить следующее в свою функцию, чтобы предотвратить поведение вашей ссылки по умолчанию.

e.preventDefault()
...