1

我已经更改了代码,基本上将页面底部加载到隐藏的 div 中,并附加了一个名为 document.getElementById(xxx).appendChild() 的 onload 事件处理程序来获取隐藏的广告并将其移动到正确的位置我的页面。这很好用.. 但是,当广告是文字广告时,在我移动广告之后,呈现的 iframe 中没有任何内容。我在移动它之前进行了测试以查看它的外观,并且确实将文本链接加载到 IFRAME 中,但是第二次我执行 appendChild 调用以移动包含广告的 div,我似乎丢失了 Iframe 的内容。

任何想法发生了什么

<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>

更新:我认为这里的问题是,谷歌在文字广告上写入 iframe,直接插入相关的文本链接,在其他广告上它使用 iframe 指向某个 src。好像当我做 appendchild 时,如果在复制完成后没有为 iframe 设置“src”,那么新位置的 iframe 什么都不包含......猜它会在 src 上重新加载吗?有什么办法吗??

4

2 回答 2

1

这应该可以解决问题:

<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>
于 2010-06-28T19:43:50.020 回答
0

尝试这个。如果 Google 放置了 IFrame,则放置 IFrame 的内容,否则照常进行:

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';
    }
}
于 2010-07-13T12:27:55.500 回答