发布广告 - 使用appendChild移动带有文字链接广告的IFRAME

时间:2010-05-12 01:16:00

标签: javascript iframe replace adsense

我已经更改了代码,基本上加载了一个隐藏div中的页面底部,并附加了一个onload事件处理程序,它调用了document.getElementById(xxx).appendChild()来获取隐藏的广告并将其移动到在我的页面中的正确位置。这很有效..但是,当广告是文字广告时,我移动广告后,呈现的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。好像当我做了附加,如果在复制完成后没有为iframe设置“src”,新位置的iframe什么都不包含......猜猜它在src上重新加载了吗?有什么方法吗??

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分: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';
    }
}