当前位置:  开发笔记 > 编程语言 > 正文

无法阻止角度应用程序中的浏览器页面刷新/重新加载

如何解决《无法阻止角度应用程序中的浏览器页面刷新/重新加载》经验,为你挑选了1个好方法。

我的网站有angularjs SPA.当用户点击刷新按钮或按F5/Ctrl + F5我要阻止或中止页面重新加载时.不幸的是,解决方案onbeforeunloadonunload事件都不起作用.实际上,它们被调用,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();
}

我怎么能真正处理角度?

UPDATE

我需要这个来重新加载实际状态而不是页面.因此,当用户点击刷新时,我想重新加载当前状态,$stateProvider而不是重新加载整个页面



1> Bruno Krebs..:

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

我为你创造了一个小提琴.

推荐阅读
雯颜哥_135
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有