Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 07.07.2012, 22:02
Аватар для Dim@
Профессор
Отправить личное сообщение для Dim@ Посмотреть профиль Найти все сообщения от Dim@
 
Регистрация: 21.04.2012
Сообщений: 951

sashgera,
var calunits=document.layers? "" : "px"
ааа еще один continue в z = x ? x : continue;
Ответить с цитированием
  #12 (permalink)  
Старый 07.07.2012, 22:09
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

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

будет всплывать один раз при открытии страницы, затем для его появления потребуется перезапуск
Поставьте кук на три часа - будет всплывать раз в три часа - имхо нафег Вам при каждом новом открытии брауза ? Ежли я прячу порнуху от начальства, - то могу открывать/закрывать по сто раз, а ежели серфинг в гугле - то порой и сутки браузер не закрывается ...
так что оптимум - не заморачивацо на сессиях браузера
Ответить с цитированием
  #13 (permalink)  
Старый 07.07.2012, 23:24
Кандидат Javascript-наук
Отправить личное сообщение для sashgera Посмотреть профиль Найти все сообщения от sashgera
 
Регистрация: 20.09.2011
Сообщений: 140

Сообщение от oneguy Посмотреть сообщение
sashgera, я вас не совсем понял. Вы пишете:


Ещё вопрос: какой div вы имеете ввиду? Рекламный баннер?
oneguy,
Да, я имею ввиду рекламный баннер - http://www.glass-pgc.ru/1.php
Как я писал выше, я слабо владею языком программирования JavaScript. JavaScript который я выложил, нашел в просторах Интернета.
Опишу проще, что мне нужно - JavaScript и DIV (рекламный блок) будут в header.php (в шапке сайта). При открытии любой страницы сайта всплывает DIV c рекламой, если его закрыть, то он не должен больше всплывать при перезагрузке страницы или при переходе на другую страницу этого сайта в течение 2-3 часов (совет Deff).
Если у Вас есть желание оказать мне помощь, то, пожалуйста, внесите изменения в выложенный мной javascript.
Ответить с цитированием
  #14 (permalink)  
Старый 07.07.2012, 23:31
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от sashgera
то, пожалуйста, внесите изменения в выложенный мной javascript.
Ок - но лучше с утра - жарко оч
Ответить с цитированием
  #15 (permalink)  
Старый 08.07.2012, 00:11
Кандидат Javascript-наук
Отправить личное сообщение для sashgera Посмотреть профиль Найти все сообщения от sashgera
 
Регистрация: 20.09.2011
Сообщений: 140

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

Последний раз редактировалось sashgera, 08.07.2012 в 01:23.
Ответить с цитированием
  #16 (permalink)  
Старый 08.07.2012, 05:27
Кандидат Javascript-наук
Отправить личное сообщение для sashgera Посмотреть профиль Найти все сообщения от sashgera
 
Регистрация: 20.09.2011
Сообщений: 140

Deff,
Сообщение от Deff Посмотреть сообщение
Поставьте кук на три часа - будет всплывать раз в три часа
Кук поставил на 1 минуту (тестирую, в дальнейшем выставлю на 2-3 часа) - Opera, Mozilla, Google Chrome, IE - баннер с рекламой всплывает и при перезагрузке/переходе страницы его не видно. Через минуту кук удаляется и повторяется цикл - баннер снова всплывает. Спасибо за совет.
А можно чтобы при перезагрузке браузера (особенно в Мозиле), баннер всплывал, не дожидаясь истечения срока кука?
Сообщение от Deff Посмотреть сообщение
Просто ставить кук на время (*тогда траблов не возникает,
Хотя можно ставить два кука на текущую сессию и на длинное время -
тестируем наличия кука по одновременному наличию кука сессии и наличию кука по времени
а стираем лишь кук по длинному времени
Ниже, изменения которые я внес в 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()
Ответить с цитированием
  #17 (permalink)  
Старый 08.07.2012, 10:54
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

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>

Последний раз редактировалось Deff, 08.07.2012 в 10:59.
Ответить с цитированием
  #18 (permalink)  
Старый 08.07.2012, 19:29
Кандидат Javascript-наук
Отправить личное сообщение для sashgera Посмотреть профиль Найти все сообщения от sashgera
 
Регистрация: 20.09.2011
Сообщений: 140

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

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

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

Сообщение от 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 в 20:03.
Ответить с цитированием
  #20 (permalink)  
Старый 08.07.2012, 19:44
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

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

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


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

Последний раз редактировалось Deff, 08.07.2012 в 20:03.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Книга: 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