部分手机机型的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生效。

Logo

前往低代码交流专区

更多推荐