Can';t在IE7/IE8中使用javascript创建cookie
我正在使用在网站上设置购物车。问题是这些cookie不会在IE7/IE8中创建。因此,每次页面刷新,我们都会丢失购物车中的项目 我一直在看代码,似乎simpleCart使用 关于失败的原因,我能找到的唯一信息是:与IE不喜欢的cookies设置方式有关 我对quirksmode函数进行了如下修改:Can';t在IE7/IE8中使用javascript创建cookie,javascript,cookies,internet-explorer-8,internet-explorer-7,Javascript,Cookies,Internet Explorer 8,Internet Explorer 7,我正在使用在网站上设置购物车。问题是这些cookie不会在IE7/IE8中创建。因此,每次页面刷新,我们都会丢失购物车中的项目 我一直在看代码,似乎simpleCart使用 关于失败的原因,我能找到的唯一信息是:与IE不喜欢的cookies设置方式有关 我对quirksmode函数进行了如下修改: function createCookie(name,value,days) { if (days) { var date = new Date(); date
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=/
我认为这可能与空格字符有关,但我用连字符替换了它们,这没什么区别
这里实际上有一个站点的实时版本:尝试将一个项目添加到购物车中,并刷新IE8中的页面以亲自查看问题
非常感谢,,
Rich.好的,我已经猜出来了 基本上simpleCart.js使用的是quirksmode函数的稍微修改版本,它们在cookie数据上使用了escape()和unescape()函数,IE根本不喜欢这样 我只是简单地用原件替换了它们,它就工作了