Я знаю, что он присутствует в , по крайней мере, IE 6 и более поздних версиях , Firefox 1 и более поздних версиях , и Dottoro сообщает, что он поддерживается всеми основными браузерами . Однако он не является частью какой-либо спецификации DOM и поэтому не гарантируется, что он будет доступен или правильно реализован во всех браузерах (например, в мобильных браузерах с ограниченными реализациями DOM).
Как обнаружили некоторые, IE возвращает true для navigator.cookieEnabled
, даже если cookie-файлы заблокированы для текущего сайта. Это означает, что в настоящее время вы вообще не можете полагаться на собственность, и вам следует полностью ее избегать.
Для полной проверки поддержки файлов cookie между браузерами вы можете использовать что-то вроде этого:
var cookies = ("cookie" in document && (document.cookie.length > 0 ||
(document.cookie = "test").indexOf.call(document.cookie, "test") > -1));
Демо: http://codetester.org/31011785
Это вернет false
в браузерах, у которых отключены файлы cookie или которые не поддерживают свойство DOM уровня 2 document.cookie
, что примерно так же далеко, как вы можете зайти в JS.