首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 关于csdn站内消息js代码的一些问题,请高手帮忙,顶者有分!!!! [已结贴,结贴人:zdyguilong]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zdyguilong
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 揭帖率:
    发表于:2007-01-18 09:38:12 楼主
    下面是csdn的站内消息js代码,大家也可以点查看源代码进行查看,这些代码有些不明白的地方,请高手赐教……
    ----------

    <!DOCTYPE   html   PUBLIC   "-//W3C//DTD   XHTML   1.0   Transitional//EN "   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">
    <html   xmlns= "http://www.w3.org/1999/xhtml "   >
    <head>
            <title> 社区Logo </title>
            <script   language= "javascript ">
            <!--
           
    function   CheckNewMessage(){
            var   Url   =   "http://message.csdn.net/newMessage.aspx ";
            var   nn   =   Math.floor(   Math.random()   *   2000000);
            Url   +=   "?time= "+nn;
            var   ScriptName   =   "CheckUserHasNewMessage ";
            var   head=   document.getElementsByTagName( "head ").item(0);
            var   old   =   document.getElementById(ScriptName);
            if   (old)     head.removeChild(old);

            var   script   =   document.createElement( "SCRIPT ");
            script.src   =   Url;
            script.defer   =   true;
            script.type   =   "text/javascript ";
            script.id   =   ScriptName;
            head.appendChild(script);
            setTimeout( "CheckNewMessage() ",300000);
    }
           
    function   getElement(id,   d)   {
    if   (!d)   d   =   document;
    if   (d.getElementById)   {
    return   d.getElementById(id);
    }
    if   (d.layers   &&   d.layers[id])   {
    return   d.layers[id];
    }
    if   (d.all   &&   d.all[id])   {
    return   d.all[id];
    }
    }

    function   ShowADPic()
    {
            getElement( "Pre_Link ").innerHTML   =   " <a   href= 'http://job.csdn.net/Jobs/badaf2f8deac4dc2a573c63a06c8f7ad/viewcompany.aspx '   target= '_blank '> <img   id= 'Pre_Img '   border= '0 '     name= 'Pre_Img '   src= 'http://images.csdn.net/upimgs/21067_3.gif '   alt= '广告 '   width= '210 '   height= '67 '   /> </a> ";
    }
           
    function   ShowDefaultPic(){
            //   临时推广用
            ShowDearBook();
            //getElement( "Pre_Link ").innerHTML   =   " <img   id= 'Pre_Img '   border= '0 '     name= 'Pre_Img '   src= '/logo/Images/eye001.gif '   alt= '请保护好自己的眼睛 '   width= '210 '   height= '67 '   /> ";
    }

    function   ShowNewYear()
    {
            getElement( "Pre_Link ").innerHTML   =   " <img   id= 'Pre_Img '   border= '0 '     name= 'Pre_Img '   src= '/logo/Images/newyear.jpg '   alt= '新年快乐、恭喜发财 '   width= '210 '   height= '67 '   /> ";
    }

    function   ShowDearBook()
    {
            //getElement( "Pre_Link ").innerHTML   =   " <a   href= 'http://www.dearbook.com.cn/2006/cc2e/index.htm '   target= '_blank '> <img   id= 'Pre_Img '   border= '0 '     name= 'Pre_Img '   src= '/logo/images/cc2e.jpg '   alt= 'DearBook '   width= '210 '   height= '67 '   /> </a> ";
            getElement( "Pre_Link ").innerHTML   =   " <a   href= 'http://prj.csdn.net/ '   target= '_blank '> <img   id= 'Pre_Img '   border= '0 '     name= 'Pre_Img '   src= '/logo/images/prj.210.67.gif '   alt= 'DearBook '   width= '210 '   height= '67 '   /> </a> ";
           
    }

    function   ShowDearBookPic(){
    /*
            var   vv   =   Math.random()*10;
            if(   vv   >   5)
            {
                    ShowNewYear();
            }
            else  
            {
            */
            //   临时推广用
                    ShowDearBook();
            //}
    }


    function   ClickNewMessage(){
            ShowDefaultPic();
            window.open( "http://message.csdn.net/ListMessage.aspx?type=newMessage ");        
    }
           
    function   ShowNewMessagePic(){
            var   textt   =   " <a   href= 'JavaScript:ClickNewMessage(); '> <img   id= 'Pre_Img '     name= 'Pre_Img '     border= '0 '   src= '/logo/Images/Message001.gif '   alt= '您有新的短消息! '   width= '210 '   height= '67 '   /> </a> <bgsound   src= '/Logo/Images/newMessage.wav '   border= '0 '> ";
            getElement( "Pre_Link ").innerHTML   =   textt;
    }

    function   TimeFindNewMessage(){
            setTimeout( "CheckNewMessage() ",300000);
    }

    function   YouHadNewMessage(){
            var   Had   =   false;
            url   =   "http://message.csdn.net/newMessage.aspx ";
            var   httpRequest;
            if   (typeof   XMLHttpRequest   !=   'undefined ')   {
                    httpRequest   =   new   XMLHttpRequest();
            }
            else   if   (typeof   ActiveXObject   !=   'undefined ')   {
                    httpRequest   =   new   ActiveXObject( 'Microsoft.XMLHTTP ');
            }
            if   (httpRequest)   {
                    httpRequest.open( 'GET ',   url,   false);
                    httpRequest.send(null);
                    if(httpRequest.status   ==   200){
                            var   textInfo   =   httpRequest.responseText;
                            if(textInfo   ==   "true ")   Had   =   true;
            }}
            if(Had){
                    ShowNewMessagePic();
            }
            else
            {
                    ShowDearBookPic();
            }
            setTimeout( "YouHadNewMessage() ",300000);
    }
            //-->
            </script>
    </head>
    <body     text= "#ffffff "   link= "#ffffff "   bgcolor= "#6699CC "   onload= "Javascript:TimeFindNewMessage(); ">
    <div   align= "center "   id= "Pre_Link "   name= "Pre_Link "> <img   id= "Pre_Img "     name= "Pre_Img "     border= '0 '   src= "/logo/Images/eye001.gif "   alt= "请保护好自己的眼睛 "   width= "210 "   height= "67 "   /> </div>

    <div   align= "center "   style= "font-size:12px;line-height:   20px; "> <table   width= "80% "   border= "0 "   cellpadding= "0 "   cellspacing= "0 "> <tr> <td   align= "left "> 欢迎:zdyguilong&nbsp; </td> <td   align= "right "> <a   href= "/member/logonout.asp?form=http://community.csdn.net/ "   target= "_parent "> 注销 </a> </td> </tr> </table> </div>

    <script   language= "javascript ">
    <!--
    var   nn   =   Math.floor(   Math.random()   *   2);
    if(nn   ==   0)
    {
    ShowDearBookPic();
    }
    else
    {
    ShowDefaultPic();
    }

    //-->
    </script>
    </body>
    </html>
    -----------------
    1、其中有两个函数不太明白,一个是CheckNewMessage(),从名称上看应该是检查是否有新消息,但这段代码:
    var   ScriptName   =   "CheckUserHasNewMessage ";
            var   head=   document.getElementsByTagName( "head ").item(0);
            var   old   =   document.getElementById(ScriptName);
            if   (old)     head.removeChild(old);

            var   script   =   document.createElement( "SCRIPT ");
            script.src   =   Url;
            script.defer   =   true;
            script.type   =   "text/javascript ";
            script.id   =   ScriptName;
            head.appendChild(script);
    什么意思?有什么作用?
    另一个函数:getElement(),可以说一点都不明白,里面的代码不知道要干些什么。
    2、另外,验证是否有新信息是应该根据当前登陆用户的session来验证的吧?从上面这些代码中没看出来跟当前用户有什么关系

    ---------
    以上这些问题还请高手指点,谢谢……
    顶者有分……!!
    50  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • xiahouwen
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2007-01-18 09:49:361楼 得分:30
    好像是把   CheckUserHasNewMessage   去掉
    然后   引入了   一个   http://message.csdn.net/newMessage.aspx   为   src的   script
    类似  
    <script   src= "http://message.csdn.net/newMessage.aspx "> </script>

    2   他在刷   newMessage.aspx   这个页面   可能是通过这个页面来判断是否有新message的。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • wanglei0420
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2007-01-18 10:01:292楼 得分:10
    这个不是对XML的操作吗???   关注
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zdyguilong
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2007-01-18 10:05:513楼 得分:0
    我在网上也查了一些关于getElementsByTagName、removeChild、createElement的用法,但还是没有头绪,希望感兴趣的朋友能讨论一下。顶者有分阿啊啊啊
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zdyguilong
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2007-01-18 10:58:214楼 得分:0
    晕,连顶的都没有…………
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • dajiabbmang
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2007-01-18 11:13:065楼 得分:10
    帮你顶,关注ing,我也看了2天这方面的资料了,还是不会
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zdyguilong
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2007-01-19 17:24:486楼 得分:0
    已经做出来了,但效果跟csdn的还差点,没有声音提示,也是5分钟刷新一次叶面
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved