Регистрация Войти
Войти через VK Войти через FB Войти через Google Войти через Яндекс
Войти через VK Войти через FB Войти через Google Войти через Яндекс
Поиск по сайту
Задержка вывода рекламы
Вот пример, в котором перед появлением рекламы, на определенное время появляется баннер загрузки, в соответствующем месте.
<script>
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'));
.
Прокомментировать/Отблагодарить