[英]Double script tags in Google Analytics tracking code
好奇心比其他任何問題都重要...
Google指示如下添加分析跟蹤代碼:
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try{
var pageTracker = _gat._getTracker("UA-xxxxxx-x");
pageTracker._trackPageview();
} catch(err) {}
</script>
我想知道這里的一些JS專家可以告訴我為什么他們將其分成兩個腳本標簽,而不是將其全部粘貼在一個腳本標簽中。 我知道頂部可以放在正文標簽的頂部,底部可以放在body標簽之前,以確保在跟蹤頁面之前就已加載該頁面,但是我想知道是否還有其他內容。 任何知道的人都可能知道如何將代碼分成兩個標簽。
我只是問,這是因為它來自Goog,並且已被數百萬個網站使用...
謝謝
這是一致的跨瀏覽器,它需要確保document.write()
在下一個腳本塊運行之前粘貼其生成的標簽,因此結果如下所示:
<script src='http://www.google-analytics.com/ga.js' type='text/javascript'></script>
<script type="text/javascript">
try{
var pageTracker = _gat._getTracker("UA-xxxxxx-x");
pageTracker._trackPageview();
} catch(err) {}
</script>
如果未在2個腳本中執行此操作,則_gat
在第二個腳本塊中將是未定義的,因為ga.js
尚未加載...但是,作為該腳本之前的腳本塊,頁面將等待執行內部的代碼最后一塊,在應有的情況下使其全部正常工作。 基本上,瀏覽器按順序執行腳本塊,谷歌利用這一事實在需要加載腳本時加載腳本……這是在使用腳本之前。
如果我不得不猜測,那是因為document.write(unescape(...));
他們動態地包含另一個JS文件的行。 為什么他們不知道動態地加載那個。 我想這與您是否運行https或http有關。
如果是一個文件,我懷疑ga.js
文件是否會及時加載以運行pageTracker
代碼。 _gat
不存在,並且您會得到一個錯誤,而不是能夠實際使用Google Analytics(分析)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.