window.performance.navigation.type
时间: 2023-04-20 15:01:37 浏览: 79
window.performance.navigation.type是一个JavaScript属性,用于获取页面的导航类型。它返回一个整数,表示页面是通过何种方式加载的,包括以下几种类型:
- 0:页面通过链接、地址栏或书签加载。
- 1:页面通过重新加载按钮或location.reload()方法加载。
- 2:页面通过前进或后退按钮加载。
- 255:页面是通过其他方式加载的,例如通过iframe或JavaScript代码。
通过使用window.performance.navigation.type属性,可以了解页面是如何加载的,从而更好地优化页面性能和用户体验。
相关问题
js怎么区分提交表单时的reload和普通开始打开页面
在JavaScript中,可以使用window.performance.navigation.type属性来区分提交表单时的reload和普通开始打开页面。这个属性返回一个数字,表示页面是如何加载的。下面是一些可能的值:
- 0: 此页面是通过单击链接、书签、输入网址等方式打开的,而不是通过重新加载或提交表单。
- 1: 此页面是通过重新加载按钮或JavaScript location.reload()方法重新加载的。
- 2: 此页面是通过提交表单的方式加载的。
- 255: 浏览器无法确定页面是如何加载的,通常是因为页面是从缓存中加载的。
因此,如果你想区分提交表单时的reload和普通开始打开页面,可以使用以下代码:
```
if (window.performance && window.performance.navigation.type === 2) {
// 这是通过提交表单加载的页面
} else {
// 这是普通开始打开的页面或重新加载的页面
}
```
请注意,window.performance.navigation.type属性可能不会在所有浏览器中都可用。
onbeforeunload判断是关闭还是刷新
`onbeforeunload` 事件在页面关闭或刷新时触发,可以用来执行一些清理工作或者提示用户保存未保存的数据。在这个事件中,可以通过 `event.currentTarget.performance.navigation.type` 属性来判断是关闭还是刷新页面。
当用户点击关闭按钮或者使用快捷键关闭页面时,`performance.navigation.type` 的值为 `1`;而当用户使用 F5 或者点击浏览器的刷新按钮时,`performance.navigation.type` 的值为 `0`。
以下是示例代码:
```javascript
window.addEventListener('beforeunload', function(event) {
if (event.currentTarget.performance.navigation.type === 1) {
console.log('用户关闭了页面');
} else if (event.currentTarget.performance.navigation.type === 0) {
console.log('用户刷新了页面');
}
});
```