h5 返回上一页并且刷新页面

2,566 阅读1分钟

window.history.go(-1) 和 window.history.back(-1) 都用了,安卓会刷新,IOS系统不刷新(IOS会读取浏览器缓存)

下面用了一种比较low的方法,但是好歹实现了。。

//home.html
localStorage.setItem('homeHref',window.location.href);
location.href = "./detail.html";

在详情页, 后面加了一个随机数,是防止IOS读取浏览器缓存

//detail.html
location.href= window.localStorage.getItem('homeHref')+"&tmp="+Math.random();

浏览页面的时候,如果跳往其他页面,然后返回上一页,有时候并不会刷新(应该是缓存机制的原因),此时我们可以通过添加一段 js 代码强制刷新页面。

window.onpageshow = function (event) {
  if (event.persisted) {
    window.location.reload();
  }
}

onpageshow 事件在每次加载页面的时候都会触发,而 event.persisted 则用于判断页面是否从缓存中读取,若是则为 true