如何防止“重新加载网站”?警报? (角度8,Chrome 75.0)

时间:2019-08-08 00:00:07

标签: angular google-chrome

我需要先运行一段代码,然后用户才能离开或刷新页面。离开工作正常,但刷新的行为完全不同,并且不会触发我的路由后卫,因此我尝试在@HostListener("window:beforeunload", ["$event"])上进行。

unload上运行代码似乎不起作用,我必须这样做beforeunload

但是问题是chrome允许用户取消刷新,然后在我已经调用我的代码后停留。然后我的用户有一个东西,我已经告诉后端他们已经没有了。

"Reload site?

我还没有找到任何证据表明有一种方法可以从此弹出窗口取回值,以了解用户是否确实尝试过留下。

相反,我一直试图尝试阻止此弹出窗口,这也使我陷入困境。我已经尝试了在此找到的所有解决方案,但似乎没有一个解决之道。我想念什么?

    @HostListener("window:beforeunload", ["$event"])
    beforeUnloadHander(event) {
        this.codeINeedToRun();

        //failed attempts to prevent popup =>
        event.preventDefault();
        event.returnValue = null;
        window.onbeforeunload = function () {
            return null;
        };
        event.stopPropagation();
    }

0 个答案:

没有答案