www.pudn.com > ch11.rar > CLASS_MSN_MESSAGE.js


/*   
**    ==================================================================================================   
**    类名:CLASS_MSN_MESSAGE   
**    功能:提供类似MSN消息框   
**    示例:   
    ---------------------------------------------------------------------------------------------------   
   
            var MSG = new CLASS_MSN_MESSAGE("aa",200,120,"短消息提示:","您有1封消息","今天请我吃饭哈");   
                MSG.show();   
   
    ---------------------------------------------------------------------------------------------------   
**    作者:ttyp   
**    邮件:ttyp@21cn.com   
**    日期:2005-3-18   
**    ==================================================================================================   
**/   
   
   
/*   
 *    消息构造   
 */   
function CLASS_MSN_MESSAGE(id,width,height,caption,title,message,target,action)   
{   
    this.id     = id;   
    this.title  = title;   
    this.caption= caption;   
    this.message= message;   
    this.target = target;   
    this.action = action;   
    this.width    = width?width:200;   
    this.height = height?height:120;   
    this.timeout= 150;   
    this.speed    = 20;  
    this.step    = 1;  
    this.right    = screen.width -1;   
    this.bottom = screen.height;  
    this.left    = this.right - this.width;  
    this.top    = this.bottom - this.height;  
    this.timer    = 0;  
    this.pause    = false; 
}   
   
/*   
 *    隐藏消息方法   
 */   
CLASS_MSN_MESSAGE.prototype.hide = function()   
{   
    if(this.onunload())       
    {   
        var offset  = this.height>this.bottom-this.top?this.height:this.bottom-this.top;  
        var me  = this;   
  
        if(this.timer>0)   
        {    
            window.clearInterval(me.timer);   
        }   
  
        var fun = function()   
        {   
            if(me.pause==false) 
            { 
                var x  = me.left;  
                var y  = 0;  
                var width = me.width;  
                var height = 0;  
                if(me.offset>0)  
                {  
                    height = me.offset;  
                }  
      
                y  = me.bottom - height;  
      
                if(y>=me.bottom)  
                {  
                    window.clearInterval(me.timer);   
                    me.Pop.hide();   
                }  
                else  
                {  
                    me.offset = me.offset - me.step;   
                }  
                me.Pop.show(x,y,width,height);     
            } 
              
        }   
  
        this.timer = window.setInterval(fun,this.speed)       
    }   
}   
   
/*   
 *    消息卸载事件,可以重写   
 */   
CLASS_MSN_MESSAGE.prototype.onunload = function()   
{ 
    return true;   
}   
/*   
 *    消息命令事件,要实现自己的连接,请重写它   
 *   
 */   
CLASS_MSN_MESSAGE.prototype.oncommand = function()   
{   
    //alert("OK"); 
    this.hide();   
}   
   
/*   
 *    消息显示方法   
 */   
CLASS_MSN_MESSAGE.prototype.show = function()   
{   
    var oPopup = window.createPopup(); //IE5.5+   
   
    this.Pop = oPopup;   
   
    var w = this.width;   
    var h = this.height;   
   
    var str = "
" str += "" str += "" str += "" str += "" str += "" str += "" str += "" str += "" str += "" str += "
" + this.caption + "" str += "×
" str += "
" + this.title + "

" str += "" str += "
" str += "
" str += "
" oPopup.document.body.innerHTML = str; this.offset = 0; var me = this; oPopup.document.body.onmouseover = function(){me.pause=true;} oPopup.document.body.onmouseout = function(){me.pause=false;} var fun = function() { var x = me.left; var y = 0; var width = me.width; var height = me.height; if(me.offset>me.height) { height = me.height; } else { height = me.offset; } y = me.bottom - me.offset; if(y<=me.top) { me.timeout--; if(me.timeout==0) { window.clearInterval(me.timer); me.hide(); } } else { me.offset = me.offset + me.step; } me.Pop.show(x,y,width,height); } this.timer = window.setInterval(fun,this.speed) var btClose = oPopup.document.getElementById("btSysClose"); btClose.onclick = function() { me.hide(); } var btCommand = oPopup.document.getElementById("btCommand"); btCommand.onclick = function() { me.oncommand(); } } /* ** 设置速度方法 **/ CLASS_MSN_MESSAGE.prototype.speed = function(s) { var t = 20; try { t = praseInt(s); } catch(e){} this.speed = t; } /* ** 设置步长方法 **/ CLASS_MSN_MESSAGE.prototype.step = function(s) { var t = 1; try { t = praseInt(s); } catch(e){} this.step = t; } CLASS_MSN_MESSAGE.prototype.rect = function(left,right,top,bottom) { try { this.left = left !=null?left:this.right-this.width; this.right = right !=null?right:this.left +this.width; this.bottom = bottom!=null?(bottom>screen.height?screen.height:bottom):screen.height; this.top = top !=null?top:this.bottom - this.height; } catch(e) {} }