解决安卓微信浏览器中location.reload()刷新页面的问题
在移动wab中,经常会使用window.location.href去跳转页面,这个方法在绝大多数浏览器中都不会存在问题。但是在安卓手机微信自带浏览器中,这种使用时无效的。
- 原因:初步判断为缓存问题。正常情况reload()后页面依然会向后台发出请求,但在安卓的微信浏览器中reoad后请求的一直是第一次打开页面时请求的数据,可以理解为请求被缓存了。
- 解决方法:使用
window.location.href=window.location.href+随机数
代替window.location.reload()
- 比如:
window.location.href = location.href+'?time='+((new Date()).getTime());
也可以只针对微信浏览器设置,通过window.navigator.userAgent进行判断,结果是,Mozilla/5.0 (iPhone; CPU iPhone OS 9_3_2 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Mobile/13F69 MicroMessenger/6.3.16。根据关键字 MicroMessenger 来判断是否是微信内置的浏览器。
判断函数:
function isWeiXin(){
var ua = window.navigator.userAgent.toLowerCase();
if(ua.match(/MicroMessenger/i) == 'micromessenger'){
return true;
}else{
return false;
}
}