博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iphone微信后退不刷新的问题
阅读量:6086 次
发布时间:2019-06-20

本文共 861 字,大约阅读时间需要 2 分钟。

  查看了很多解决ios微信返回不刷新页面的文章,大部分都是利用H5的新特性history来进行解决的,而且很多人的想法都是用了pushstate和popstate来实现了这个功能,但是用pushstate之后会添加一个history实体,然后在监听到时间触发popstate的时候,刷新页面的时候其实刷新的是刚才添加的这个实体,这样会陷入无限循环中,用户将退不出这个页面或者直接关闭这个页面。下面的这种方法很好的解决了这个问题。

$(function() {        pushHistory();    });    function pushHistory() {        window.addEventListener("popstate", function(e) {     //这里监听到了后退事件            self.location.reload();        }, false);        var state = {            title : "",            url : "#"        };        window.history.replaceState(state, "", "#");    };

Tips:

1.popState事件只有在作用go(-1),back(),forward()等操作时才会触发。 

2.重点是self.location.reload();,后退后刷新当前页面。其它人写的文章里缺少这一块,弄的我很是郁闷。 

3.微信里在监听到iphone后退事件后会触发popState事件,在PopState事件里执行:self.location.reload();即可刷新后退后的页面。

4.pustate增加了history的长度,在后退的时候会出错,往往跳不出循环,而replace很好的解决了这个问题。

转载于:https://www.cnblogs.com/lina520/p/7771479.html

你可能感兴趣的文章
CentOS6.4关闭触控板
查看>>
React Native 极光推送填坑(ios)
查看>>
Terratest:一个用于自动化基础设施测试的开源Go库
查看>>
修改Windows远程终端默认端口,让服务器更安全
查看>>
扩展器必须,SAS 2.0未必(SAS挺进中端存储系统之三)
查看>>
Eclipse遇到Initializing Java Tooling解决办法
查看>>
while((ch = getchar()) != '\n')
查看>>
好程序员web前端分享JS检查浏览器类型和版本
查看>>
Oracle DG 逻辑Standby数据同步性能优化
查看>>
exchange 2010 队列删除
查看>>
「翻译」逐步替换Sass
查看>>
H5实现全屏与F11全屏
查看>>
处理excel表的列
查看>>
C#数据采集类
查看>>
quicksort
查看>>
【BZOJ2019】nim
查看>>
LINUX内核调试过程
查看>>
【HDOJ】3553 Just a String
查看>>
Java 集合深入理解(7):ArrayList
查看>>
2019年春季学期第四周作业
查看>>