2012-06-13 8 views
1

저는 기본적으로 쿠키를 읽고 일부 내용을 반환하는 스크립트를 디버깅합니다. IE를 제외한 모든 브라우저에서 정상적으로 작동합니다. 몇 가지 테스트를 거친 후 루프가 for에 들어 가지 않음을 발견했습니다.쿠키는 항상 IE에서 null을 반환합니다.

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; 
} 

좀 더 테스트 후,이 쿠키를 저장하는 변수 ca을 실현, 심지어 정의되지 없구요. 그것을 보면서, 나는 그것이 왜해야하는지 알지 못한다. 왜냐하면 cookiename에 대한 언급이 없기 때문이다. 그래서 제 논리에서는 작동하지 않아야합니다. 그러나 그것은 모든것에서 완벽하게 작동합니다. 그러나 IE에서 완벽하게 작동합니다.

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


1 : 왜 심지어 FX는, 웹킷과 오페라에서 작동합니까?
2 : Internet Explorer에서도 어떻게 작동합니까?


나는 아래를 정의했지만, 그것은 작동하지 않았다 : IE 설정에는 쿠키가없는 나타납니다

document.cookie = name; 

답변

0

.

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

을 사용해보십시오. 쿠키가 있는지 확인하십시오. 아무도없는 경우

Bookmarklet

document.cookie='mycookie=foo; path=/'; 

Bookmarklet

+0

쿠키가 다른 스크립트에서 그런 식으로 설정하여 하나를 설정하려고합니다. – Nix

+1

쿠키가 IE에서 활성화되어 있습니까? – HBP

+0

아, 큰소리로 외치기. 그게 정확한 문제입니다! 어떤 이유로 든 두 컴퓨터 모두 쿠키를 사용할 수 없도록 설정되어 있습니다 (클라이언트 컴퓨터에서만 사용할 수 있다고 가정 할 수 있습니다). 당혹 스럽네! – Nix

관련 문제