解决安卓(鸿蒙)微信浏览器中location.reload 或者 location.href失效的问题
今天客服反应,提交表单失效... 用苹果测试没问题,给客户返回结果,客户坚持有问题未解决,就问什么手机什么系统,结果发现在鸿蒙或安卓系统中,
location.reload() 失效,window.location.href = location.href 失效,window.location.reload(location.href) 失效,
首先想到的解决办法就是在要跳转的url后面加个时间戳,告知浏览器这是一个新的请求;
window.location.reload(location.href+'?time='+((new Date()).getTime())) 失效
然而并没有什么卵用,看了下js文档:
href是location对象的一个属性,reload()则是location对象的方法 所以对于href,可以为该属性设置新的 URL,使浏览器读取并显示新的 URL 的内容。 对于reload()则是重新加载当前文档,如果该方法没有规定参数,或者参数是 false,它就会用 HTTP 头 If-Modified-Since 来检测服务器上的文档是否已改变。如果文档已改变,reload() 会再次下载该文档。如果文档未改变,则该方法将从缓存中装载文档。这与用户单击浏览器的刷新按钮的效果是完全一样的。如果把该方法的参数设置为 true,那么无论文档的最后修改日期是什么,它都会绕过缓存,从服务器上重新下载该文档。这与用户在单击浏览器的刷新按钮时按住 Shift 健的效果是完全一样。
但对于安卓手机微信中的浏览器,reload只是从缓存中装载文档,所以当你使用该方法,是失效的;
解决办法就是,使用location.href代替reload(),而且在以后的使用中也强烈建议大家使用location.href来进行刷新或者跳转
window.location.href = location.href+'?time='+((new Date()).getTime());
问题解决。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端