Событие hashchange окна в Internet Explorer не вызывается - PullRequest
0 голосов
/ 11 июня 2018

у меня есть простая функция на javascript, где, если позиция окна основана на хэштеге url, поэтому после того, как документ готов, я выполняю свою функцию в обычном режиме, также я добавляю событие hashchange, где я вызываю ту же функцию.

Все работает, как и ожидалось, за исключением Internet Explorer, если пользователь нажимает ввод в адресной строке без изменения хеша (если он меняет его работает), то функция не выполняется, любая идея, как отловить событие, которое пользователь нажалвойти в тот же URL с тем же хэштегом?

1 Ответ

0 голосов
/ 11 июня 2018

Когда пользователь нажимает ввод в строке URL, он загружает страницу, даже если адрес не был изменен.Итак, в вашем случае это просто обновит страницу.

Для захвата этого события вы можете использовать событие onbeforeunload javascript.Это событие дает вам возможность определить тип навигации.Используйте event.currentTarget.performance.navigation.type, чтобы определить тип навигации.Это работает в IE, FF и Chrome.

function CallbackFunction(event) {
    if (event.currentTarget.performance.navigation.type == 1) {
        console.log("refreshing page");
    }
}

document.onbeforeunload = CallbackFunction;

Надеюсь, это помогло вам !!

...