Не удается предотвратить обновление/перезагрузку страницы браузера в angular application
у меня есть свой сайт с angularjs SPA. Когда пользователь нажимает кнопку обновления или нажимает F5 / Ctrl + F5, чтобы предотвратить или прервать перезагрузку страницы. К сожалению, решение onbeforeunload
и onunload
событий не работают. На самом деле, они называются event.preventDefault()
строка достигнута, есть какие-либо сообщения в консоли, но браузер продолжает загружать страницу.
мой текущий модуль .run()
код:
let window = angular.element($window);
window.on("beforeunload", (event) => {
event.preventDefault();
}).on("unload", (event) => {
event.preventDefault();
});
// This is just for sure that I have my handlers registered
$window.onbeforeunload = (event) => {
event.preventDefault();
}
$window.onunload = (event) => {
event.preventDefault();
}
как я могу справиться с этим в угловатый?
обновление
мне нужно это для перезагрузки фактического состояния вместо страницы. Поэтому, когда пользователь нажимает обновить, я хочу просто перезагрузить текущее состояние с $stateProvider
и не перезагружать всю страницу
1 ответов
проверить, что Mozilla должна сказать о событиях разгрузки. Похоже, что невозможно предотвратить обновление, как вы хотите. Единственное, что вы можете сделать, это спросить пользователя, действительно ли он хочет покинуть страницу.
Я думаю, вы можете перезагрузить текущее состояние в случае, если пользователь отвечает, что он не хочет покидать текущую страницу.
window.onbeforeunload = function(event) {
// do some stuff here, like reloading your current state
//this would work only if the user chooses not to leave the page
return 'why would you do that???';
}
Я создал скрипка для вас.