2010-05-12 5 views
1

J'ai modifié le code afin de charger le fond de la page dans un div masqué et attaché un gestionnaire d'événement onload appelé document.getElementById (xxx) .appendChild() pour prendre l'annonce cachée et la placer au bon endroit sur ma page. Cela fonctionne GRAND .. cependant quand l'annonce est une annonce textuelle APRÈS que je déplace l'annonce il n'y a rien dans l'Iframe rendu. J'ai fait des tests pour voir à quoi ça ressemble avant de le déplacer et bien sûr les liens de texte se chargent dans l'IFRAME mais la seconde je fais l'appel appendChild pour déplacer le div qui contient l'annonce je semble perdre le contenu de l'Iframe.Publier des annonces en cours de chargement - utiliser appendChild pour déplacer un IFRAME avec des annonces textuelles

Toutes les idées ce qui se passe

<div id="myad" style="display: none;"> 
    GA_googleFillSlot("MyADSlotName"); 
</div> 

<script> 
window.onload = function() { 
    // leader board 
    document.getElementById('adplaceholder').appendChild(document.getElementById('myAd')); 
    document.getElementById('myAd').style.display = ''; 
</script> 

MISE À JOUR: Je pense que le problème est que les annonces textuelles Google écrit à l'iframe insérer directement les liens texte pertinents où se trouvent sur d'autres annonces utilise le iframe il suffit de pointer vers un src. semble comme quand je fais l'appendchild, s'il n'y a pas de "src" défini pour l'iframe après que la copie est faite l'iframe dans le nouvel emplacement ne contient rien ... deviner qu'il fait un rechargement sur le src? De toute façon autour de cela ??

+0

Pourquoi le faites-vous de cette façon? – ceejayoz

+0

Je fais cela pour forcer les publicités à se charger au bas de la page et une fois chargé, je peux le déplacer à l'endroit où je veux qu'il soit montré à l'utilisateur. Cela me permet de charger la majorité de la page sans avoir à bloquer le chargement des annonces – Prem

Répondre

1

Cela devrait faire l'affaire:

<div id="adsense_empty">placeholder</div> 
<div id="adsense_content" style="display: none;"> 
    <script src="adsense">...</script> 
</div> 

<script> 
function replace(oldel, newel, show) { 
    if (typeof newel == "string") 
    newel = document.getElementById(newel); 
    if (typeof oldel == "string") 
    oldel = document.getElementById(oldel); 
    if (newel && oldel) 
    oldel.parentNode.replaceChild(newel, oldel); 
    if (show) 
    newel.style.display = ""; 
} 

window.onload = function() { 
    replace("adsense_empty", "adsense_content", true); 
    replace("adsense_empty2", "adsense_content2", true); 
    replace("adsense_empty3", "adsense_content3", true); 
}; 
</script> 
0

essayer. Si Google met un IFrame, placez le contenu de l'IFrame, sinon procédez comme d'habitude:

if (document.getElementById('banner_leaderboard')) 
{ 
    if (document.getElementById('google_ads_iframe_XXXXX_AllSite_Leaderboard_728x90'))   
    { 
     var el1 = document.getElementById('banner_leaderboard'); 
     el1.innerHTML = document.getElementById('google_ads_iframe_XXXXX_AllSite_Leaderboard_728x90').contentWindow.document.body.innerHTML; 
    } 
    else 
    { 
     document.getElementById('banner_leaderboard').appendChild(document.getElementById('banner_leaderboard_hidden')); 
     document.getElementById('banner_leaderboard_hidden').style.display = 'block'; 
    } 
} 
Questions connexes