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:待补坑

你可能感兴趣的:(前端开发,JS)