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?
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?
Share Improve this question edited May 23, 2017 at 10:32 CommunityBot 11 silver badge asked Jul 22, 2010 at 15:26 deamondeamon 92.7k116 gold badges330 silver badges460 bronze badges 2- It works fine for me in Chrome 5 (running on Windows 7). – James Commented Jul 22, 2010 at 15:43
- I run Chrome 5 on Windows 7 too, but it doesn't work! – deamon Commented Jul 22, 2010 at 15:48
2 Answers
Reset to default 2The 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.
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.