document.write和appendChild的区别

         公司的网站的新闻详细页采用shtml的静态化方案,但带来了如何作流量统计的小问题,虽然我们已经用了51yes和google的流量统计,但这两种方案还没完全满足需求。以前采用动态语言的时候则很轻松,分析url里的新闻id后作业务处理就ok。不过这个不是难题,采用类似51yes的统计方案,在每个页面的底部通过引入一个脚本mystat.aspx,然后将新闻id通过这个脚本传到另一个页面作流量业务处理的页面count.aspx。

count.aspx的代码,有删节:

document.write ('<script>var ref = top.document.referrer;var title=encodeURI(document.title);var source = GetQueryString("source");<//script><script>document.write(/'<img style="width:0px;height:0px" src="/Count/Count.aspx?referer=/'+escape(ref)+/'&title=/'+title+/'&source=/'+source+/'" mce_src="Count/Count.aspx?referer=/'+escape(ref)+/'&title=/'+title+/'&source=/'+source+/'" //>/');<//script>');

        开始是使用这样的方式引入脚本的:

var countScript = document.createElement('script'); var targetId = document.getElementById("txtTargetId").value; countScript.language = 'javascript'; countScript.src = "/Count/mystat.aspx?targetId=" + targetId; document.getElementById("divCount").appendChild(countScript);

但运行后没发现数据里写入了统计数据,于是用httpwatch监视了一下,发现mystat.aspx是有运行的,但count.aspx却没有执行。想了一下,采用另一种调用方式:

var targetId = document.getElementById("txtTargetId").value; var url = "/Count/mystat.aspx?targetId=" + targetId; document.write ('<script src="'+url+'" mce_src="'+url+'"><//script>');

结果成功了,但原因不得而解。

你可能感兴趣的:(JavaScript,Google,脚本,url,语言,作业)