Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.07.2012, 14:20
Кандидат Javascript-наук
Отправить личное сообщение для sashgera Посмотреть профиль Найти все сообщения от sashgera
 
Регистрация: 20.09.2011
Сообщений: 140

javascript не удалят куки из Мозила
При загрузке сайта выезжает div с рекламой, при закрытии блока javascript удаляет куки. Блок

будет всплывать один раз при открытии страницы, затем для его появления потребуется перезапуск

браузера. Корректно работает в Opera, Google Chrome, IE.
В Мозила тоже все срабатывает, но если в настройках этого браузера

(Инструметы/Настройки/Основные) применить: "При запуске Firefox: Показать окна и вкладки,

открытые в прошлый раз", то в открытой вкладке с рекламным блоком не удаляются куки и

соответственно этот блок не показывается.
Пожалуйста, помогите решить проблему.
Убедительная просьба, "не тыкать меня носом" в учебники HTML, Javascript и тд. - просто помогите.

javascript
var ie=document.all
var dom=document.getElementById
var ns4=document.layers
var calunits=document.layers? "" : "px"

var bouncelimit=32 //(must be divisible by 8)
var direction="up"

function initbox(){
if (!dom&&!ie&&!ns4)
return
crossobj=(dom)?document.getElementById("dropin").style : ie? document.all.dropin : 

document.dropin
scroll_top=(ie)? truebody().scrollTop : window.pageYOffset
crossobj.top=scroll_top-250+calunits
crossobj.visibility=(dom||ie)? "visible" : "show"
dropstart=setInterval("dropin()",25)
}
function dropin(){
scroll_top=(ie)? truebody().scrollTop : window.pageYOffset
if (parseInt(crossobj.top)<100+scroll_top)
crossobj.top=parseInt(crossobj.top)+40+calunits
else{
clearInterval(dropstart)
bouncestart=setInterval("bouncein()",50)
}
}
function bouncein(){
crossobj.top=parseInt(crossobj.top)-bouncelimit+calunits
if (bouncelimit<0)
bouncelimit+=8
bouncelimit=bouncelimit*-1
if (bouncelimit==0){
clearInterval(bouncestart)
}
}
function dismissbox(){
if (window.bouncestart) clearInterval(bouncestart)
crossobj.visibility="hidden"
}
function truebody(){
return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : 

document.body
}
function get_cookie(Name) {
var search = Name + "="
var returnvalue = ""
if (document.cookie.length > 0) {
offset = document.cookie.indexOf(search)
if (offset != -1) {
offset += search.length
end = document.cookie.indexOf(";", offset)
if (end == -1)
end = document.cookie.length;
returnvalue=unescape(document.cookie.substring(offset, end))
}
}
return returnvalue;
}
function dropornot(){
if (get_cookie("droppedin")==""){
window.onload=initbox
document.cookie="droppedin=yes"
}
}
dropornot()


DIV
<div id="dropin" 

style="position:fixed;visibility:hidden;left:40%;top:500px;width:430px;height:430px;background-co

lor:#EBEBEB">
<div align="right"><a href="action.php" onClick="dismissbox();return false">
<img src="banner/img/close.png" border=0 vspace=0 hspace=0 align="right" width="15" height="15" 

alt="закрыть"/>
</a></div>
<p><center><font style="font-size:19px; color:#FF0000;">Здесь текст</font><br><br><a 

href="action.php"><img src="banner/img/glass_banner.png"   border="0"></a><br><br>
<a href="action.php"><b>Подробнее>>></b></a>
</center></p>
</div>


Здесь тестируемая страница: http://glass-pgc.ru/1.php
Ответить с цитированием
  #2 (permalink)  
Старый 07.07.2012, 15:31
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

sashgera,
Как сделать,чтобы cookie удалялась через сутки после создания?
Ответить с цитированием
  #3 (permalink)  
Старый 07.07.2012, 15:55
Профессор
Отправить личное сообщение для oneguy Посмотреть профиль Найти все сообщения от oneguy
 
Регистрация: 31.05.2012
Сообщений: 396

Для Firefox можно сделать так: повесить обработчик на событие window.onunload и в нём удалить куку.
Ответить с цитированием
  #4 (permalink)  
Старый 07.07.2012, 16:25
Кандидат Javascript-наук
Отправить личное сообщение для sashgera Посмотреть профиль Найти все сообщения от sashgera
 
Регистрация: 20.09.2011
Сообщений: 140

Нужно чтобы cookie удалялись сразу после закрытия div или перезагрузки/переходе страницы. Дата истечения, когда удалить cookies не подходит.
Ответить с цитированием
  #5 (permalink)  
Старый 07.07.2012, 16:38
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

sashgera,
я дал Вам ссылку на рабочую функцию куков с пояснениями
Ответить с цитированием
  #6 (permalink)  
Старый 07.07.2012, 17:03
Кандидат Javascript-наук
Отправить личное сообщение для sashgera Посмотреть профиль Найти все сообщения от sashgera
 
Регистрация: 20.09.2011
Сообщений: 140

oneguy,
window.onunload кажется, срабатывает при переходе на другую страницу, мне это не подходит. Нужно чтобы cookie удалялась сразу после закрытия div. Так все-таки, может кто ответит - почему в моем случае Мозила не удаляет куки?
Ответить с цитированием
  #7 (permalink)  
Старый 07.07.2012, 17:22
Кандидат Javascript-наук
Отправить личное сообщение для sashgera Посмотреть профиль Найти все сообщения от sashgera
 
Регистрация: 20.09.2011
Сообщений: 140

Deff,
Перешел по Вашей ссылки и все внимательно прочитал. Я новичок, слабо разбираюсь в javascript. Я выложил Java-скрипт, может быть, Вы укажете, где именно ошибка? Во всех браузерах срабатывает, кроме Мозилы.
Ответить с цитированием
  #8 (permalink)  
Старый 07.07.2012, 20:32
Профессор
Отправить личное сообщение для oneguy Посмотреть профиль Найти все сообщения от oneguy
 
Регистрация: 31.05.2012
Сообщений: 396

Сообщение от sashgera
Так все-таки, может кто ответит - почему в моем случае Мозила не удаляет куки?
Это не ошибка, Firefox перед закрытием браузера сохраняет состояния вкладок и при повторном запуске восстанавливает эти состояния, при этом считает, что во вкладках продолжается предыдущая сессия. В стандарте написано, что если в куке не указываются атрибуты Expires и Max-age, то кука должна храниться до конца текущей сессии, при этом браузеры могут по-своему определять конец сессии.
Ответить с цитированием
  #9 (permalink)  
Старый 07.07.2012, 20:38
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Просто ставить кук на время (*тогда траблов не возникает,
Хотя можно ставить два кука на текущую сессию и на длинное время -
тестируем наличия кука по одновременному наличию кука сессии и наличию кука по времени
а стираем лишь кук по длинному времени

Последний раз редактировалось Deff, 07.07.2012 в 20:49.
Ответить с цитированием
  #10 (permalink)  
Старый 07.07.2012, 20:42
Профессор
Отправить личное сообщение для oneguy Посмотреть профиль Найти все сообщения от oneguy
 
Регистрация: 31.05.2012
Сообщений: 396

sashgera, я вас не совсем понял. Вы пишете:
Сообщение от sashgera Посмотреть сообщение
Нужно чтобы cookie удалялись сразу после закрытия div или перезагрузки/переходе страницы.
Сообщение от sashgera Посмотреть сообщение
oneguy,
window.onunload кажется, срабатывает при переходе на другую страницу, мне это не подходит.
Ещё вопрос: какой div вы имеете ввиду? Рекламный баннер?
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Книга: JavaScript. Сильные стороны Magneto Учебные материалы 16 21.04.2013 15:28
Первый Moscow JavaScript Meetup korenyushkin Общие вопросы Javascript 0 26.07.2011 15:23
javascript вставки в vrml сцены. Передать событие из броузера Proletariy Javascript под браузер 0 10.05.2011 12:26
Последние книги по JavaScript! monolithed Учебные материалы 7 26.10.2010 19:40
Выдвет ошибку JavaScript Ромио Opera, Safari и др. 4 21.10.2010 20:34