移动端使用 window.location.reload() 无法重新加载网页
Vue 项目开启了 keep-alive 缓存,但是总是会遇到有些地方缓存清理不干净,索性在用户退出的时候重新加载整个网页,使用的就是 window.location.reload() 函数,在本地调试的时候完全没有问题,但是在手机上就无法重载网页。
我发现一个问题,当一个网页的地址最后面是一个 # 时(比如:https://www.wenjiangs.com/mobile/#/):
- 执行:window.location.replace(window.location.href); 浏览器不刷新页面。
- 经过测试: window.location.href = window.location.href; 浏览器也不刷新页面。
- 经过测试:window.location.reload(); PC 浏览器会刷新页面,安卓也会刷新,但是 IOS 不会刷新。
既然如此,我们可以强制去掉 # 符号和后面的参数,然后再强制刷新:
let url = window.location.href url = url.split('#') window.location.replace(url[0]);
这样完美解决移动端使用 window.location.reload() 无法重新加载网页的问题。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论