popstata或onpageshow解决微信浏览器点击返回按钮时读取缓存问题

2017-09-12 19:33:04来源:CSDN作者:sinat_34368775人点击

分享
在微信浏览器中,从一个html跳到另外一个html页面后,点击浏览器自带的历史返回按钮,或者在第二个页面中调用history.back()等返回上一页方法,在安卓中直接会返回上一页(相当于重新加载上一页所有内容和逻辑,js会重新在执行一遍),但是在苹果端中,返回到上一页是,浏览器会读取缓存中的页面内容(回到上一页,会保持跳转时的状态,包括刚才浏览的位置,但是js不会在重新执行,因为是直接读取缓存中的)苹果系统的这种默认行为对于用户浏览列表,点击某个单个产品,查看详情,在返回上一页列表页的情况下,表现较好,因为会保持状态,默认回到上一个列表页的位置,但是在需要根据接口返回code或者value去判断某种状态的时候会产生很多问题,因为js不会重新执行,所有判断条件也就无法执行解决方法:1:
 window.addEventListener("popstate", function (e) {      //检测到用户点击浏览器返回按钮,进行操作       console.log(document.referrer);       //使用href的形式去用跳转的形式,跳转到上一页       document.location.href = document.referrer; }, false); var state = {    title: "",    url: "" }; window.history.pushState(state, "", "");
2:

在需要重新加载js的页面监听onpageshow,onpageshow在页面第一次加载和使用历史返回按钮时都会触发,检测到历史返回时,在onpageshow的回调函数中执行页面刷新即可

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台