关于onpopstate返回事件无法触发问题
部分手机机型的onpopstate首次进入页面无任何交互式没办法触发的,有了交互他就可以触发。面对这样的问题可以加一个事件主动去触发或者 一进入加个弹窗进行交互下就可以让onpopstate生效。以vue为例:方法 一: (针对部分浏览器生效,假如是做微博等其他业务内嵌浏览器的话可能不生效)虚拟的元素:<span class="virtualEle" @click="virtualClick
部分手机机型的onpopstate首次进入页面无任何交互式没办法触发的,有了交互他就可以触发。
面对这样的问题可以加一个事件主动去触发 或者 一进入加个弹窗进行交互下就可以让onpopstate生效。
以vue为例:
方法 一: (针对部分浏览器生效,假如是做微博等其他业务内嵌浏览器的话可能不生效)
虚拟的元素:
<span class="virtualEle" @click="virtualClick" ref="virtualEle" v-if="virtualEleShow">xxx</span>
跳转方法:
onPopstate (e) {
window.location.href = 'https://www.baidu.com' // 跳转地址
}
window.addEventListener('popstate', vm.onPopstate)
vm.$refs.virtualEle.click()
if (window.history.state !== 'virtualEleInfo') {
const state = 'virtualEleInfo'
window.history.pushState(state, 'title', '#')
}
方法二:
自制一个弹窗改变了弹窗的显示和隐藏 让用户有交互 就能让onpopstate生效。
更多推荐
所有评论(0)