在会话cookie中存储查询字符串参数

时间:2013-12-24 19:42:30

标签: javascript session cookies

我需要在网页停留期间存储用户的初始查询字符串参数。我决定解析查询字符串参数并将它们粘贴在会话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');

1 个答案:

答案 0 :(得分:0)

您没有指定哪个版本的IE,但根据Can I Use,{IE}之前无法使用popstate