我需要在网页停留期间存储用户的初始查询字符串参数。我决定解析查询字符串参数并将它们粘贴在会话cookie中,所以当我有需要初始查询参数的代码时,我会调用cookie。
这似乎并不总是有效,尤其是在IE中。谁能给我一些建议?我想也许可以将它存储在dom存储器中,但我不确定这是否是正确的方法。 该代码位于我的页眉中,可在网站的所有页面上访问。
这是我放在一起的内容:
var urlParams;
(window.onpopstate = function () {
var match,
pl = /\+/g,
search = /([^&=]+)=?([^&]*)/g,
decode = function (s) { return decodeURIComponent(s.replace(pl, " ")); },
query = window.location.search.substring(1);
urlParams = {};
while (match = search.exec(query))
urlParams[decode(match[1])] = decode(match[2]);
})();
function set_cookie(name, value) {
var cookie = [name, '=', JSON.stringify(value), '; domain=.', window.location.host.toString(), '; path=/;'].join('');
document.cookie = cookie;
}
function read_cookie(name) {
var result = document.cookie.match(new RegExp(name + '=([^;]+)'));
result && (result = JSON.parse(result[1]));
return result;
}
if(read_cookie('tbts') === null){
set_cookie('tbts', urlParams);
}
var urlParamsCookie = read_cookie('tbts');