Biz tembel-yük OpenX kanunu. Tek sayfalık aramayı sayfanın en üstüne koymak yerine, en alt kısma yerleştirdik. Sayfa yüklendikten sonra, çağrı banner verisini alacak ve doğru kodlar doğru bölgelere doğru banner'ları ekleyecektir.
Aşağıdaki kod uygun bir DOM gerektirir. Eğer jQuery, DOMAssistant, FlowJS vb. Varsa DOM sizin için düzeltilmelidir. Bu kod görüntüler, flash veya HTML içeriği ile normal banner'larla çalışacaktır. Bazı durumlarda, dış sağlayıcılardan (adform, vb.) Pankart kullanırken olduğu gibi çalışmayabilir. Bunun için biraz kod kesmek gerekebilir.
Nasıl kullanılır?
- SPC kodu altında bu kodu eklemek HTML kodu
- sonuna doğru sizin SinglePageCall kodu ekleyin.
- yarım saniye sonra, OpenX kodunuz hazır olmalı ve aşağıdaki kodlar belirtilen DIV'lerin içine yerleştirecektir.
- Oh, evet, HTML kodunuza bazı DIV'leri banner'larınız için yer tutucuları olarak eklemeniz gerekir. Varsayılan olarak, bu afişleri, DIV'leri tamamen gizleyen (görünürlük, ekran ve yükseklik) CSS sınıfı "gizli" olarak ayarlıyorum. Ardından, belirli bir DIV'deki banner başarıyla yüklendikten sonra, gizli sınıfı kaldırırız ve DIV (ve içindeki banner) görünür hale gelir.
Kendi sorumluluğunuzda kullanın! o @Rafa mükemmel cevap takiben
(function(){
if (!document || !document.getElementById || !document.addEventListener || !document.removeClass) {
return; // No proper DOM; give up.
}
var openx_timeout = 1, // limit the time we wait for openx
oZones = new Object(), // list of [div_id] => zoneID
displayBannerAds; // function.
// oZones.<divID> = <zoneID>
// eg: oZones.banner_below_job2 = 100;
// (generated on the server side with PHP)
oZones.banner_top = 23;
oZones.banner_bottom = 34;
displayBannerAds = function(){
if(typeof(OA_output)!='undefined' && OA_output.constructor == Array){
// OpenX SinglePageCall ready!
if (OA_output.length>0) {
for (var zone_div_id in oZones){
zoneid = oZones[zone_div_id];
if(typeof(OA_output[zoneid])!='undefined' && OA_output[zoneid]!='') {
var flashCode,
oDIV = document.getElementById(zone_div_id);
if (oDIV) {
// if it's a flash banner..
if(OA_output[zoneid].indexOf("ox_swf.write")!=-1)
{
// extract javascript code
var pre_code_wrap = "<script type='text/javascript'><!--// <![CDATA[",
post_code_wrap = "// ]]> -->";
flashCode = OA_output[zoneid].substr(OA_output[zoneid].indexOf(pre_code_wrap)+pre_code_wrap.length);
flashCode = flashCode.substr(0, flashCode.indexOf(post_code_wrap));
// replace destination for the SWFObject
flashCode = flashCode.replace(/ox\_swf\.write\(\'(.*)'\)/, "ox_swf.write('"+ oDIV.id +"')");
// insert SWFObject
if(flashCode.indexOf("ox_swf.write")!=-1){
eval(flashCode);
oDIV.removeClass('hidden');
}// else: the code was not as expected; don't show it
}else{
// normal image banner; just set the contents of the DIV
oDIV.innerHTML = OA_output[zoneid];
oDIV.removeClass('hidden');
}
}
}
} // end of loop
}//else: no banners on this page
}else{
// not ready, let's wait a bit
if (openx_timeout>80) {
return; // we waited too long; abort
};
setTimeout(displayBannerAds, 10*openx_timeout);
openx_timeout+=4;
}
};
displayBannerAds();
})();
http://stackoverflow.com/questions/3106782/openx-aysnc-tags –