Ответ 1
Раньше был интерфейс JavaScript navigator.cookieEnabled
, но сегодня браузеры имеют гораздо более широкий диапазон элементов управления cookie, чем просто отключенный/отключенный, включая параметры сеанса/постоянные, сторонние/сторонние, специфичные для сайта настройки и P3P. Так что, обнюхивая это свойство, сейчас мало пользы.
Нет, единственный надежный способ узнать, можно ли настроить cookie, - попытаться установить его и посмотреть, все ли он там. Другая морщина заключается в том, что, хотя многие браузеры будут понижать постоянный файл cookie до cookie сеанса, когда пользовательские средства контроля конфиденциальности не разрешают их, IE не будет.
Если вы пытаетесь установить постоянный файл cookie в IE, когда они отключены, cookie будет просто выброшен на пол. Это может вас поймать, если вы используете простой сеансовый cookie checker, найдите файлы cookie, а затем попытайтесь установить постоянный файл cookie. И вы не можете уйти с попыткой установить в качестве cookie сеанса и постоянный файл cookie, потому что, когда вы устанавливаете постоянный файл cookie в IE с отключенными постоянными куками, он даже удалит существующий файл cookie сеанса с тем же именем. Oh IE!
Итак, если вам нужно установить постоянный файл cookie, но сделать с сеансом, где постоянный недоступен, вам придется сначала использовать это, чтобы узнать, что вам разрешено делать:
// Find out what cookies are supported. Returns:
// null - no cookies
// false - only session cookies are allowed
// true - session cookies and persistent cookies are allowed
// (though the persistent cookies might not actually be persistent, if the user has set
// them to expire on browser exit)
//
function getCookieSupport() {
var persist= true;
do {
var c= 'gCStest='+Math.floor(Math.random()*100000000);
document.cookie= persist? c+';expires=Tue, 01-Jan-2030 00:00:00 GMT' : c;
if (document.cookie.indexOf(c)!==-1) {
document.cookie= c+';expires=Sat, 01-Jan-2000 00:00:00 GMT';
return persist;
}
} while (!(persist= !persist));
return null;
}