Определить, принимает ли ИЕ cookie
Классическая задача: Определить, принимает ли браузер cookie, если не принимает - вывести предупреждение. Гуглил, большинство решений на js упираются в navigator.cookieEnabled или во что-нибудь другое, но ни одно не хочет работать в ИЕ:(
Подскажите, плз, для ИЕ данная задача как-нибудь решается? |
// возвращает cookie если есть или undefined function getCookie(name) { var matches = document.cookie.match(new RegExp( "(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)" )) return matches ? decodeURIComponent(matches[1]) : undefined } // уcтанавливает cookie function setCookie(name, value, props) { props = props || {} var exp = props.expires if (typeof exp == "number" && exp) { var d = new Date() d.setTime(d.getTime() + exp*1000) exp = props.expires = d } if(exp && exp.toUTCString) { props.expires = exp.toUTCString() } value = encodeURIComponent(value) var updatedCookie = name + "=" + value for(var propName in props){ updatedCookie += "; " + propName var propValue = props[propName] if(propValue !== true){ updatedCookie += "=" + propValue } } document.cookie = updatedCookie } // удаляет cookie function deleteCookie(name) { setCookie(name, null, { expires: -1 }) } var rand=Math.random(); setCookie('test',rand) alert(rand+' '+getCookie('test')); if(getCookie('test')==rand){ alert('OK'); } else{ alert('not'); } очевидно же! |
Gvozd
Спасибо, но здесь та же самая проблема, что и у всех прочих скриптов, которые пробовал: В ИЕ при отключенных cookie возвращает OK. Отключал в настройках ИЕ->Свойства обозревателя:чекбокс "Перекрывать автоматическую обработку файлов cookie" + Блокировать основные + Блокировать сторонние cookie. Сессии в куках тож не сохраняются, так что куки точно отключены. Есть еще варианты? |
Цитата:
вы с хоста работаете, или из файловой системы? наверняка же прям из проводника запускаете.=) IE какой версии? |
ИЕ 8.
Запускаю с localhost (IIS) Впрочем, есть способ проверить - выложить код прямо на сайт и посмотреть, будет ли работать там. Ради интереса запустил тестовую страничку на Denwer - тоже самое. Может у меня ИЕ какой-то не такой |
Цитата:
у меня с локальной машины, с домена, отличного от Localhost все отлично работает залейте на сайт |
Да, действительно все уперлось в домен, на внешнем все работает, спасибо.
|
Часовой пояс GMT +3, время: 10:54. |