Reputation: 92387
I want to test with JavaScript whether the browser supports cookies or not. The following code works with Internet Explorer 8 and Firefox 3.6 but not with Google Chrome 5.
function areCookiesEnabled() {
document.cookie = "__verify=1";
var supportsCookies = document.cookie.length > 1 &&
document.cookie.indexOf("__verify=1") > -1;
var thePast = new Date(1976, 8, 16);
document.cookie = "__verify=1;expires=" + thePast.toUTCString();
return supportsCookies;
}
if(!areCookiesEnabled())
document.write("<p>Activate cookies!</p>");
else
document.write("<p>cookies ok</p>");
Chrome displays the message "Activate cookies!" regardless of my cookie settings. But if I disallow cookies, Chrome tells me that a cookie could not be set.
Any idea how to test cookie availability with JavaScript in Chrome?
Upvotes: 3
Views: 5211
Reputation: 61737
I'm not sure why the code doesn't work, but you really can simplify your code which will help pin down the problem:
function areCookiesEnabled() {
document.cookie = "__verify=1;expires=" + new Date(1976, 8, 16).toUTCString();
return (document.cookie.length > 1);
}
if(!areCookiesEnabled())
document.write("<p>Activate cookies!</p>");
else
document.write("<p>cookies ok</p>");
Also, here is an excellent overview of Javascript cookies, it might help you pin it down.
Upvotes: 2
Reputation: 82483
The only reliable way to tell if cookies are enabled is to set one, and check for its existence on the next request. Server-side code required.
Upvotes: 2