这个需求应该挺常见的吧,从列表页A跳转到详情页B,点击返回的时候希望回到列表页A当初浏览的位置。
其他浏览器都没有问题,因为都是静态保持页面原有的状态,只有微信内置浏览器会在返回后重新加载A页面。但也看到很多公众号的微应用返回后并不会刷新,看了看页面源代码也没看出有什么特别的。
目前已知的解决方案:
1、跳转B页面前在sessionStorage中存放A页面的数据,以及滚动条位置,A页面初始化时判断sessionStorage中的值,有的话就不重新请求服务器,而是现实sessionStorage中的值,并且scrollTo到指定位置。
2、往history中插入#以使返回失效,将详情页B做成div弹层,使用自定义的返回按钮来隐藏详情页。
由于种种原因以上两种方案都不想采用,不知道各位有没有更通用更直接的方法,比如在页面头部添加什么信息通知浏览器别刷新之类。
沧小月 (作者)
事实上我试过使用meta标签来通知浏览器缓存我的页面,然而在微信浏览器里的结果是我按了返回后,他给我取了他缓存的页面,然后刷新了一下,导致我的滚动条又回到最上面了。。。
其实我只是想在微信浏览器上实现其他浏览器的情况,试了safari、chrome、ie、firefox、安卓内置浏览器,在使用浏览器自带的返回按钮时,都不会重新加载我前一个页面,只有微信内置浏览器会重新加载。。。
2016-02-22 15:37