Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Перезагрузить страницу один раз скриптом при первой загрузке страницы (https://javascript.ru/forum/events/83909-perezagruzit-stranicu-odin-raz-skriptom-pri-pervojj-zagruzke-stranicy.html)

Vaska 18.04.2022 19:34

Перезагрузить страницу один раз скриптом при первой загрузке страницы
 
Приветствую!
Применяю такой код, для перезагрузки страницы 1 раз, после первой загрузки страницы в браузере.
if (window.location.href.indexOf("reload")==-1) {
		window.location.replace(window.location.href+"?reload");
	}

Однако, этот код, добавляя в адресную строку ?reload, мешает выполнению поискового запроса, по ключевому слову, на странице поиска, делая поиск ошибочным.
https://mysite.com/Search/index.html?keyword=apple?reload


Можете предложить другой код, который не имеет такого недостатка?

Заранее, спасибо.

рони 18.04.2022 19:41

Vaska,
window.location.reload(true);

Vaska 18.04.2022 20:08

рони,
Нет, это не работает, страница безконечно перезагружается раз, а нужно 1 раз.

Vaska 18.04.2022 20:27

Вот такой вариант нашел в сети и он работает для меня:
/* if my var reload isn't set locally.. in the first time it will be true */
if (!localStorage.getItem("reload")) {
    /* set reload locally and then reload the page */
    localStorage.setItem("reload", "true");
    location.reload();
}
/* after reload clear the localStorage */
else {
    localStorage.removeItem("reload");
    // localStorage.clear(); // an option
}

рони 18.04.2022 20:31

Vaska,
if (!sessionStorage.getItem('reload')) {
        sessionStorage.setItem('reload', 1);
        window.location.reload(true);
    }

Vaska 18.04.2022 20:44

рони,
Ошибся, не там посмотрел.

рони 18.04.2022 20:45

Vaska,
:victory:

Vaska 18.04.2022 20:49

рони,
Нет, страницу не перезагружает.

рони 18.04.2022 21:00

Vaska,
открытая в новой вкладке страница, должна перезагрузится 1раз.

Vaska 18.04.2022 21:05

Дело в том, что этот скрипт должен перезагружать страницу 1 раз, если устарел токен.
Один раз действительно страница перезагружается, но если на странице токен снова устарел и PHP код подсовывает ваш скрипт, чтобы снова перезагрузить страницу, то страница не перезагружается.
Я сначала не понял этого, а потом проверил ещё раз и это обнаружилось.

На одной странице несколько блоков, в которых подсовывается скрипт, чтобы перезагрузить страницу, если токен устарел. Эти блоки подгружает Ajax.


Часовой пояс GMT +3, время: 19:56.