Javascript 加载后广告-使用appendChild移动带有文本链接广告的IFRAME

Javascript 加载后广告-使用appendChild移动带有文本链接广告的IFRAME,javascript,iframe,replace,adsense,Javascript,Iframe,Replace,Adsense,我改变了代码,基本上加载了一个add,将页面底部添加到一个隐藏的div中,并附加了一个onload事件处理程序,该处理程序调用document.getElementById(xxx).appendChild()来获取隐藏的广告并将其移动到页面中的正确位置。这很有效。。但是,当广告是文本广告时,在我移动广告后,渲染的Iframe中没有任何内容。在我移动它之前,我做了一些测试来看看它是什么样子的,当然文本链接会加载到IFRAME中,但是在我执行appendChild调用来移动包含广告的div时,我似

我改变了代码,基本上加载了一个add,将页面底部添加到一个隐藏的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>

GA_googleFillSlot(“MyADSlotName”);
window.onload=函数(){
//领导委员会
document.getElementById('adplaceholder').appendChild(document.getElementById('myAd'));
document.getElementById('myAd').style.display='';

更新:我认为这里的问题是,在文本广告中,谷歌直接在iframe中插入相关的文本链接,在其他广告中,它使用iframe只指向某个src。似乎当我做appendchild时,如果没有“src”为iframe设置复制完成后,新位置的iframe不包含任何内容…猜测它会在src上重新加载?任何方法都可以解决此问题???

这应该可以解决以下问题:

<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>
占位符
...
功能替换(旧的、新的、显示的){
if(newel的类型==“字符串”)
newel=document.getElementById(newel);
if(typeof oldel==“string”)
oldel=document.getElementById(oldel);
如果(新的和旧的)
oldel.parentNode.replaceChild(newel,oldel);
如果(显示)
newel.style.display=“”;
}
window.onload=函数(){
替换(“adsense\u空”、“adsense\u内容”,真);
替换(“adsense\u empty2”、“adsense\u content2”,真);
替换(“adsense\u empty3”、“adsense\u content3”,真);
};

这应该可以做到:

<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>
占位符
...
功能替换(旧的、新的、显示的){
if(newel的类型==“字符串”)
newel=document.getElementById(newel);
if(typeof oldel==“string”)
oldel=document.getElementById(oldel);
如果(新的和旧的)
oldel.parentNode.replaceChild(newel,oldel);
如果(显示)
newel.style.display=“”;
}
window.onload=函数(){
替换(“adsense\u空”、“adsense\u内容”,真);
替换(“adsense\u empty2”、“adsense\u content2”,真);
替换(“adsense\u empty3”、“adsense\u content3”,真);
};

试试这个。如果谷歌放了一个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';
    }
}

试试这个。如果谷歌放了一个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';
    }
}

你为什么这样做?我这样做是为了强制在页面底部加载广告,一旦加载后,我可以将其移动到我希望向用户显示的位置。这样我就可以加载页面的大部分内容,而不必在加载广告时阻塞。你为什么这样做?我这样做是为了强制在页面底部加载广告加载页面后,我可以将其移动到我希望向用户显示的位置。这样,我就可以加载大部分页面,而无需在加载广告时进行阻止