<script id="googlejs" src="http://www.google-analytics.com/urchin.js" type="text/javascript"> </script> 
<script type="text/javascript">
setTimeout(a,100)
function a(){
if(document.getElementById("googlejs").document.readyState=="complete")
{
_uacct = "UA-759XXX-X"; 
urchinTracker();
}
else
setTimeout(a,100)
}
</script>试试咯

解决方案 »

  1.   

    楼上代码精彩。
    可实际上并没有这么做,就能保证 google 的代码正常运行无误。
    但是,自己如果按照 google 的代码结构写一段 js 代码,就一定会报告 urchinTracker() 未定义。区别在哪里?为什么 google 的代码可以运行呢?
      

  2.   

    很简单<script id="googlejs" src="http://www.google-analytics.com/urchin.js" type="text/javascript"> </script> 
    <script type="text/javascript">
    //do something
    </script>此种写法 会由浏览器保证http://www.google-analytics.com/urchin.js 加载完 才会执行到 //do something
    <script id="googlejs" src="http://www.google-analytics.com/urchin.js" type="text/javascript"> </script> 
    如果没有加载完 是不会下一步的 
    除非超时 很长时间也没有加载 或者文件没找到这也是为什么 放在头部的js文件会 拖慢网页的加载速度的原因
      

  3.   

    <script src="http://www.google-analytics.com/urchin.js" type="text/javascript"></script> 
    引入的JS跟本页面的代码载入是异步进行的
    类似多线程
    所以不要马上调用 严谨的就是判断加载完毕了以后在调用方法
      

  4.   

    可是,难道说,google 不严谨吗?那么多使用了 google 流量统计的网站,没见过哪个报告脚本错误啊。但是我按照这种模式写,就会报告函数未定义,太奇怪了,为什么呢?
      

  5.   

    js的加载顺序果真比较麻烦,已经仔细看过了。对于这种情况而言,真的如9楼所说,外联的js是同步加载的。