我曾经使用 window.performance.navigation.type
来判断用户是否通过在上一页点击后退按钮返回的。
if (window.performance.navigation.type === 2) {
window.location.reload()
}
我看到这个属性已经被弃用,被 Navigation Timing Level 2 取代。如何使用它来模拟 performance.navigation api 的行为?
我曾经使用 window.performance.navigation.type
来判断用户是否通过在上一页点击后退按钮返回的。
if (window.performance.navigation.type === 2) {
window.location.reload()
}
我看到这个属性已经被弃用,被 Navigation Timing Level 2 取代。如何使用它来模拟 performance.navigation api 的行为?
首先声明,我不是JavaScript专家。这是我使用导航定时 Level 2的方法。
if (String(window.performance.getEntriesByType("navigation")[0].type) === "back_forward") {
window.location.reload()
}
window.performance.getEntriesByType("navigation")
返回每个设置的标记点(mark)的 PerformanceEntry 对象列表。如果您没有设置任何标记,则此列表包含一个对象,其中包含窗口的导航信息。
window.performance.navigation.type已被弃用。
以下是我对Typescript和Angular的解决方案(将其放置在app.component.ts
中的ngOnInit()
钩子上):
if((window.performance.getEntries()[0] as PerformanceNavigationTiming).type === 'reload'){
this.router.navigateByUrl('/');
}