PC微信内置浏览器,history.go(-1)进入变空白问题

问题:电脑版微信浏览器中,history.length不会因为关闭浏览器而消失,所以在执行history.go(-1)时,微信浏览器会判定为上一个页面存在,执行跳转。但当在微信中点击链接直接进入目标页面时,实际上当前浏览器中是不存在上一个页面的,导致倒退变成空白。

解决方法1:可以直接使用window.location.href('www.xx.com')来跳转到指定“页面”。

缺点:如果上一个页面的url中是带着筛选数据的列表页,那么就无法返回到之前筛选的状态

解决方法2:在列表页(返回键指向的页面)使用

sessionStorage.setItem("read_history", "already_read");

来设置标记,在进入目标页点击返回时,判定:

if (sessionStorage.getItem("read_history")=="already_read") 

如果有标记,则代表前一个页面(列表页)是存在的,执行history.go(-1),反之则return false;停留在当前页面来防止触发进入空白页的BUG。

缺点:sessionStorage的标准是在关闭浏览器时,会清除数据(read_history)。然而!pc版微信浏览器就是个坑啊!关闭浏览器之后sessionStorage居然还在!这样一来,直接进入目标页面时,IF判断仍然会判定为ture,然后又进入空白页....只有当重启微信时,sessionStorage数据才会清除。

解决方法3:待补坑

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值