2010-02-10 65 views
1

我已花時間審查有關此主題的許多討論,但還沒有找到我的問題的答案。腳本添加與document.write與jQuery附加

在我的網站中,我正在嘗試優化頁面加載速度,我希望這樣做的方式之一是將我的廣告腳本移動到頁面底部,以允許我的內容首先加載。我仍然希望廣告在頁面中間顯示。

廣告代碼目前是在頁面中間的腳本塊,看起來像這樣

<div id="topAd"> 
    <script> 

    document.write('<s' + 'cript lang' + 'uage="jav' + 'ascript" src="' + src + '"></' + 'scr' + 'ipt>'); 
    </script> 
</div> 

我希望做的是這樣的事情在頁面

底部
<script> 
    var script = document.createElement('script'); 
    script.src = src; 
    jQuery('#topAd').append(script); 
</script> 

不幸的是,這總是將內容加載到頁面底部,而不是在「topAd」div內。任何人都可以解釋爲什麼會發生?

回答

2

您的廣告腳本正在使用document.write生成它的內容,以便它在調用時會出現在頁面上的任何內容之後。
你可以把原始內容放在底部然後移動它?

<div id="yourRequiredDiv"></div> 

<!-- more content --> 

<div id="topAd"> 
    <script> 

    document.write('<s' + 'cript lang' + 'uage="jav' + 'ascript" src="' + src + '"></' + 'scr' + 'ipt>'); 
    </script> 
</div> 

<script type="text/javascript"> 
    $('#yourRequiredDiv').append($('#topAd')); 
</script> 
</body> 

會這樣嗎?

+0

我試過用jQuery appendTo。我將topAd div移動到頁面底部,並留下了一個佔位符

。然後做了jQuery('#topAd')。appendTo('#placeholder')。不幸的是,當您使用jQuery重新插入腳本時,它會再次執行腳本,並且我結束了多個內容副本。 – 2010-02-10 06:46:48

+0

也許有一個iframe的實現,但我沒有太多的經驗腳本iframes – 2010-02-10 06:50:59

+0

哦。那麼絕對使用CSS來定位廣告呢? – meouw 2010-02-10 07:09:25

-2

嘗試使用iFrames。

  1. 在您自己的域中創建一個頁面,該頁面提供廣告腳本標記。
  2. 用iframe替換廣告div。
  3. 在底部添加一個腳本標記,替換iframe的位置,以便iframe服務在第一步中創建的頁面。

    document.getElementById('iframeId').contentWindow.location.replace('your-page-that-serves-the-ad-script'); 
    
1

你的腳本必須是:

<script type="text/javascript"> 
var topad = $('#topAd'); 
    $('#yourRequiredDiv').append(topad); 
</script>