No se puede evitar la actualización / recarga de la página del browser en aplicaciones angulares

Tengo mi sitio con angularjs SPA. Cuando el usuario hace clic en el button de actualización o presiona F5 / Ctrl + F5 para evitar o cancela la recarga de la página. Desafortunadamente, la solución con events onunload onbeforeunload y de la onunload no funciona. En realidad, se llaman, se event.preventDefault() línea event.preventDefault() , hay posts en la console, pero el browser continúa cargando la página.

Mi código actual del module .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 registenetworking $window.onbeforeunload = (event) => { event.preventDefault(); } $window.onunload = (event) => { event.preventDefault(); } 

¿Cómo puedo manejar esto en angular?

ACTUALIZAR

Necesito esto para volver a cargar el estado actual en lugar de la página. Entonces, cuando el usuario click actualizar, quiero simplemente recargar el estado actual con $stateProvider y no volver a cargar toda la página

Echa un vistazo a lo que Mozilla tiene que decir sobre los events de descarga . Parece que no es posible evitar una actualización como lo desea. Lo único que puedes hacer es preguntar al usuario si realmente quiere abandonar la página.

Supongo que puede volver a cargar el estado actual en el caso de que el usuario responda que no desea abandonar la página actual.

 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???'; } 

He creado un violín para ti .