AAA Главная
Примеры PHP Примеры JavaScript Примеры Ajax Примеры CSS,HTML

Задержка вывода рекламы

Вот пример, в котором перед появлением рекламы, на определенное время появляется баннер загрузки, в соответствующем месте.

<script type="text/javascript">
function replaceNode(source, target, call) {
var delay = 2; // время в секундах, в течении которого показываем баннер загрузки
var targetEl = document.getElementById(target);
var sourceEl = document.getElementById(source);
if (call === undefined) {
   /* Если блок не отобразил текст рекламы, то баннер загрузки вообще не показываем (чтоб зря не беспокоить юзера).
   Так как innerText не работает в файрфоксе, то берем innerHTML и вырезаем из него все скрипты и тэги, то есть оставляем
   только "полезный" текст.
   Я использую stripScripts, stripTags, и strip яваскриптового фреймворка Prototype, но здесь
   достаточно вырезать все скрипты и тег link при помощи регулярных выражений, или просто выкинуть следующие
   4 строки кода, если неохота заморачиваться. */
   var advTxt = sourceEl.innerHTML;
   advTxt = advTxt.stripScripts().stripTags().strip();
   if (!advTxt) return;
   targetEl.style.display = 'block';
   // функция вызовет себя через время delay секунд
   window.setTimeout(function (){replaceNode(source, target, 'true');}, delay*1000);
   return;
}
// попадаем сюда при повторном вызове
targetEl.innerHTML = '';
targetEl.appendChild(sourceEl);
sourceEl.style.display = 'block';
}
</script>
...
Текст страницы
...

<div id="Target">
Через пару секунд здесь появится реклама
</div>
:
Текст страницы
:

// Перевешиваем рекламу.
// Функцию можно вызывать и для нескольких различных блоков (директ, адсенс итп), указываем соответствующие id источника и приемника.

<div id="Source" style="display:none;">
Блок с рекламой
</div>
replaceNode('Source', 'Target');

Другой вариант задержки вывода рекламы с использованием SetTimeout

setTimeout('
	e=document.createElement("script");
	e.setAttribute("src","myscript.js");
	e.setAttribute("type","text/javascript");
	document.getElementsByTagName("head")[0].appendChild(e)',
1);


Сокращенная запись
document.getElementById('adv_place_1').appendChild(document.getElementById('adv_block_1'));

.

© Copyright 2008- by KDG



Rambler's Top100