微信浏览器里H5页面返回不刷新怎么办?

极客晓芳 阅读 4

我在做微信里的H5活动页,从详情页点返回按钮回到列表页,结果列表页根本没刷新,还是之前的状态。试过用location.reload()也不行,感觉是微信把页面缓存了。

网上有人说加个时间戳参数,但我这个是从微信公众号菜单进来的,没法控制URL参数。有没有靠谱的办法强制刷新或者绕过这个缓存?

我来解答 赞 1 收藏
二维码
手机扫码查看
1 条解答
Code°利娇
微信浏览器返回时读缓存是个老问题了,微信自己的WebView会把页面存起来,返回的时候直接拿出来用,location.reload()有时候都镇不住它。

最靠谱的方案是监听pageshow事件,判断页面是否从缓存中恢复,如果是就强制刷新:

window.addEventListener('pageshow', function(event) {
if (event.persisted) {
location.reload();
}
});


这个event.persisted就是判断页面是不是从bfcache(往返缓存)里取出来的。

另外配合把HTML的meta标签加上,双重保险:





这两个加起来基本能搞定。pageshow事件是标准写法,兼容性也OK,微信浏览器支持没问题。

还有个偏门招数是用location.replace()替代history.back()跳转,但你说从菜单进控制不了URL,这个方案可能不太适用。

试试上面这两个,应该能解决你这个问题。
点赞
2026-03-13 22:07