views:

320

answers:

1

I am attempting to check whether cookies are enabled or not using Javascript, cross-browser.

I have got this working fine in Firefox 3 using the following code -

var cookieEnabled=(navigator.cookieEnabled)? true : false;

//if not IE4+ nor NS6+
if (typeof navigator.cookieEnabled=="undefined" && !cookieEnabled){ 
    document.cookie="testcookie";
    cookieEnabled=(document.cookie.indexOf("testcookie")!=-1)? true : false;
}

And from what I've seen this seems to be the reasonably established method of checking for cookie support being turned on? However, it refuses to work in IE8, when I turn off cookies in that and run this code cookiesEnabled always equals true.

Any ideas?

Thanks.

A: 

Ah found the problem. I was testing my software by navigating to http://localhost...

Of course IE treats this as the Local Intranet Zone and doesn't apply my settings for cookies, so allowing them regardless!

If I navigate to my actual IP address via the local loopback it treated it as internet zone and worked fine :)

Doh!

Adam Cobb