移动端使用 window.location.reload() 无法重新加载网页

发布于 2020-05-02 18:37:53 字数 617 浏览 4276 评论 0

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

0 文章
0 评论
84961 人气
更多

推荐作者

lixs

文章 0 评论 0

敷衍 

文章 0 评论 0

盗梦空间

文章 0 评论 0

tian

文章 0 评论 0

13375331123

文章 0 评论 0

你对谁都笑

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文