Покинул форум
Сообщений всего: 47
Дата рег-ции: Апр. 2009 Откуда: Россия - Армения, Москва-Ереван
Помог: 0 раз(а)
Доброго времени суток:
Есть скрипт с Функцией формирования корзины интернет магазина которая отлично работает в Opera и IE но некорректно работает в Mozilla Firefox 3.6.3
Теперь непосредственно перейду к конкретике вот функция на JavaScript:
И вот в чём проблема если данный скрипт запустить на Opera или IE при каждом нажатии ссылки на товар в блоке <div id="stut_cart"> появляются значения c ID товара и Цены тем самым их можно суммировать и подсчитать количество объектов в массиве.
Но при нажатии на ссылку товара в Mozilla Firefox наименование показывается только один раз.
Помогите пожалуйста разобраться. Может дело в специфике браузера. Что нужно сделать. C JavaScript я не особо дружу.
----- ПОТЕРЯВ_СТРАХ_К_СМЕРТИ_МЫ_ОБРЕТАЕМ_ВЕЧНУЮ_ЖИЗНЬ... и голову без мозгов))))
JustUserR
Отправлено: 16 Апреля, 2010 - 18:54:18
Активный участник
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
Friendly Man пишет:
Помогите пожалуйста разобраться. Может дело в специфике браузера. Что нужно сделать. C JavaScript я не особо дружу.
Дело действительно в специфике браузера и это достаточно стандартное являние когда в FF что-то не работает ведь там урезанная версия JS (Еще одно очередное подтверждение
Чтобы решить данную проблему можно промотреть несколько вариантов Как я понимаю в IE и Opera при нажатии на ссылки с определенными товарами они по очереди склыдваются в корзину и показываются там все вместе - а в FF показывается только последний товар который был выбран Вероятно это связано с особенностями стандартных кодировок в браузере - ведь когда вы добавляете очередное значение cookies вы используете фунции escape и unescape которые преобразуют данные в юникодную urlencoded-форму - и из-за несовпадения однобайтовой кодировки документа и многобайтового представления браузер может попросту не сохранять cookie и поэтому выводится только последний товар (Который напрямую передается в функцию)
Может быть еще одна причина по которой не работают cookie - например они могут обновиться только после перезагрузки основной статической HTML-страницы - в таком случае решением будет хранить данные о корзине в массиве (Для текущего сеанса страницы) и cookie (Для следующего сеанса) одновременно
Friendly Man пишет:
var value_coc_for_arr = item_and_price;
И вот эту переменную желательно объявить вне условия чтобы она была в контексте функции а не if-блока
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
Friendly Man
Отправлено: 16 Апреля, 2010 - 22:05:48
Новичок
Покинул форум
Сообщений всего: 47
Дата рег-ции: Апр. 2009 Откуда: Россия - Армения, Москва-Ереван
Помог: 0 раз(а)
Большое спасибо что откликнулись на зов помощи. Знать бы ещё где подрихтовать надо...
А может быть unescape(document.coockie) в начале кода??? Сейчас попробуем.
----- ПОТЕРЯВ_СТРАХ_К_СМЕРТИ_МЫ_ОБРЕТАЕМ_ВЕЧНУЮ_ЖИЗНЬ... и голову без мозгов))))
JustUserR
Отправлено: 17 Апреля, 2010 - 13:25:33
Активный участник
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
Friendly Man пишет:
Большое спасибо что откликнулись на зов помощи. Знать бы ещё где подрихтовать надо...
А может быть unescape(document.coockie) в начале кода??? Сейчас попробуем.
Пожалуйста! Решение кроссбраузерных задач всегда достаточно сложно и интересно
Видимл дело действительно в том что cookie не сохраняются и не считываются должны образом Попробуйте поступить одним из следующимх способов - или сама статическая HTML-страница сохраняется в кодировке utf-8 и на ней используются функции escape/unescape которые преобразуют символы в вид %uABCD - или страница сохраняется в однобайтовой кодировке и используются преобразовывающие функции которые приводят символы к привычному виду %AB - пример описан здесь http://xpoint[dot]ru/know-how/JavaSc[dot][dot][dot]myiySRusskimiBuk
Также можно попробовать использовать скрытый iframe - в котором проводить сохранение и считывание cookie с его последующим обновлением - в таком случае больше шансов что cookie точно запишутся в данный момент
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.