Как получить значение Cookie по ее имени на JavaScript?
На днях один из посетителей нашего сайта задался вопросом, а можно ли получить значение установленной системой uCoz куки, и в зависимости от ее содержимого выполнить какое-либо действие.
Ответ – можно, а как именно, я сейчас расскажу. Мы с вами уже затрагивали тему куки, и там мы использовали дополнительную библиотеку для jQuery, поскольку с ее помощью управление куки осуществляется гораздо удобнее. Но в JavaScript тоже есть поддержка Cookie.
Для того чтобы получить значение нужной вам куки, вам необходимо воспользоваться следующей функцией:
function readCookie(name) {
var name_cook = name+"=";
var spl = document.cookie.split(";");
for(var i=0; i<spl.length; i++) {
var c = spl[i];
while(c.charAt(0) == " ") {
c = c.substring(1, c.length);
}
if(c.indexOf(name_cook) == 0) {
return c.substring(name_cook.length, c.length);
}
}
return null;
}
А использование ее следующее:
var value_cookie = readCookie("artemmalcovShopCu");
Где «artemmalcovShopCu» – это имя нужной вам куки.
Поскольку значение куки мы получаем в указанной нам переменной, ее в последующем мы можем использовать в своих нуждах.
Для примера проверим, равняется ли кука трем, и если это так, в нужный div выведем определенное сообщение:
<script>
function readCookie(name) {
var name_cook = name+"=";
var spl = document.cookie.split(";");
for(var i=0; i<spl.length; i++) {
var c = spl[i];
while(c.charAt(0) == " ") {
c = c.substring(1, c.length);
}
if(c.indexOf(name_cook) == 0) {
return c.substring(name_cook.length, c.length);
}
}
return null;
}
var value_cookie = readCookie("artemmalcovShopCu");
if(value_cookie == 3) {
$("#result").html("Ваша кука имеет следующее значение: "+value_cookie);
}
</script>
Здесь «#result» – это id блока, куда нужно вывести результат.
Имя же нужной куки вы можете найти в консоли разработчика, во вкладке «Application», в разделе «Cookies»:
Рассматриваемый пример на системе uCoz – это лишь пример, и способ подойдет для любого сайта.