Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 07.01.2013, 18:42
Аватар для mi.rafaylik
Кандидат Javascript-наук
Отправить личное сообщение для mi.rafaylik Посмотреть профиль Найти все сообщения от mi.rafaylik
 
Регистрация: 07.12.2012
Сообщений: 113

1. Deff, jquery.cookie и в FF кириллицу нормально выводят, насчёт эскейп-последовательности не знаю.
2. Максимально длинная строка, например:
T-Shirt:размер S:цвет белый:170:4;Jeans:размер XS:цвет синий:420:2;Shoes:размер 41:цвет хаки:560:1;T-Shirt:размер M:цвет серый:150:1;Jeans:размер S:цвет чёрный:380:1;Shoes:размер 42:цвет черный:490:2;

3. без куки хм.. я бы использовал localStorage, как Вы и предложили, очень понравился вариант, но в данном случае кук вполне достаточно
Ответить с цитированием
  #22 (permalink)  
Старый 07.01.2013, 18:48
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от mi.rafaylik
1. Deff, jquery.cookie и в FF кириллицу нормально выводят,
Во всех бразерах ?
Сообщение от mi.rafaylik
3. без куки хм.. я бы использовал localStorage, как Вы и предложили, очень понравился вариант, но в данном случае кук вполне достаточно
Да использовать localStorage как куки - нет проблем - пишите с одним и тем жа ключом - полный аналог куков - но нун Нужно знать какие браузеры - иначе в старых ИЕ его еще не было( хотя есть плагин, полностью имитирующий)
суть в отправке в итоге на сервер
По второму - вопросу - судя по строке, - ИЕ 6-8 - выпадает из списка - куков -такой длины Оно не обслужит

Последний раз редактировалось Deff, 07.01.2013 в 18:52.
Ответить с цитированием
  #23 (permalink)  
Старый 07.01.2013, 18:48
Аватар для mi.rafaylik
Кандидат Javascript-наук
Отправить личное сообщение для mi.rafaylik Посмотреть профиль Найти все сообщения от mi.rafaylik
 
Регистрация: 07.12.2012
Сообщений: 113

изменив код, задачу решил вот так:
var strCookie = ''; // инициализируем пустую строку

$('div.item').each(function(){
    $(this).children('p:eq(0)').each(function(){ strCookie += $(this).html() + ":"; }); // количество характеристик всегда будет 5
    $(this).children('p:eq(1)').each(function(){ strCookie += $(this).html() + ":"; });
    $(this).children('p:eq(2)').each(function(){ strCookie += $(this).html() + ":"; });
    $(this).children('p:eq(3)').each(function(){ strCookie += $(this).html() + ":"; });
    $(this).children('p:eq(4)').each(function(){ strCookie += $(this).html() + ";"; }); // отделяем товар
});

и правильный результат:
T-Shirt:размер S:цвет белый:170:4;Jeans:размер XS:цвет синий:420:2;Shoes:размер 41:цвет хаки:560:1;

всё
ребята, спасибо, эта тема была интересной, я получил удовольствие и опыт )

Последний раз редактировалось mi.rafaylik, 07.01.2013 в 18:51.
Ответить с цитированием
  #24 (permalink)  
Старый 07.01.2013, 18:51
Аватар для mi.rafaylik
Кандидат Javascript-наук
Отправить личное сообщение для mi.rafaylik Посмотреть профиль Найти все сообщения от mi.rafaylik
 
Регистрация: 07.12.2012
Сообщений: 113

Deff, у меня FF постоянно обновляется, т.е. я использую актуальную версию. Он правильно достаёт кириллицу с помощью jquery.cookie, насчёт более ранних версий FF не знаю
Ответить с цитированием
  #25 (permalink)  
Старый 07.01.2013, 18:54
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от mi.rafaylik
Deff, у меня FF постоянно обновляется, т.е. я использую актуальную версию
Думаю тут не в длине дело , а , jquery, оно кодирует/декодирует кирилицу - проверьте запись куков максимальной длины в ИЕ
Ответить с цитированием
  #26 (permalink)  
Старый 07.01.2013, 19:04
Аватар для mi.rafaylik
Кандидат Javascript-наук
Отправить личное сообщение для mi.rafaylik Посмотреть профиль Найти все сообщения от mi.rafaylik
 
Регистрация: 07.12.2012
Сообщений: 113

Deff, спасибо, попробую как только на Windows попаду (я работаю на Mac OS, там нет IE, но я всегда проверяю свои коды где-нибудь в другом месте), и отпишусь о результате
Ответить с цитированием
  #27 (permalink)  
Старый 07.01.2013, 19:16
Новичок на форуме
Отправить личное сообщение для jokersoft Посмотреть профиль Найти все сообщения от jokersoft
 
Регистрация: 07.01.2013
Сообщений: 2

Сообщение от mi.rafaylik Посмотреть сообщение
$(this).children('p:eq(0)').each(function(){ strCookie += $(this).html() + ":"; }); // количество характеристик всегда будет 5
each здесь в таком случает не нужен.
Делай тогда просто так:
strCookie += $(this).children('p:eq(0)').html() + ":";
Ответить с цитированием
  #28 (permalink)  
Старый 07.01.2013, 19:29
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от mi.rafaylik
попробую как только на Windows попад
Пробу(просто записать куки и считывать их на страницу) желательно провести на реальном сайте, посколь там имеются и еще кроме ваших
чо нить типо такого (Должен быть подключен jQuery и плагин куков
<div id="Mycookie"></div>

<script type="text/javascript">
$(document).ready(function() {  
var a='T-Shirt:размер S:цвет белый:170:4;Jeans:размер XS:цвет синий:420:2;Shoes:размер 41:цвет хаки:560:1;T-Shirt:размер M:цвет серый:150:1;Jeans:размер S:цвет чёрный:380:1;Shoes:размер 42:цвет черный:490:2;';
$("#Mycookie").html($.cookie("My",a));
});
</script>

Последний раз редактировалось Deff, 07.01.2013 в 19:31.
Ответить с цитированием
  #29 (permalink)  
Старый 24.01.2013, 01:30
Аватар для MVS
MVS MVS вне форума
Аспирант
Отправить личное сообщение для MVS Посмотреть профиль Найти все сообщения от MVS
 
Регистрация: 07.07.2012
Сообщений: 46

Добрый..вечер!
Подскажите, как можно сохранять 10 куки в файл, я имею ввиду что если сохраняется 11-тый, то самый старый, то есть первый удаляется а на его место становится второй (вроде карусели), задача связана точно с таким случаем, но запоминать нужно всего 10 кук и крутить по кругу.
Спасибо!

дополняю примером, а то сам не понял из прочитаного чего хочу
примерно такой код для получения куки библиотекой "jquery cookie"
function runCookie() {
var a = $.cookie("cart");
var b = a.replace(/[,]/g, '').split(":");
function allItemsListConstruct (Z) {
	var str ='',zJ;
		for (var i=0; i<Z.length; i++){
			str+='<div>\n';
			zJ = Z[i].split("|");
			str+=
			'<p>'+zJ[0]+'</p>'
			;
			str+='\n</div>'
		} return str;
}
document.getElementById('st').innerHTML = allItemsListConstruct (b);
}

Задача сводиться к тому, что нужно записать куки в таком виде: 001, 002, 003, ..., 010
примерно вот так, id подставляется автоматически
<a href="javascript:cookie('+id+');">сохранить</a>
$.cookie("cart", "id");
количество записанных кук 10 шт., то есть при записи 11-той первая кука удаляется и на ее место становиться вторая и получается первой.
У меня не получается записать куки в строку и тем более недопонимаю как сделать удаление кук если их более 10 и пишем 11-тую.
Помогите реализовать такую вещь - это будет модуль последних просмотренный товаров.
Спасибо!

Последний раз редактировалось MVS, 24.01.2013 в 14:56.
Ответить с цитированием
  #30 (permalink)  
Старый 30.01.2013, 22:25
Аватар для MVS
MVS MVS вне форума
Аспирант
Отправить личное сообщение для MVS Посмотреть профиль Найти все сообщения от MVS
 
Регистрация: 07.07.2012
Сообщений: 46

помогите удалить
сделал так, код г-но, зато рабочий
function setCokii(cookie_value) { //здесь ставить куки setCokii(id);
var x,y;
x = $.cookie("history");
if(x == null) {  // если это первая
$.cookie('history', cookie_value, { expires: 7 });  
} else {
y = x.split(","); // если уже есть
// это проверка на существование куки, если уже есть - то не пишем, одинаковые не нужны
if(y[0] != cookie_value && y[1] != cookie_value && y[2] != cookie_value && y[3] != cookie_value && y[4] != cookie_value && y[5] != cookie_value && y[6] != cookie_value && y[7] != cookie_value && y[8] != cookie_value && y[9] != cookie_value) {
$.cookie('history', cookie_value+','+y, { expires: 7 });
 // если устанавливается 10 кука, то перезаписываем - нужно только 10 последних
if(y[9]) { rewriteCokii(); }  }
}
}
// функция получения и перезаписи куки
function rewriteCokii() {
var u = $.cookie("history");
var c = u.split(",");
var f = [c[0],c[1],c[2],c[3],c[4],c[5],c[6],c[7],c[8],c[9]]; // это вроде как извращение над js но по другому не смог
$.cookie('history', f, { expires: 7 });
}
// удаление всех кук "history"
function delCokii() {
$.cookie('history', null);
}

Прошу помощи не так в модернизации кода, как в том, что не могу понять как можно удалить например 4 куку, если кто может покажите примером, но и по возможности расскажите как можно привести код к нормальному виду
Спасибо!

Последний раз редактировалось MVS, 30.01.2013 в 22:27.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
сохранить переменную в куки tasha_mille Events/DOM/Window 2 02.07.2012 14:29
Помогите с кодом сохранения параметром CheckBox-ов в куки Konstantine jQuery 0 26.05.2012 16:20
Ext.util.Cookies.set(...) - несколько переменных в одной куки. potkin ExtJS 4 07.05.2012 10:43
Разделение строки по последнему повторяющемуся символу ansi_str Общие вопросы Javascript 3 27.04.2012 23:27
Одно событие во всех окнах одного домена kdn1990 Events/DOM/Window 18 25.04.2012 20:11