oppo R9s手机获取sessionStorage,获取不到的
2018-05-18 本文已影响30人
rain129
问题描述:
最近做一个移动端项目时,有个省市区选择的,是这样,省、市、区选择是3个列表页面,点选某个省份时候我会存一个sessionstorage,市和区也是一同样的操作,正常来说,省市区选择完后,我的sessionstorage中就有省市区的数据了,然后拿到数据后就去请求后端数据了,但是测试时候发现oppoR9s取到的数据都是null,这就有点扯了!
解决方案:
sessionstorage中也存着,url上面也把省市区的数据拼接上去,如果sessionstorage中拿不到就去url上取
var new_province = getSession('new_province') || getQueryString('province');
var new_county = getSession('new_district') || getQueryString('district');
var new_city = getSession('new_city') || getQueryString('city');
help.js
//help.js
//获取url参数
function getQueryString = function (name, url) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
var param;
if (url == null) {
param = window.location.search.substr(1).match(reg);
} else {
param = url.substr(1).match(reg);
}
if (param != null) {
return decodeURI(param[2]);
}
return null;
};
//获取session缓存
function getSession (key) {
return sessionStorage.getItem(key);
}
结语:由于自己没有oppo手机,很不方便调试,所以具体为什么oppo在没有关闭浏览器情况下取不到缓存的问题只能靠猜测了,猜想oppo手机可能是跳转一次页面,sessionStorage就清空掉了,不是等浏览器关闭才清掉。