gpt4 book ai didi

javascript - 意外的 performace.navigation.type onbeforeunload

转载 作者:行者123 更新时间:2023-11-29 18:00:19 26 4
gpt4 key购买 nike

我正在尝试在卸载之前处理一些逻辑,但我不希望在用户重新加载页面或返回时运行该逻辑。

我已经设置了这样的东西。

window.onbeforeunload = function(e) {
if(window.event && window.event.clientX){ //IE
//some logic
} else if (e.currentTarget.performance.navigation.type === e.currentTarget.performance.navigation.TYPE_RELOAD) {
// another logic
} else if(e.currentTarget.performance.navigation.type === e.currentTarget.performance.navigation.TYPE_BACK_FORWARD){
// yet another logic
}
}

我有其他代码来处理刷新等来自键盘输入的代码,似乎一切正常。现在我关心的是这段代码。由于某种原因,在第一个重新加载或后退按钮上,navigation.type 返回为 0,但之后所有其他重新加载或后退按钮都会在 navigation.type 中填充正确的值。即使在 IE 中,第一次重新加载时也没有正确设置某些内容(不确定是鼠标位置还是什么)。是什么导致了这样的事情?

最佳答案

首先,我想你想写的是e.currentTarget.performance.navigation.type(不是e.current.performance.navigation.type) ,这与编写 window.performance.navigation.type 相同。此变量告诉您​​此页面是如何导航到的,而不是页面退出的导航类型。

为什么第一次得到performance.navigation.type0(performance.navigation.TYPE_NAVIGATE)是页面第一次通过直接导航加载。后续重新加载会将 performance.navigation.type 设置为 1 (performance.navigation.TYPE_RELOAD),因为该页面现在加载/em> 正在重新加载。因此,您获取的是用于加载页面的方法,而不是用户用于退出页面的方法。

关于javascript - 意外的 performace.navigation.type onbeforeunload,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35468281/

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