Javascript 在会话cookie中存储查询字符串参数
在用户停留在网页上期间,我需要存储用户的初始查询字符串参数。我决定解析查询字符串参数并将它们粘贴到会话cookie中,这样当我有需要初始查询参数的代码时,我就调用cookie 这似乎并不总是奏效,尤其是在IE中。有人能给我一些建议吗?我想也许可以将其存储在dom存储中,但我不确定这是否是正确的方法。 代码存在于我的页面标题中,可以在站点的所有页面上访问 以下是我总结的内容:Javascript 在会话cookie中存储查询字符串参数,javascript,session,cookies,Javascript,Session,Cookies,在用户停留在网页上期间,我需要存储用户的初始查询字符串参数。我决定解析查询字符串参数并将它们粘贴到会话cookie中,这样当我有需要初始查询参数的代码时,我就调用cookie 这似乎并不总是奏效,尤其是在IE中。有人能给我一些建议吗?我想也许可以将其存储在dom存储中,但我不确定这是否是正确的方法。 代码存在于我的页面标题中,可以在站点的所有页面上访问 以下是我总结的内容: var urlParams; (window.onpopstate = function () { var matc
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');
您没有指定IE的哪个版本,但是根据,
popstate
直到IE10才可用。我在IE10中测试。urlParamsCookie变量并不总是显示在dom中。您能推荐window.onpopstate的替代方案吗?另外,谢谢你的网站,我不知道。