Banner.Holder™Ad.Holder™Context.Holder™System.Holder™Video.Holder™

Логин


зарегистрироваться

Пароль


напомнить пароль

Система

Инфо-центр
Banner.Holder
Ad.Holder
Context.Holder
System.Holder
Video.Holder

Если Вы все же не нашли нужную информацию, воспользуйтесь обратной связью.

System.Holder™

Ajax код площадки системы Holder имеет вид:

<script src="//i.holder.com.ua/t/holder.js" type="text/javascript"></script>

<div id="holder_300x250_34"></div><script type="text/javascript">
new holder("holder_300x250_34",{block:1234});
</script>


Чтобы разместить его через другую систему, нужно:
- Преобразовать код площадки в асинхронный javascript код
- В сторонней системе загрузить этот код как асинхроный (ajax) баннер

Как правило, сторонняя система, как и система Holder, создает свой блок div с определенным id (например <div id="placeID"></div>) и в этом блоке вызывает свою площадку.

Если на всех страницах сайта установлена библиотека системы Holder в head (или в body, но не в iframe и выше всех вызовов площадок системы Holder) то преобразованный код площадки для загрузки через стороннюю систему будет иметь вид:

new holder("placeID",{block:1234});

где "placeID" - id блока div созданного сторонней системой. Фактически, мы подставляем "placeID" вместо id блока системы Holder (в примере это "holder_300x250_34")

Возможно, нужно будет обернуть вышеуказанный код в теги script (зависит от сторонней системы, в некоторых системах эти теги добавляются атоматически, в некоторых нужно добавлять самостоятельно), тогда код будет иметь вид:

<script type="text/javascript">
new holder("placeID",{block:1234});
</script>


Если Вы хотите, чтобы библиотека системы Holder вызывалась только тогда, когда стороняя система вызывает площадку системы Holder, а не при каждой загрузке страницы, тогда в сторонней системе как асинхронный баннер следует загрузить следующий код:

(function(){
function load(){
new holder("placeID",{block:1234});
}
lS=function(src,f,d){
var s="SCRIPT",s0=d.createElement(s),si=d.getElementsByTagName(s)[0];
s0.async=true;
s0.src=src;
s0.onload=s0.onreadystatechange=function(e){
if(!s0.readyState||s0.readyState=='loaded'||s0.readyState=='complete'){
s0.onload=s0.onreadystatechange=null;
f();
}
};
si.parentNode.insertBefore(s0, si);
}
if(typeof holder=='undefined')lS('http://i.holder.com.ua/t/holder.js',load,document);
else load();
})();


И как я уже говорил, возможно Вам придется добавить теги script:

<script type="text/javascript">
(function(){
function load(){
new holder("placeID",{block:1234});
}
lS=function(src,f,d){
var s="SCRIPT",s0=d.createElement(s),si=d.getElementsByTagName(s)[0];
s0.async=true;
s0.src=src;
s0.onload=s0.onreadystatechange=function(e){
if(!s0.readyState||s0.readyState=='loaded'||s0.readyState=='complete'){
s0.onload=s0.onreadystatechange=null;
f();
}
};
si.parentNode.insertBefore(s0, si);
}
if(typeof holder=='undefined')lS('http://i.holder.com.ua/t/holder.js',load,document);
else load();
})();
</script>


Если на сайте устанавливаются несколько площадок через стороннюю систему одним из двух вышепредложенных способов, они будут иметь только 2 отличия в строке:
new holder("placeID",{block:1234});
а именно значением "placeID" и значением парамметра block, для каждой площадки "placeID" и значением парамметра block будут свои.

cкрыть ответ