【发布时间】:2018-04-09 10:43:00
【问题描述】:
我已经在 vue 路由器路由使用的组件的创建钩子上注册了 'beforeunload' 事件。
我想调用此事件处理程序,以便在浏览器选项卡关闭或浏览器选项卡刷新或浏览器关闭时删除用户。
在组件A上
created (){
window.addEventListener('beforeunload', () => {
this.removeUser()
return null
})
}
同样在 ComponentB 上
created (){
window.addEventListener('beforeunload', () => {
this.removeUser()
return null
})
}
还有我的 router.js
{
path: '/staff/call/:session_key',
name: 'Staff Call',
component: ComponentA,
meta: {auth: true}
},
{
path: '/consumer/call/:session_key',
name: 'Consumer Call',
component: ComponentB
},
这里的“beforeunload”事件处理程序是随机触发的。有时它会被触发,有时不会。我计算在触发时和未触发时找到任何模式。
我在这里缺少什么?
【问题讨论】:
-
您是否在单个浏览器中看到了这种随机性?还是不同的浏览器类型/操作系统?请参阅this browser compatibility page 以查看您是否在使用不支持该事件的浏览器时遇到问题。
标签: vue.js vuejs2 dom-events vue-router addeventlistener