Cookie始终在IE中返回null

时间:2012-06-13 12:14:50

标签: javascript cookies

我正在调试一个脚本,基本上读取一个cookie并返回一些东西。它适用于所有浏览器,IE除外。经过一些测试,我发现它永远不会进入for循环。

function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');

  for(var i=0;i < ca.length;i++) {
    var c = ca[i];
    while (c.charAt(0)==' ') c = c.substring(1,c.length);

    if (c.indexOf(nameEQ) == 0) {   
        return c.substring(nameEQ.length,c.length);
    }

  }
  return null;
}

经过一些更多的测试,我意识到存储cookie的变量ca,甚至都没有被定义。看着它,我不明白为什么它应该,因为没有提到cookiename。所以在我的逻辑中,它甚至不应该工作,但它在所有 IE中都能完美运行。

var ca = document.cookie.split(';');  


1:为什么这甚至可以在Fx,Webkit和Opera中使用? 2:我怎样才能在IE中使用它?


我尝试将其定义如下,但这似乎不起作用:

document.cookie = name;

1 个答案:

答案 0 :(得分:0)

似乎IE中没有设置cookie。尝试使用

alert('d.cookie:\t'+document.cookie+'\n\n'+'d.cookie.length:\t'+document.cookie.length);

检查是否有任何Cookie。

Bookmarklet

如果没有,请尝试使用

设置一个
document.cookie='mycookie=foo; path=/';

Bookmarklet