Я использую simpleCart.js для настройки корзины на сайте.Проблема в том, что куки не будут созданы в IE7 / IE8.Поэтому при каждом обновлении страницы мы теряем элементы в корзине.
Я просматривал код, и похоже, что simpleCart использует функции cookie из quirksmode
Единственная информация, которую я могу найти относительно причины ее сбоя, находится здесь: http://www.dynamicdrive.com/forums/showthread.php?t=27197 как-то связано с тем, как настроены файлы cookie, что не нравится IE.
Я изменил функцию quirksmode длявыглядеть так:
function createCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else var expires = "";
value = value.replace(/\=/g, '~');
console.log(name + "=" + value + expires + "; path=/");
document.cookie = name + "=" + escape(value) + expires + "; path=/";
console.log(name + "=" + escape(value) + expires + "; path=/");
}
А вот вывод:
sc_simpleCart_1=id~c2||name~British%20Curry%20Powder||price~3.5||quantity~4; expires=Thu, 18 Aug 2011 15:58:16 GMT; path=/
sc_simpleCart_1=id%7Ec2%7C%7Cname%7EBritish%2520Curry%2520Powder%7C%7Cprice%7E3.5%7C%7Cquantity%7E4; expires=Thu, 18 Aug 2011 15:58:16 GMT; path=/
Я думал, что, возможно, это было что-то, связанное с символами пробела, но я заменил их дефисами ибез разницы.
Здесь на самом деле есть живая версия сайта: http://www.bitspicy.com/bit-spicy-shop.php попробуйте добавить товар в корзину и обновите страницу в IE8, чтобы увидеть проблему самостоятельно.
Большое спасибо, Рич.