Заставить Firefox & Edge перезагрузить страницу, если URL имеет хеш-значение - PullRequest
1 голос
/ 08 ноября 2019

Есть ли способ заставить такие браузеры, как FF и Edge, перезагрузить страницу, если URL имеет хеш-значение и пользователь нажимает кнопку Enter в адресной строке (как в Chrome do)? Или, может быть, мы могли бы обработать некоторые JS-события в этом случае?

PS Я не могу использовать load hashchange события, потому что если пользователь дважды нажмет кнопку Enter - hashchange событие не сработает.

PSS Выяснил, что popstate - это событие, которое хорошо работает для MS Edge в таких ситуациях.

1 Ответ

0 голосов
/ 08 ноября 2019

Вы можете попытаться прослушать событие Keydown, если нажать кнопку ввода, используя window.location.hash, чтобы проверить, имеет ли URL-адрес значение хеш-функции, а затем использовать метод location.reload () для перезагрузки веб-страницы.

код, как показано ниже:

    window.addEventListener('hashchange', function () {
        console.log('The hash has changed!')
    }, false);

    window.addEventListener("keydown", function (e) {
        if (e.keyCode == "13") {
            if (window.location.hash) {
                // Fragment exists
                alert("hashed");
                location.reload();
            } else {
                // Fragment doesn't exist
                alert("not exist");
            }
        }
    }, false);
...