这更多的是一个好奇心问题......
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 专家可以告诉我为什么他们将其分成两个脚本标签而不是将其全部粘在一个标签中。我知道顶部部分可以放在标题中,底部部分可以放在正文标记之前,以确保页面在跟踪之前加载,但我想知道是否还有更多内容。任何了解这一点的人都可能知道如何将代码分成两个标签。
我只是问这个,因为它来自 Goog,并被数百万个网站使用......
谢谢
最佳答案
这是为了保持跨浏览器的一致性,它需要确保 document.write()
在下一个脚本 block 运行之前粘贴它生成的标签,因此结果如下所示:
<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
将在第二个脚本 block 中未定义,因为 ga.js
尚未加载...然而,作为该脚本 block 之前的一个脚本 block ,页面会在执行最后一个 block 内的代码之前等待,从而使其在应该的时候正常工作。基本上,浏览器按顺序执行脚本 block ,Google 利用这一事实在需要加载脚本时加载脚本......即在使用脚本之前。
关于javascript - Google Analytics 跟踪代码中的双脚本标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2831037/