<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>试试咯
可实际上并没有这么做,就能保证 google 的代码正常运行无误。
但是,自己如果按照 google 的代码结构写一段 js 代码,就一定会报告 urchinTracker() 未定义。区别在哪里?为什么 google 的代码可以运行呢?
<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文件会 拖慢网页的加载速度的原因
引入的JS跟本页面的代码载入是异步进行的
类似多线程
所以不要马上调用 严谨的就是判断加载完毕了以后在调用方法