imadin

Web实现QQ聊天窗口

2011-08-02 16:00  卫佳  阅读(1147)  评论(0编辑  收藏  举报


  

腾讯的webqq做的挺不错的,我使用jquery仿照官方的实现了一个webqq的聊天框。下面就是实现过程遇到的一些问题的解决办 法。

1.webqq在页面被关闭的时候会询问是否离开页面,点否就会组织页面被关闭。在htm页面中添加下面代码即可

<script type="text/javascript">
     window.onbeforeunload= function(){
         return "你确定要离开吗?";
     }
</script>

2.div并排

<style type="text/css">
   #div{            //div 并排
     float:right;  //或者left Cheap Sunglasses   
     }
</style>

3.使用js格式化时间

 /*
   * date对象增加格式化时间方法
   */
   Date.prototype.format= function(format){
         var o= {
           "M+" :  this.getMonth()+1,  //month
           "d+" :  this.getDate(),    //day
           "h+" :  this.getHours(),    //hour
           "m+" :  this.getMinutes(),  //minute
           "s+" :  this.getSeconds(), //second
           "q+" :  Math.floor((this.getMonth()+3)/3),  //quarter
           "S"  :  this.getMilliseconds() //millisecond
         }
         if(/(y+)/.test(format)) {
                format= format.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length));//Sunglasses Wholesale
         }
         for(var kin o) {
             if(new RegExp("("+ k+")").test(format)) {
                 format= format.replace(RegExp.$1, RegExp.$1.length==1 ? o[k] : ("00"+ o[k]).substr((""+ o[k]).length));
               }
         }
               return format;
       }

     /*
       * 获取当前格式化的时间Cheap sunglasses wholesale
       */
     function getCurrentTime() {
         var date= new Date();
         return  date.format("yyyy-MM-dd hh:mm:ss");
     }

 4.使用js在网页中播放声音,这个需要针对ie和非ie做不同的处理

function playSound(){
     var k;
     if($.browser.msie){
     k= $("<bgsound src=\'/demo/qq/msg.wav\'></bgsound>");
     }else{
          k= $("<embed width=\'0\' height=\'0\'src=\'/demo/qq/msg.swf\'></embed>");
       }
     $(\'body\').append(k);
     //在音乐播放完毕移除dom对象Polarized Sunglasses Wholesale
     setTimeout(function(){ try{
         $(\'body\').remove(k);
       }
       catch(e){}
   },3000)
 }


5.div滚动条始终在最下边

 var msgDiv= $(\'#msg\');
 msgDiv.scrollTop( msgDiv[0].scrollHeight);

6.处理组合键

$(\'#input\').keydown(function(event){
       //这里处理ctrl+回车事件,更多按键可以在event对象里面找到WenZhou Sunglasses
       if(event.ctrlKey&& event.keyCode==13){
             //
       }
});

 7.div内的各种domimg 文字等等全部垂直居中

.user*{
       vertical-align:middle;
}

  腾讯的webqq做的挺不错的,我使用jquery仿照官方的实现了一个webqq的聊天框。下面就是实现过程遇到的一些问题的解决办 法。

1.webqq在页面被关闭的时候会询问是否离开页面,点否就会组织页面被关闭。在htm页面中添加下面代码即可

<script type="text/javascript">
     window.onbeforeunload= function(){
         return "你确定要离开吗?";
     }
</script>

2.div并排

<style type="text/css">
   #div{            //div 并排
     float:right;  //或者left Cheap Sunglasses   
     }
</style>

3.使用js格式化时间

 /*
   * date对象增加格式化时间方法
   */
   Date.prototype.format= function(format){
         var o= {
           "M+" :  this.getMonth()+1,  //month
           "d+" :  this.getDate(),    //day
           "h+" :  this.getHours(),    //hour
           "m+" :  this.getMinutes(),  //minute
           "s+" :  this.getSeconds(), //second
           "q+" :  Math.floor((this.getMonth()+3)/3),  //quarter
           "S"  :  this.getMilliseconds() //millisecond
         }
         if(/(y+)/.test(format)) {
                format= format.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length));//Sunglasses Wholesale
         }
         for(var kin o) {
             if(new RegExp("("+ k+")").test(format)) {
                 format= format.replace(RegExp.$1, RegExp.$1.length==1 ? o[k] : ("00"+ o[k]).substr((""+ o[k]).length));
               }
         }
               return format;
       }

     /*
       * 获取当前格式化的时间Cheap sunglasses wholesale
       */
     function getCurrentTime() {
         var date= new Date();
         return  date.format("yyyy-MM-dd hh:mm:ss");
     }

 4.使用js在网页中播放声音,这个需要针对ie和非ie做不同的处理

function playSound(){
     var k;
     if($.browser.msie){
     k= $("<bgsound src=\'/demo/qq/msg.wav\'></bgsound>");
     }else{
          k= $("<embed width=\'0\' height=\'0\'src=\'/demo/qq/msg.swf\'></embed>");
       }
     $(\'body\').append(k);
     //在音乐播放完毕移除dom对象Polarized Sunglasses Wholesale
     setTimeout(function(){ try{
         $(\'body\').remove(k);
       }
       catch(e){}
   },3000)
 }


5.div滚动条始终在最下边

 var msgDiv= $(\'#msg\');
 msgDiv.scrollTop( msgDiv[0].scrollHeight);

6.处理组合键

$(\'#input\').keydown(function(event){
       //这里处理ctrl+回车事件,更多按键可以在event对象里面找到WenZhou Sunglasses
       if(event.ctrlKey&& event.keyCode==13){
             //
       }
});

 7.div内的各种domimg 文字等等全部垂直居中

.user*{
       vertical-align:middle;
}

  腾讯的webqq做的挺不错的,我使用jquery仿照官方的实现了一个webqq的聊天框。下面就是实现过程遇到的一些问题的解决办 法。

1.webqq在页面被关闭的时候会询问是否离开页面,点否就会组织页面被关闭。在htm页面中添加下面代码即可

<script type="text/javascript">
     window.onbeforeunload= function(){
         return "你确定要离开吗?";
     }
</script>

2.div并排

<style type="text/css">
   #div{            //div 并排
     float:right;  //或者left Cheap Sunglasses   
     }
</style>

3.使用js格式化时间

 /*
   * date对象增加格式化时间方法
   */
   Date.prototype.format= function(format){
         var o= {
           "M+" :  this.getMonth()+1,  //month
           "d+" :  this.getDate(),    //day
           "h+" :  this.getHours(),    //hour
           "m+" :  this.getMinutes(),  //minute
           "s+" :  this.getSeconds(), //second
           "q+" :  Math.floor((this.getMonth()+3)/3),  //quarter
           "S"  :  this.getMilliseconds() //millisecond
         }
         if(/(y+)/.test(format)) {
                format= format.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length));//Sunglasses Wholesale
         }
         for(var kin o) {
             if(new RegExp("("+ k+")").test(format)) {
                 format= format.replace(RegExp.$1, RegExp.$1.length==1 ? o[k] : ("00"+ o[k]).substr((""+ o[k]).length));
               }
         }
               return format;
       }

     /*
       * 获取当前格式化的时间Cheap sunglasses wholesale
       */
     function getCurrentTime() {
         var date= new Date();
         return  date.format("yyyy-MM-dd hh:mm:ss");
     }

 4.使用js在网页中播放声音,这个需要针对ie和非ie做不同的处理

function playSound(){
     var k;
     if($.browser.msie){
     k= $("<bgsound src=\'/demo/qq/msg.wav\'></bgsound>");
     }else{
          k= $("<embed width=\'0\' height=\'0\'src=\'/demo/qq/msg.swf\'></embed>");
       }
     $(\'body\').append(k);
     //在音乐播放完毕移除dom对象Polarized Sunglasses Wholesale
     setTimeout(function(){ try{
         $(\'body\').remove(k);
       }
       catch(e){}
   },3000)
 }


5.div滚动条始终在最下边

 var msgDiv= $(\'#msg\');
 msgDiv.scrollTop( msgDiv[0].scrollHeight);

6.处理组合键

$(\'#input\').keydown(function(event){
       //这里处理ctrl+回车事件,更多按键可以在event对象里面找到WenZhou Sunglasses
       if(event.ctrlKey&& event.keyCode==13){
             //
       }
});

 7.div内的各种domimg 文字等等全部垂直居中

.user*{
       vertical-align:middle;
}


分类:

技术点:

相关文章: