У меня есть необходимость хранить пользовательские параметры строки запроса во время их пребывания на веб-странице. Я решил проанализировать параметры строки запроса и вставить их в файл cookie сеанса, поэтому, когда у меня есть код, которому нужны исходные параметры запроса, я вызываю 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');
Я тестировал в IE10. UrlParamsCookie var не всегда отображается в dom. Можете ли вы предложить альтернативу window.onpopstate? Кроме того, спасибо за этот сайт, о котором я не знал. – Ptrkcon