2 fanghh6 fanghh6 于 2016.02.22 15:41 提问

微信内置浏览器,点击返回强制重新加载前一个页面的问题 10C

需求应该挺常见的吧,从列表页A跳转到详情页B,点击返回的时候希望回到列表页A当初浏览的位置。
其他浏览器都没有问题,因为都是静态保持页面原有的状态,只有微信内置浏览器会在返回后重新加载A页面。但也看到很多公众号的微应用返回后并不会刷新,看了看页面源代码也没看出有什么特别的。

目前已知的解决方案:
1、跳转B页面前在sessionStorage中存放A页面的数据,以及滚动条位置,A页面初始化时判断sessionStorage中的值,有的话就不重新请求服务器,而是显示sessionStorage中的值,并且scrollTo到指定位置。
2、往history中插入#以使返回失效,将详情页B做成div弹层,使用自定义的返回按钮来隐藏详情页。

由于种种原因以上两种方案都不想采用,不知道各位有没有更通用更直接的方法,比如在页面头部添加什么信息通知浏览器别刷新之类。

1个回答

showbo
showbo   Ds   Rxr 2016.02.22 16:18

微信的返回类似window.location=xxxx,而不是history.back(),添加头部没听说过。。

如果你的a页面不涉及js动态生成内容(包括ajax动态加载的),onscroll事件中自己用cookie记录下scrollTop,然后返回的时候window.onload读取cookie值重新设置滚动高度

fanghh6
fanghh6 回复无聊码农: js调用history.back()也一样会被微信浏览器重新加载。。
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
解决微信浏览器返回上一页面强制刷新的问题
微信浏览器,Chrone PC版浏览器,在返回上一页面,且上一页面包含AJAX代码时,页面就会被强制刷新,极度影响用户体验。 而我们想要的效果是:返回上一页面时,页面还停留在原来的状态,AJAX获取到的数据还在,滚动条也在原来的位置。 通过 HTML5 的 history API + 缓存 可以做到这一点。 原理: 通过history API的 history.pu
解决动态生成的网页在微信浏览器中每次返回都会重新生成的问题
解决动态网页在微信浏览器中每次返回都会重新加载的问题前言假设我们我们有一个搜索结果列表页面,其内容为我们通过 AJAX 从后端动态获取的。搜索页面中的每一个条目是一个超链接,我们可以点击超链接去请求另一个网页查看条目详情。这是一种很常见的情况。可是在微信浏览器,我们会遇到这样一个问题:当我们想从条目详情返回条目列表页面时,微信浏览器会重新刷新条目列表页面,我们会找不到刚才浏览的位置,又要重新滚动,上
关于 苹果手机 微信浏览器里点击返回不加载方法的问题
前几天,新增一需求,发现在苹果微信浏览器里会有一个bug。  就是用户苹果点击返回时,不加载 onload 的方法,导致使用缓存的数据,而缓存的数据中有个数据字段不会变,所以bug出现。 body class="my_body" onload="loaded()" id="body"> 我找了一些方法解决了问题。 在此记录下。 方案一:通过onload方式 页面中写一个隐藏的
浏览器前进、后退键时刷新页面而不读取缓存,重新刷新页面
点击浏览器的后退键,总是会读取缓存,这样会导致有时候获取不到页面上的值,如果点击后退键时刷新页面而不读取缓存,这样就不会产生获取不到值的问题。 jsp页面和servlet页面均可以设置。 response.setHeader("Cache-Control","no-cache"); response.setHeader("Pragma","no-cache"); response.setD
微信浏览器自带的返回上一页的停留位置 scrollTop
我们做过微信的应该都知道,微信自带的返回上一页,就是重新打开页面。并不是返回历史页面。我们PC端的浏览器是返回历史页面。点击返回页面之后 上一个页面的scrollTop还是之前没有进入新页面的位置。 我看了下京东的微信网站。果然和我想到的方法一样。利用sessionStorage HTML5本地存储 进行存储位置scrollTop以及加载了多少次ajax次数 微信返回上一页(当前页面)之后。就会
如何让微信浏览器返回上一页时强制刷新
如何让微信浏览器返回上一页时强制刷新标签(空格分隔): 前端问题描述:由 首页 跳转到 详情页, 在 详情页 点击 返回 按钮返回到 首页 后, 首页 刷新后再展示。思路:在进入 详情页 后,在浏览器中保存一个键值对,如 need-refresh : true。返回 首页后, 加载页面前从浏览器中取出这个数据,如果 need-refresh 为 true, 那么刷新。这种方法避开了对微信浏览器 返
解决微信返回按钮到上一页页面不刷新的问题
解决微信返回按钮到上一页页面不刷新的问题 window.onpageshow = function(event){ //event.persisted 判断浏览器是否有缓存, 有为true, 没有为false if (event.persisted) { window.location.reload(); }
微信浏览器返回并强制刷新
实现微信浏览器返回并强制刷新效果解决IOS上微信浏览器返回不刷新问题//方法一 $(function () { var isPageHide = false; window.addEventListener('pageshow', function () { if (isPageHide) { window.location.reload(
浏览器返回刷新页面
有的时候浏览器返回操作我们想刷新页面,从服务器重新获取数据,此时就需要浏览器不将浏览记录保存在缓存中。 1. 设置页面为不缓存,访问上一次页面就需要重新去服务器获取。 HTML JAVA if (request.getProtocol().compareTo("HTTP/1.0") == 0){ response.se
如何在点击浏览器前进、后退键时刷新页面而不读取缓存
本文说明:是汇总了网上说的有用的方法 一、 有时在处理服务器页面如表单时,浏览器前进、后退键会带来麻烦,无法使页面获取最新的数据,从而会导致意外产生,这时解决办法有两种,一是可以利用js禁用前进、后退键;二是当点击前进、后退键后自动刷新页面,那么就需要禁掉页面缓存,因为浏览器首先会读取缓存,如果没有才再请求服务器; 方法二禁用缓存如下: 客户端代码: asp服务