gpt4 book ai didi

javascript - 如何知道页面是否已关闭/刷新/'go back'在 Angular 2+中被按下

转载 作者:行者123 更新时间:2023-12-03 02:53:26 25 4
gpt4 key购买 nike

我正在尝试使用函数 window.addEventListener('beforeunload', function (event) {...}在函数中,我想知道哪个操作触发了监听器。

我尝试使用此方法但没有成功:

window.addEventListener('beforeunload', function (event) {
if (performance.navigation.type == 1) {
document.write('Window was refreshed!');
}
else {
document.write('Window was closed!');
}
});

任何操作(刷新/关闭/“返回”)都会触发else部分...我做错了什么?

替代方法也将受到赞赏。

最佳答案

嗯,由于 peformance.navigation 的工作方式,您总是会触发 else 处理程序。即使您将其编写在 beforeunload 处理程序中,它仍然在您的当前文档上运行,而不是您正在加载的文档,因此它将输出 PerformanceNavigation 对象,其中包含有关您如何打开当前页面(而不是您尝试导航到的页面)的信息。

至于您问题中关于检测用户用于离开页面的任何方法的部分,我认为目前这是不可能的,除非使用“肮脏”黑客/解决方法(检测用户单击了哪个按钮,检测键盘事件等)

关于javascript - 如何知道页面是否已关闭/刷新/'go back'在 Angular 2+中被按下,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47737635/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com