Определить, принимает ли ИЕ 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, время: 21:25. |