So, to answer this common question, use the following technique to detect whether the client's browser has cookies enabled:
The above script is actually two techniques rolled into one:
- Firstly, we use the official property for the task, navigator.cookieEnabled, to help determine whether the browser has cookies enabled. However, we immediately run into a limitation- this property is supported only in IE4+ and NS6+. So, in both cases where the property returns false or does not exist (in other browsers), we set the variable cookieEnabled to false instead for continued investigation.
- Moving on, it's now time to probe all other browsers for cookie availability. The age-old "give it a try" technique works nicely. By setting a dummy value to document.cookie and immediately probing it to see if the value is retained, we can tell if cookies is enabled on the client's end.
The variable cookieEnabled now contains a Boolean value indicating the client's cookie support. Nice and crunchy!