Javascript-форум (https://javascript.ru/forum/)
-   Firefox/Mozilla (https://javascript.ru/forum/css-html-firefox-mizilla/)
-   -   javascript не удалят куки из Мозила (https://javascript.ru/forum/css-html-firefox-mizilla/29689-javascript-ne-udalyat-kuki-iz-mozila.html)

sashgera 07.07.2012 14:20

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

Deff 07.07.2012 15:31

sashgera,
http://javascript.ru/forum/misc/2942...tml#post184541

oneguy 07.07.2012 15:55

Для Firefox можно сделать так: повесить обработчик на событие window.onunload и в нём удалить куку.

sashgera 07.07.2012 16:25

Нужно чтобы cookie удалялись сразу после закрытия div или перезагрузки/переходе страницы. Дата истечения, когда удалить cookies не подходит.

Deff 07.07.2012 16:38

sashgera,
я дал Вам ссылку на рабочую функцию куков с пояснениями

sashgera 07.07.2012 17:03

oneguy,
window.onunload кажется, срабатывает при переходе на другую страницу, мне это не подходит. Нужно чтобы cookie удалялась сразу после закрытия div. Так все-таки, может кто ответит - почему в моем случае Мозила не удаляет куки?

sashgera 07.07.2012 17:22

Deff,
Перешел по Вашей ссылки и все внимательно прочитал. Я новичок, слабо разбираюсь в javascript. Я выложил Java-скрипт, может быть, Вы укажете, где именно ошибка? Во всех браузерах срабатывает, кроме Мозилы.

oneguy 07.07.2012 20:32

Цитата:

Сообщение от sashgera
Так все-таки, может кто ответит - почему в моем случае Мозила не удаляет куки?

Это не ошибка, Firefox перед закрытием браузера сохраняет состояния вкладок и при повторном запуске восстанавливает эти состояния, при этом считает, что во вкладках продолжается предыдущая сессия. В стандарте написано, что если в куке не указываются атрибуты Expires и Max-age, то кука должна храниться до конца текущей сессии, при этом браузеры могут по-своему определять конец сессии.

Deff 07.07.2012 20:38

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

oneguy 07.07.2012 20:42

sashgera, я вас не совсем понял. Вы пишете:
Цитата:

Сообщение от sashgera (Сообщение 187051)
Нужно чтобы cookie удалялись сразу после закрытия div или перезагрузки/переходе страницы.

Цитата:

Сообщение от sashgera (Сообщение 187064)
oneguy,
window.onunload кажется, срабатывает при переходе на другую страницу, мне это не подходит.

Ещё вопрос: какой div вы имеете ввиду? Рекламный баннер?

Dim@ 07.07.2012 22:02

sashgera,
var calunits=document.layers? "" : "px"
:D ааа еще один continue в z = x ? x : continue;

Deff 07.07.2012 22:09

Цитата:

Сообщение от sashgera
Блок

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

Поставьте кук на три часа - будет всплывать раз в три часа - имхо нафег Вам при каждом новом открытии брауза ? Ежли я прячу порнуху от начальства, - то могу открывать/закрывать по сто раз, а ежели серфинг в гугле - то порой и сутки браузер не закрывается ...
так что оптимум - не заморачивацо на сессиях браузера

sashgera 07.07.2012 23:24

Цитата:

Сообщение от oneguy (Сообщение 187113)
sashgera, я вас не совсем понял. Вы пишете:


Ещё вопрос: какой div вы имеете ввиду? Рекламный баннер?

oneguy,
Да, я имею ввиду рекламный баннер - http://www.glass-pgc.ru/1.php
Как я писал выше, я слабо владею языком программирования JavaScript. JavaScript который я выложил, нашел в просторах Интернета.
Опишу проще, что мне нужно - JavaScript и DIV (рекламный блок) будут в header.php (в шапке сайта). При открытии любой страницы сайта всплывает DIV c рекламой, если его закрыть, то он не должен больше всплывать при перезагрузке страницы или при переходе на другую страницу этого сайта в течение 2-3 часов (совет Deff).
Если у Вас есть желание оказать мне помощь, то, пожалуйста, внесите изменения в выложенный мной javascript.

Deff 07.07.2012 23:31

Цитата:

Сообщение от sashgera
то, пожалуйста, внесите изменения в выложенный мной javascript.

Ок - но лучше с утра - жарко оч

sashgera 08.07.2012 00:11

Deff, спасибо, если можно с комментариями

sashgera 08.07.2012 05:27

Deff,
Цитата:

Сообщение от Deff (Сообщение 187138)
Поставьте кук на три часа - будет всплывать раз в три часа

Кук поставил на 1 минуту (тестирую, в дальнейшем выставлю на 2-3 часа) - Opera, Mozilla, Google Chrome, IE - баннер с рекламой всплывает и при перезагрузке/переходе страницы его не видно. Через минуту кук удаляется и повторяется цикл - баннер снова всплывает. Спасибо за совет.
А можно чтобы при перезагрузке браузера (особенно в Мозиле), баннер всплывал, не дожидаясь истечения срока кука?
Цитата:

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

Ниже, изменения которые я внес в 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
var today = new Date(); 
 d = new Date(today.getTime() + (01*60*1000)); // 23*60*60*1000 -23 - это количество часов, потом умножаем на 60 минут, на 60 секунд, на 1000 миллисекунд (сейчас стоит на 1 минуту)
document.cookie="droppedin=yes; path=/; expires=" + d.toGMTString();
}
}
dropornot()

Deff 08.07.2012 10:54

sashgera,
Чо нидь типо так - поправите если что не так:
<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>


<script>
function setcookie(a,b,c) {if(c){var d = new Date();d.setTime(d.getTime()+c);}if(a && b) document.cookie = a+'='+b+(c ? '; expires='+d.toUTCString() : '');else return false;}
function getcookie(a) {var b = new RegExp(a+'=([^;]){1,}');var c = b.exec(document.cookie);if(c) c = c[0].split('=');else return false;return c[1] ? c[1] : false;}


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 dropornot(){
  if (!getcookie("droppedin")||!getcookie("Session")){ //Если хотя бы одного кука  нет  - перезапускаем
     setcookie("Session",true) ;//Кук на сессию;
     setcookie("droppedin",true,1*60*1000) ;//Кук на минуту

     window.onload=initbox; //Запуск 
 }
} dropornot();
</script>

sashgera 08.07.2012 19:29

Deff,
Opera, Google Chrome, IE - при открытие браузера - баннер с рекламой всплывает и сразу прячется, через минуту при перезагрузке/переходе на другую страницу этого сайта - также, баннер всплывает и сразу прячется, а нужно, чтобы баннер всплыл и его закрыли вручную.
Здесь страница с внесенными Вами изменениями http://www.glass-pgc.ru/1.php

В Мозила - при открытие браузера (в настройках - "При запуске Firefox: Показать окна и вкладки, открытые в прошлый раз) - баннер с рекламой не всплывает, через минуту при перезагрузке/переходе на другую страницу этого сайта - баннер всплывает и сразу прячется.

Цитата:

Сообщение от oneguy (Сообщение 187107)
Это не ошибка, Firefox перед закрытием браузера сохраняет состояния вкладок и при повторном запуске восстанавливает эти состояния, при этом считает, что во вкладках продолжается предыдущая сессия. В стандарте написано, что если в куке не указываются атрибуты Expires и Max-age, то кука должна храниться до конца текущей сессии, при этом браузеры могут по-своему определять конец сессии.

Может быть есть способ обойти Мозила, не меняя в настройках "Показать окна и вкладки…"?

Deff 08.07.2012 19:35

Цитата:

Сообщение от sashgera
баннер с рекламой всплывает и сразу прячется, через минуту при

Эт ошибка где то при трансформации Вашего кода
Вот эта часть - вся моя добавка
function dropornot(){
  if (!getcookie("droppedin")||!getcookie("Session")){ //Если хотя бы одного кука  нет  - перезапускаем
     setcookie("Session",true) ;//Кук на сессию;
     setcookie("droppedin",true,10*60*1000) ;//Кук на минуту
     window.onload=initbox; //Запуск 
 }
} dropornot();
Куки стоят и всё это сработало

( где то лаганул при правке Вашего кода из скрипта Выше

Deff 08.07.2012 19:44

sashgera,
Автосворачивает вот этот кусок кода
/*
else{

clearInterval(dropstart)
bouncestart=setInterval("bouncein()",50)
}*/ (но имхо походу тут в логике что то не АЙС
если его убрать всё в норме


наверно воть эта строка не нужна => bouncestart=setInterval("bouncein()",50)

sashgera 08.07.2012 20:44

Deff, строку которую Вы указали, убрал, теперь все нормально - http://www.glass-pgc.ru/1.php
А как насчет способа обойти Мозила, не меняя в настройках "Показать окна и вкладки…"?

Deff 08.07.2012 20:46

Собстна вопрос - а что не устранивает - два - три часа ?

Deff 08.07.2012 21:58

sashgera,
Кстати вроде я понял зачем эта строка

bouncestart=setInterval("bouncein()",50)

Она автозакрывает рекламу, если пользователь долго думает или отошел, но тады нужно существенно увеличить время для автосворачивания

bouncestart=setInterval("bouncein()",5000)

Deff 08.07.2012 22:06

Воть какая та статья про куки в Мозилле

http://forum.mozilla-russia.org/viewtopic.php?id=44668

Цитата:

Надо на той же странице настроек поставить галочку «Очищать историю при закрытии Firefox», нажать рядом кнопку «Параметры» и отметить там куки.

sashgera 08.07.2012 23:19

Deff,
Цитата:

Сообщение от Deff (Сообщение 187339)
Собстна вопрос - а что не устранивает - два - три часа ?

Да нет - все устраивает, просто думал, что если есть простое решение, ну типа дописать пару строк в коде, то не помешает.

Цитата:

Сообщение от Deff (Сообщение 187352)
sashgera,
Кстати вроде я понял зачем эта строка
bouncestart=setInterval("bouncein()",50)
Она автозакрывает рекламу, если пользователь долго думает или отошел, но тады нужно существенно увеличить время для автосворачивания
bouncestart=setInterval("bouncein()",5000)

Понял, автосворачивание не нужно. А эта строка влияет на скорость сворачивания: var bouncelimit=32


Цитата:

Сообщение от Deff (Сообщение 187353)
Воть какая та статья про куки в Мозилле
http://forum.mozilla-russia.org/viewtopic.php?id=44668

Каждому посетителю сайта браузер не настроишь, есть люди, которые отключают в настойках javascript (считают что он может навредить) или в настройках отключают Показывать изображения (практиковалось в 90-ых годах, чтобы увеличить скорость и сэкономить трафик). Короче каждому не угодишь.
Вам большое спасибо, Вы мне здорово помогли!

sashgera 09.07.2012 21:54

Deff,
У меня возник еще вопрос, поможете?
В корне директории сайта, есть еще папка "_joom", в ней тоже находятся страницы сайта. Соответственно куки получаю: droppedin: true, Session: true и _joom droppedin: true, _joom Session: true
Проблема заключается в том, что если зайти на страницу, которая в директории "_joom", баннер всплывет, но если с нее перейти на страницу которая в корне, баннер всплывает еще раз.
Наверное, дело в атрибуте path, но как его прописать не знаю

oneguy 09.07.2012 22:14

Цитата:

Сообщение от sashgera (Сообщение 187611)
Наверное, дело в атрибуте path, но как его прописать не знаю

Так:
document.cookie="name=value; Path=/bla/bla/";

Если корневую директорию, то:
document.cookie="name=value; Path=/";

sashgera 09.07.2012 22:50

oneguy,
Цитата:

Сообщение от oneguy (Сообщение 187618)
Так:
document.cookie="name=value; Path=/bla/bla/";

Если корневую директорию, то:
document.cookie="name=value; Path=/";

не помогает, вот полностью javascript:
document.cookie="name=value; Path=/"
function setcookie(a,b,c) {if(c){var d = new Date();d.setTime(d.getTime()+c);}if(a && b) document.cookie = a+'='+b+(c ? '; expires='+d.toUTCString() : '');else return false;}
function getcookie(a) {var b = new RegExp(a+'=([^;]){1,}');var c = b.exec(document.cookie);if(c) c = c[0].split('=');else return false;return c[1] ? c[1] : false;}


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)
  }
}

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 dropornot(){
  if (!getcookie("droppedin")||!getcookie("Session")){ //Если хотя бы одного кука  нет  - перезапускаем
     setcookie("Session",true) ;//Кук на сессию;
     setcookie("droppedin",true,01*60*1000) ;

     window.onload=initbox; //Запуск 
 }
} dropornot();

Deff 09.07.2012 23:39

sashgera,
Воть Куки с патчем => http://hostjs-mybb2011.narod.ru/js/C...ary_v_011_4.js

там
getCookie01(name)
setCookie01(name, value, expires, path, domain)

oneguy 10.07.2012 00:12

Цитата:

Сообщение от sashgera
oneguy,
Сообщение от oneguy Посмотреть сообщение
Так:
document.cookie="name=value; Path=/bla/bla/";

Если корневую директорию, то:
document.cookie="name=value; Path=/";
не помогает, вот полностью javascript:

Извините, видимо влез не туда. Вы просили разобраться с конкретным кодом, а я дал общий ответ на вопрос. Я имел ввиду, что эту инструкцию нужно вставить в нужное место и заменить name и value на имя и значение куки.

sashgera 10.07.2012 00:20

Deff,
Цитата:

Сообщение от Deff (Сообщение 187639)
sashgera,
Воть Куки с патчем => http://hostjs-mybb2011.narod.ru/js/C...ary_v_011_4.js

там
getCookie01(name)
setCookie01(name, value, expires, path, domain)

Куки с патчем посмотрел, но как я уже писал выше, я новичок, и как прописать патчи я не знаю. А этот баннер нужен позарез. Может быть, выложите мой javascript с этим патчем?

Deff 10.07.2012 00:46

Цитата:

Сообщение от sashgera
и как прописать патчи я не знаю

http://javascript.ru/document/cookie

sashgera 10.07.2012 01:26

Deff,
Цитата:

Сообщение от Deff (Сообщение 187651)

спасибо, но я уже писал, что я СОВСЕМ не владею языком программирования javascript

sashgera 10.07.2012 01:31

куки и директории сайта
 
При загрузке сайта выезжает блок с рекламой, при закрытии блока он не показывается в течение ~какого-то времени (сейчас 1 минута). Все работает (помог мне в этом Deff). Вот тестовая страница http://www.glass-pgc.ru/1.php
Но есть небольшая проблема - в корне директории сайта, есть еще папка "_joom", в ней тоже находятся страницы сайта. Соответственно куки получаю: droppedin: true, Session: true и _joom droppedin: true, _joom Session: true
Проблема заключается в том, что если зайти на страницу, которая в директории "_joom", баннер всплывет, но если с нее перейти на страницу которая в корне, баннер всплывает еще раз.
Если у кого есть желание оказать помощь - дописать javascript, буду благодарен
DIV
<div id="dropin" style="position:fixed;visibility:hidden;left:40%;top:500px;width:430px;height:480px;background-color:#EBEBEB">
<div align="right"><a href="1.php" onClick="dismissbox();return false">
<img src="banner/img/close.png" border=0 vspace=0 hspace=0 align="right" width="32" height="32" alt="закрыть"/>
</a></div>
<p><center><font style="font-size:19px; color:#FF0000;">Здесь текст</font><br><br><a href="1.php"><img src="img1/no_image_.jpg"   border="0"></a><br><br>
<a href="1.php"><b>Подробнее>>></b></a>
</center></p>
</div>


Javascript
<script>
function setcookie(a,b,c) {if(c){var d = new Date();d.setTime(d.getTime()+c);}if(a && b) document.cookie = a+'='+b+(c ? '; expires='+d.toUTCString() : '');else return false;}
function getcookie(a) {var b = new RegExp(a+'=([^;]){1,}');var c = b.exec(document.cookie);if(c) c = c[0].split('=');else return false;return c[1] ? c[1] : false;}


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)
  }
}

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 dropornot(){
  if (!getcookie("droppedin")||!getcookie("Session")){ //Если хотя бы одного кука  нет  - перезапускаем
     setcookie("Session",true) ;//Кук на сессию;
     setcookie("droppedin",true,1*60*1000) ;//Кук на минуту

     window.onload=initbox; //Запуск 
 }
} dropornot();
</script>

Deff 10.07.2012 03:27

sashgera,
Попробуте заменить - если удачно - перезалейте внешний скрипт к себе - замените ссылку
<script src="http://hostjs-mybb2011.narod.ru/js/CookieJsLibrary_v_011_4.js"></script>

<script>
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)
  }
}

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 dropornot(){
  if (!getCookie01("droppedin")||!getCookie01("Session")){ //Если хотя бы одного кука  нет  - перезапускаем
     setCookie01("Session",true,'','/') ;//Кук на сессию;
     setCookie01("droppedin",true,1*60*1000,'/') ;//Кук на минуту

     window.onload=initbox; //Запуск 
 }
} dropornot();
</script>

sashgera 10.07.2012 15:24

Deff,
Цитата:

Сообщение от Deff (Сообщение 187670)
sashgera,
Попробуте заменить - если удачно - перезалейте внешний скрипт к себе - замените ссылку

Вы меня не поняли или я плохо объяснил. Еще раз, в корневой директории сайта - статичные страницы с расширением php, также в корне сайта есть папка "_joom" в ней Joomla. В шапках файлов header.php (корень сайта) и index.php (папка "_joom) код с баннером DIV c подключением javascript: <SCRIPT type="text/JavaScript" src="папка/джаваскрипт.js"></SCRIPT>
В итоге, если зайти на страницу Joomla баннер всплывет, но если с нее перейти на статичную страницу - баннер повторно всплывает. А нужно, как и было задумано - на время и сессию.
Если зайти со статичной страницы, получаю куки - droppedin: true, Session: true
Если с Joomla, получаю куки - droppedin: true, Session: true, _joom droppedin: true, _joom Session: true
Библиотеку CookieJsLibrary_v11.4.4 подключил, она работает, но это не то, что мне нужно, в итоге в статичных страницах баннер всплывает, в Joomla - нет.

Deff 10.07.2012 15:48

sashgera,
:blink:
Ничо не понял ...
есть один доменный адрес - выложите примерный адрес
есть второй адрес - выложите примерный адрес
что происходит с первым и вторым адресом и что должно происходить

Или что происходит: при переходе с первого на второй или со второго на первый

sashgera 10.07.2012 16:18

Deff,
Домен один http://www.glass-pgc.ru , но в корне есть папка "_joom" в ней Joomla
Вот статичные страницы (в корне) http://www.glass-pgc.ru
Вот страницы "_joom" http://www.glass-pgc.ru/_joom/ , если зайти отсюда и кликнуть по баннеру, будет переход на статичную страницу php и он всплывет еще раз.
Почему на сайте и Joomla и статичные страницы php - это странные для меня указания директора

Deff 10.07.2012 16:30

sashgera,
Ок покавыряюсь - ток не быстро
а отключить на _joom -скрипт - не проще ? (или слегка модифицировать ?

sashgera 10.07.2012 16:49

Deff,
Если отключись на "_joom" javascript, то там баннер не будет всплывать, а нужно чтобы всплывал (на время и сессию) на всех страницах, независимо в какой директории они находятся.
Может быть дело в дело в атрибуте "path"? Но как его прописать в моем javascript - не знаю. Вот кстати похожая проблема http://www.softtime.ru/forum/read.ph...=50508&page=30


Часовой пояс GMT +3, время: 12:36.