Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Cookie и НЛО (https://javascript.ru/forum/jquery/56951-cookie-i-nlo.html)

js-user 11.07.2015 22:48

Cookie и НЛО
 
Помещаю значения в кукис, а потом извлекаю.
//записать кукис
function addCart(name,value){
	$.cookie(name, value, {expires: 1, path: '/'});
};
//извлечь кукис
var t=$('#goods', document.forms);
var a=$.cookie();
$.each(a, function(i,val){
	v1=t.text();
	v2=''+i+': '+val;
	t.text($.trim(v1+'\n'+v2));
});

Всё работает, но в перечне кукис появляются странные и неизвестные ключи и значения. Например, "b: b" или "0: ".

Я их пробовал удалять функцией, которая вообще удаляет кукисы.
//очистить кукисы
function emptyCart(){
	var a=$.cookie();
	$.each(a, function(i, val){
		$.removeCookie(i, {expires: 1, path: '/'});
    });
};

При этом сознательно записанные в кукисы ключи удаляются, а эти загадочные не удаляются!

Вопросы:
1. Что это за ключи в кукисах?
2. Как они там появились?
3. Как их удалить программно?

js-user 11.07.2015 23:09

Цитата:

Сообщение от js-user
Например, "b: b" или "0: "

Сейчас очистил кэш браузера.
Ключ "0: " удалился, а "b: b" остался.

Deff 11.07.2015 23:10

js-user,
Ссылку дайте на тестовую инет страницу, если есть

laimas 12.07.2015 00:09

А это зачем?

v2=''+i+': '+val;

Сами по себе они там не появятся, значит проверьте что вносите. Это ваш баг, а не браузера.

js-user 12.07.2015 04:15

Цитата:

Сообщение от Deff
Ссылку дайте на тестовую инет страницу, если есть

Есть ссылка.
В <textarea> выводится содержимое cookie.

js-user 12.07.2015 04:16

Цитата:

Сообщение от laimas
А это зачем?
v2=''+i+': '+val;

Так я формирую строку, которую потом добавлю к содержимому <textarea>.

Цитата:

Сообщение от laimas
Сами по себе они там не появятся, значит проверьте что вносите. Это ваш баг, а не браузера.

Так оно как бы понятно, и я не спорю. Но если весь код написал я, то я не понимаю, откуда оно туда попадает.

Deff 12.07.2015 05:50

Цитата:

Сообщение от js-user
Ecть ccылкa.
B <textarea> вывoдитcя coдepжимoe cookie.

У Bac кyк b
cтaвитcя не чepeз $.cookie() - a кaким тo иным cкpиптoм, и тoчнo нe cepвep
Ибo
1. Удaляя <script src="../z/js/jquery.cookie.js"></script> co cтpaницы - кyк
вcё paвнo cтaвитcя
2. Удaляя вce cкpипты co cтpaницы - кyк нe cтaвитьcя
3. Cтaвя тoлькo jquery и jquery.cookie.js и Baш кoд нa чиcтyю cтpaницy -
никaкиx лишниx кyкoв нeт
=============
Поискал конкретный скрипт,
Вот эта секция на странице ставит этот конкретный кук:
<script language="javascript" type="text/javascript"><!--
Cd=document;Cr="&"+Math.random();Cp="&s=1";
Cd.cookie="b=b";if(Cd.cookie)Cp+="&c=1";
Cp+="&t="+(new Date()).getTimezoneOffset();
if(self!=top)Cp+="&f=1";
//--></script>

jasper-blondin 12.07.2015 09:54

Задайте для имен печенек, которые относятся к корзине, определенный префикс. Например, так:
function addCart(name,value) {
    $.cookie("my_cart_" + name, value, {expires: 1, path: "/"});
}


Затем, при считывании товаров из печенек, считывайте только те, у которых есть данный префикс. В таком случае Вас не будет беспокоить, какие еще куки установлены.

js-user 12.07.2015 15:26

Deff,
jasper-blondin,
Премного благодарю!
Похоже, кук b записывается счётчиком посещений.


Часовой пояс GMT +3, время: 04:22.