<script src="http://s16.cnzz.com/stat.php?id=XXXXX&web_id=XXXXXX&show=pic1" language="JavaScript"></script>这个是cnzz的统计代码,在执行页面后会出现一个图标,我要问的是:
1、这段代码他如何在你所放的页面上加载上图片和连接信息的?
2、这样的功能可以使用asp.net实现吗?实现的核心代码是什么?
3、这个所放页面加上的图标他是如何定位的?也就是说如何知道现在所放代码位置的?

解决方案 »

  1.   

    一般通过 用户控件绑定到底部
    网页打开就会到www.cnzz.com下载一个js 
    而下载js时,浏览器会发送Referer:   当前页面地址 
    流量被统计了
    可自己写
      

  2.   

    1、这是请求一个uri.根据参数来进行统计
    2、asp.net当然也是可以的。后台要做的事就是普通的一个计数器和一个输出
    3、2说到的输出就是一段代码。具体代码请看
    function gv_cnzz(of){
    var es = document.cookie.indexOf(";",of);
    if(es==-1) es=document.cookie.length;
    return unescape(document.cookie.substring(of,es));
    }
    function gc_cnzz(n){
    var arg=n+"=";
    var alen=arg.length;
    var clen=document.cookie.length;
    var i=0;
    while(i<clen){
    var j=i+alen;
    if(document.cookie.substring(i,j)==arg) return gv_cnzz(j);
    i=document.cookie.indexOf(" ",i)+1;
    if(i==0) break;
    }
    return -1;
    }
    var cnzz_ed=new Date();
    var cnzz_now=parseInt(cnzz_ed.getTime());
    var cnzz_ref=document.referrer;
    var cnzz_data='&r='+escape(cnzz_ref.substr(0,512))+'&lg='+escape(navigator.systemLanguage)+'&ntime=0.47159800 1294413088';
    var cnzz_a=gc_cnzz("cnzz_a1231233");
    if(cnzz_a!=-1) cnzz_a=parseInt(cnzz_a)+1;
    else cnzz_a=0;
    var rt=parseInt(gc_cnzz("rtime"));
    var lt=parseInt(gc_cnzz("ltime"));
    var cnzz_st = parseInt((cnzz_now-lt)/1000);
    var cnzz_sin = gc_cnzz("sin1231233");
    if(cnzz_sin==-1) cnzz_sin='none';
    if( cnzz_ref.split('/')[2]!=document.domain ) cnzz_sin=cnzz_ref;
    var cnzz_eid=gc_cnzz("cnzz_eid");
    if(cnzz_eid==-1) cnzz_eid=Math.floor(Math.random()*100000000)+"-"+1294413088+"-"+cnzz_ref.substr(0,64);
    if(lt<1000000){rt=0;lt=0;}
    if(rt<1) rt=0;
    if(((cnzz_now-lt)>500*86400)&&(lt>0)) rt++;
    cnzz_data=cnzz_data+'&repeatip='+cnzz_a+'&rtime='+rt+'&cnzz_eid='+escape(cnzz_eid)+'&showp='+escape(screen.width+'x'+screen.height)+'&st='+cnzz_st+'&sin='+escape(cnzz_sin.substr(0,512))+'&res=0';
    document.write('<a href="http://www.cnzz.com/stat/website.php?web_id=1231233" target=_blank title="&#31449;&#38271;&#32479;&#35745;"><img border=0 hspace=0 vspace=0 src="http://icon.cnzz.com/pic1.gif" /></a>');
    document.write('<img src="http://zs3.cnzz.com/stat.htm?id=1231233'+cnzz_data+'" border=0 width=0 height=0 />');var cnzz_et=(86400-cnzz_ed.getHours()*3600-cnzz_ed.getMinutes()*60-cnzz_ed.getSeconds());
    cnzz_ed.setTime(cnzz_now+1000*(cnzz_et-cnzz_ed.getTimezoneOffset()*60));
    document.cookie="cnzz_a1231233="+cnzz_a+";expires="+cnzz_ed.toGMTString()+ "; path=/";
    document.cookie="sin1231233="+escape(cnzz_sin)+ ";expires="+cnzz_ed.toGMTString()+";path=/";
    cnzz_ed.setTime(cnzz_now+1000*86400*182);
    document.cookie="rtime="+rt+";expires="+cnzz_ed.toGMTString()+ ";path=/";
    document.cookie="ltime="+cnzz_now+";expires=" + cnzz_ed.toGMTString()+ ";path=/";
    document.cookie="cnzz_eid="+escape(cnzz_eid)+ ";expires="+cnzz_ed.toGMTString()+";path=/";
      

  3.   

    图标估计是用js添加的,js代码中用document.write("")输出就可以了,输出的位置就是你这段script所在的位置,应该就是这样定位的。
      

  4.   

    http://bbs.cnzz.com/simple/index.php?t44559.html
      

  5.   

    顺便再问一下,我用asp.net的页面来实现这样的功能,有什么办法可以把所有的head,html这些标签去掉?
    需要继承重写多少方法?
      

  6.   

    如果是asp.net的话 不需要任何的html标签什么
    直接Repsonse.Write()即可。然后Response.End()使得不输出自身的aspx文件继承重写?没有这个必要 呵呵
      

  7.   

    问题基本搞清楚了,这段统计代码无论是php页面还是js文件,其实都是当作js语句来执行的;
    其实区别就是使用js文件,是js文件去调用动态页面执行数据库的内容;
    使用php动态页面,是php页面在执行数据库语句以后去拼装js语句;
    谢谢以上各位大大门的帮助!结贴了!