解决 vue 开启keep-live 监听键盘事件无法移除监听
前言
踩坑。 chrome (e.key === ‘f’) // 键盘f 和 qq浏览器 IE (e.key === ‘F’) // 键盘f
不要去想什么在keepalive 生命钩子里面移除监听,我试了,没用!! 我这里是自定义写了一个ctrl+f 的功能,监听的是键盘事件,因为是mac os 所以是
if (e.key === 'Meta') // 键盘ctrl 我这里是 commond(mac)
if (e.key === 'f') // 键盘f
回归正题,用路由判断监听事件!!!
代码如下(示例):
mounted() {
window.addEventListener('keydown', this.ssss)
window.addEventListener('keyup', this.sssssw)
},
methods: {
ssss(e) {
if (this.$route.path === '/ptb/finance/tableIn/index') {
if (e.key === 'Meta') this.code = 1
if (e.key === 'f') this.code2 = 1
if (this.code === 1 && this.code2 === 1) {
this.eeeshow = !this.eeeshow
e.preventDefault()
}
} else {
window.removeEventListener('keydown', this.ssss, true)
}
},
sssssw(e) {
if (this.$route.path === '/ptb/finance/tableIn/index') {
if (e.key === 'Meta') this.code = 0
if (e.key === 'f') this.code2 = 0
} else {
window.removeEventListener('keydown', this.ssss, true)
}
},