Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как задать SetTimeout при переходе по ссылке (https://javascript.ru/forum/misc/84367-kak-zadat-settimeout-pri-perekhode-po-ssylke.html)

Vlad Vladyslav 19.08.2022 23:51

Как задать SetTimeout при переходе по ссылке
 
Здравствуйте, есть меню на сайте написанное на хтмл
<ul id="info" class="info">
            <li><a href="example.com"</a>Example</li>
            <li><a href="example.com">Example</a></li>
</li></ul>

Вопрос. как при переходе по разным ссылкам из меню задать время чтобы переходило не сразу а например через 2сек. Спасибо

Aetae 20.08.2022 00:13

Условно - так:
addEventListener('click', event => {
  event.preventDefault();

  const { href } = event.target;
  
  setTimeout(() => {
    location.href = href;
  }, 2 * 1000);
})

Всякие проверки и побочные действия сам добавишь.

voraa 20.08.2022 09:41

А если пользователь клавиатурой работает?
А если кликает правой клавишей, что бы получить меню, а потом решает никуда не переходить?
А если средней клавишей, что бы гарантированно открыть в новой вкладке?

Там не просто все с переходами по ссылкам.

Aetae 20.08.2022 15:40

voraa,
Цитата:

Всякие проверки и побочные действия сам добавишь.
:)
С открытием через контекстное меню конечно ничего не поделаешь, а остальное кое-как имитировать можно.
Ну и переход по ссылке по нажатию enter - триггерит onclick, так с древних времён заведено, как раз из-за тех, кто не парился за доступность.)

Vlasenko Fedor 21.08.2022 16:36

Можно подписаться на событие beforeunload запустить таймер и далее сделать переход

Aetae 21.08.2022 17:52

Vlasenko Fedor, не, низя. Там очень ограничено то что ты можешь делать с этим событием.

Vlasenko Fedor 21.08.2022 18:48

Aetae,
да ты прав, ограничено :)


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