Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.08.2010, 11:05
Аспирант
Отправить личное сообщение для mikel Посмотреть профиль Найти все сообщения от mikel
 
Регистрация: 22.11.2009
Сообщений: 30

Определить, принимает ли ИЕ cookie
Классическая задача: Определить, принимает ли браузер cookie, если не принимает - вывести предупреждение. Гуглил, большинство решений на js упираются в navigator.cookieEnabled или во что-нибудь другое, но ни одно не хочет работать в ИЕ

Подскажите, плз, для ИЕ данная задача как-нибудь решается?
Ответить с цитированием
  #2 (permalink)  
Старый 19.08.2010, 11:12
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

// возвращает 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, 19.08.2010 в 11:17.
Ответить с цитированием
  #3 (permalink)  
Старый 19.08.2010, 11:28
Аспирант
Отправить личное сообщение для mikel Посмотреть профиль Найти все сообщения от mikel
 
Регистрация: 22.11.2009
Сообщений: 30

Gvozd
Спасибо, но здесь та же самая проблема, что и у всех прочих скриптов, которые пробовал: В ИЕ при отключенных cookie возвращает OK.

Отключал в настройках ИЕ->Свойства обозревателя:чекбокс "Перекрывать автоматическую обработку файлов cookie" + Блокировать основные + Блокировать сторонние cookie. Сессии в куках тож не сохраняются, так что куки точно отключены. Есть еще варианты?
Ответить с цитированием
  #4 (permalink)  
Старый 19.08.2010, 11:45
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Сообщение от mikel
В ИЕ при отключенных cookie возвращает OK.
неправда. у меня все прекрасно возвращает not
вы с хоста работаете, или из файловой системы?
наверняка же прям из проводника запускаете.=)
IE какой версии?
Ответить с цитированием
  #5 (permalink)  
Старый 19.08.2010, 12:00
Аспирант
Отправить личное сообщение для mikel Посмотреть профиль Найти все сообщения от mikel
 
Регистрация: 22.11.2009
Сообщений: 30

ИЕ 8.
Запускаю с localhost (IIS)
Впрочем, есть способ проверить - выложить код прямо на сайт и посмотреть, будет ли работать там.

Ради интереса запустил тестовую страничку на Denwer - тоже самое. Может у меня ИЕ какой-то не такой

Последний раз редактировалось mikel, 19.08.2010 в 12:25.
Ответить с цитированием
  #6 (permalink)  
Старый 19.08.2010, 12:24
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Сообщение от mikel
ИЕ 8.
Запускаю с localhost (IIS)
думаю ему домен не нравится.
у меня с локальной машины, с домена, отличного от Localhost все отлично работает
залейте на сайт
Ответить с цитированием
  #7 (permalink)  
Старый 19.08.2010, 13:32
Аспирант
Отправить личное сообщение для mikel Посмотреть профиль Найти все сообщения от mikel
 
Регистрация: 22.11.2009
Сообщений: 30

Да, действительно все уперлось в домен, на внешнем все работает, спасибо.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сколько максимум символов может быть в 1 Cookie? FirstFrost Общие вопросы Javascript 8 18.07.2010 01:26
определить где курсор olgatcpip Общие вопросы Javascript 5 27.04.2010 09:59
Работа с cookie ? Andrei Общие вопросы Javascript 3 10.11.2009 19:39
Кроссброузерно определить значение атрибута faunder Общие вопросы Javascript 5 21.02.2009 22:08
Определить координаты объекта в таблице ner2000 Events/DOM/Window 2 14.06.2008 01:56