Справочники, инструменты, документация

JavaScript: Отображение блока в указанное время

Блок, который будет отображаться один раз в указанное количество времени на Cookie. Пользователи сайта будут видеть любой контент (будь то реклама, материал, анекдот и т.д.) один раз в указанный интервал времени. Можно указывать лишь в часах (1 час, 2 часа...).

После <head> вставляйте:

<script type="text/javascript">
//["ID of content to frequency cap", "Display frequency interval (full hours only)"]
var capcontent=new Array()
capcontent[0]=["myad", "1 hr"]
capcontent[1]=["mynote", "3 hr"]

function get_cookie(Name) {
var search = Name + "="
var returnvalue = "";
if (document.cookie.length > 0) {
offset = document.cookie.indexOf(search)
if (offset != -1) { // if cookie exists
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 resetcookie(id){
var expireDate = new Date()
expireDate.setHours(expireDate.getHours()-10)
document.cookie = id+"=;path=/;expires=" + expireDate.toGMTString()
}

function showorhide(caparray){
if (get_cookie(caparray[0])!='')
document.write("#"+caparray[0]+"{display: none;}\n") //CSS TO HIDE CONTENT BTW FREQUENCY
else{
var expireDate = new Date()
expireDate.setHours(expireDate.getHours()+parseInt(caparray[1]))
document.cookie = caparray[0]+"="+parseInt(caparray[1])+";path=/;expires=" + expireDate.toGMTString()
}
}

document.write('<style type="text/css">\n')

for (i=0; i<capcontent.length; i++){
if (get_cookie(capcontent[i][0])!=parseInt(capcontent[i][1]))
resetcookie(capcontent[i][0])
showorhide(capcontent[i])
}

document.write('</style>')
</script>

Обратите внимание на строчки:

capcontent[0]=["myad", "1 hr"] - Контент с ID myad будет отображаться один раз в час.

capcontent[1]=["mynote", "3 hr"] - Контент с ID mynote будет отображаться один раз в три часа.

Можете добавить новые обработчики по шаблону:

capcontent[2]=["content3", "2 hr"]

capcontent[3]=["content4", "5 hr"]

capcontent[4]=["content5", "4 hr"]

Сам контент, который необходимо отображать лишь в определённые интервалы времени, прописываются так:

<div id="myad">
Ваш контент, который будет обновляться раз в час
</div>

Также можно присвоить ID не только контенту в DIV, но и контенту, обрамлённому другими тегами:

<div id="mynote">
Ваш контент, который будет обновляться раз в три часа
</div>