代码改变世界

Web实现QQ聊天窗口

2011-08-02 16:00  卫佳  阅读(1278)  评论(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;
}