js实现右下角提示框

/** 
* 类名:CLASS_MSN_MESSAGE 
* 功能:提供类似MSN消息框 
* 示例: 
* var MSG = new CLASS_MSN_MESSAGE("aa",200,120,"短消息提示:","您有1封消息","今天请我吃饭哈"); 
* MSG.show(); 
 * 消息构造 
*/ 
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 -20; 
   this.bottom   = screen.height; 
   this.left     = this.right - this.width; 
   this.top      = this.bottom - this.height; 
   this.timer    = 0; 
   this.pause    = false;
   this.close    = false;
   this.autoHide = true;
} 

/**
* 隐藏消息方法 
*/ 
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||me.close){
               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(){ 
   this.close = true;
   this.hide(); 
 //window.open("http://www.lost63.com");
} 
/** 
* 消息显示方法 
*/ 
CLASS_MSN_MESSAGE.prototype.show = function(){ 
   var oPopup = window.createPopup(); //IE5.5+ 
   this.Pop = oPopup; 

   var w = this.width; 
   var h = this.height; 

 // "×"关闭按钮
 /*
       str += "<tr>" 
       str += "<td style='font-size: 12px;color: #0f2c8c' width=30 height=24></td>" 
       str += "<td style='padding-left: 4px; font-weight: normal; font-size: 12px; color: #1f336b; padding-top: 4px' valign=center width='100%'>" + this.caption + "</td>" 
       str += "<td style='padding-right: 2px; padding-top: 2px' valign=center align=right width=19>" 
       str += "<span title=关闭 style='font-weight: bold; font-size: 12px; cursor: hand; color: red; margin-right: 4px' id='btsysclose' >×</span></td>" 
       str += "</tr>"
 */
 // 按钮style
 // style='width:60px; height:20px; border-right: #002D96 1px solid; padding-right: 2px; border-top: #002D96 1px solid; padding-left: 2px; FONT-SIZE: 12px; filter: progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr=#FFFFFF, EndColorStr=#9DBCEA); border-left: #002D96 1px solid; CURSOR: hand; color: black; padding-top: 2px; border-bottom: #002D96 1px solid;'
   var str = "<div style='border-right: #455690 1px solid; border-top: #a6b4cf 1px solid; z-index: 99999; left: 0px; border-left: #a6b4cf 1px solid; width: " + w + "px; border-bottom: #455690 1px solid; position: absolute; top: 0px; height: " + h + "px; background-color: #c9d3f3'>" 
       str += "<table style='border-top: #ffffff 1px solid; border-left: #ffffff 1px solid' cellspacing=0 cellpadding=0 width='100%' bgcolor=#cfdef4 border=0>"
        
       str += "<tr>" 
       str += "<td style='font-size: 12px;color: #0f2c8c' width=30 height=24></td>" 
       str += "<td style='padding-left: 4px; font-weight: normal; font-size: 12px; color: #1f336b; padding-top: 4px' valign=center width='100%'>" + this.caption + "</td>" 
       str += "</tr>"
       str += "<tr>" 
       /*height:设置里面内容区域的高度 */
       str += "<td style='padding-right: 1px;padding-bottom: 1px' colspan=3 height=" + (h-50) + ">" 
       str += "<div style=' background-image: url(../images/bg_logobar.png);border-right: #b9c9ef 1px solid; padding-right: 8px; border-top: #728eb8 1px solid; padding-left: 8px; font-size: 12px; padding-bottom: 8px; border-left: #728eb8 1px solid; width: 100%; color: #1f336b; padding-top: 8px; border-bottom: #b9c9ef 1px solid; height: 100%'>" + this.title + "<br><br>" 
       str += "<div style='word-break: break-all' align=left><font color=#ff0000>" + this.message + "</font></div>" 
       str += "</div>" 
       str += "</td>" 
       str += "</tr>" 
       str += "<tr align=center>"
       str += "<td colspan=3>"
       str += "<div style='padding: 2 0 2 0;'>"
       str += "<span id='buttonClose'><input type='button' title=关闭 value=确认 style='width:60px; height:20px; border-right: #002D96 1px solid; padding-right: 2px; border-top: #002D96 1px solid; padding-left: 2px; FONT-SIZE: 12px; filter: progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr=#FFFFFF, EndColorStr=#9DBCEA); border-left: #002D96 1px solid; CURSOR: hand; color: black; padding-top: 2px; border-bottom: #002D96 1px solid;'></span>" 
       str += "</div>"
       str += "</td>"
       str += "</tr>"
       str += "</table>" 
       str += "</div>" 

   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=true;}

   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); 
               if(me.autoHide){
                   me.hide(); 
               }
           } 
       } else { 
           me.offset = me.offset + me.step; 
       } 
       me.Pop.show(x,y,width,height);   
   } 

   this.timer = window.setInterval(fun,this.speed)      

 //"确认"关闭事件

   var buttonClose = oPopup.document.getElementById("buttonClose"); 
   buttonClose.onclick = function(){ 
       me.close = true;
       me.hide(); 
   }
   
   /* 
    * "×"关闭事件
    * var btClose = oPopup.document.getElementById("btSysClose"); 
 *
    * btClose.onclick = function(){ 
    *   me.close = true;
    *   me.hide(); 
    * } 
    */

   var btCommand = oPopup.document.getElementById("btCommand"); 
   btCommand.onclick = function(){ 
       me.oncommand(); 
   }    
 var ommand = oPopup.document.getElementById("ommand"); 
   ommand.onclick = function(){ 
   this.close = true;
   me.hide(); 
window.open(ommand.href);
   }   
} 
/* 
* 设置速度方法 
*/ 
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){} 
}
   //alert(MSG1.top); 
   //MSG1.show(); 
//同时两个有闪烁,只能用层代替了,不过层不跨框架
/* 
  var MSG2 = new CLASS_MSN_MESSAGE("aa",200,120,"短消息提示:","您有2封消息","好的啊"); 
  MSG2.rect(100,null,null,screen.height); 
  MSG2.show();
*/
 
/**
* 显示提示框
*/ 
function showMSG(msgstr){
	var MSG1 = new CLASS_MSN_MESSAGE("aa",240,150," 管理平台消息提示:",msgstr,""); 
	MSG1.rect(null,null,null,screen.height-50); 
	MSG1.speed    = 10; 
    MSG1.step    = 5; 
    MSG1.show();
}
<script type="text/javascript">
 window.onload   =   function() 
 { 
  var taskCount='${taskCount}';
  if(taskCount>0){
      showMSG("您有<font color=red><b><a href=\"#\" onclick=\"parent.window.location.href='<c:url value='/taskmgr/qcTask' />'\">"+taskCount+"</a></b></font>条未处理任务,请及时处理!<BR>"); 
  }
 }
 </script>
 
 
 今天调试时发现提示框中的链接无法正常跳转,后来发现是因为有createPopup,所以message在一个新的窗口里面,所以影响不到原窗口。窗口有两种可能的上下级关系,一种是Owner,一种是parent。这里使用parent.window.location.href成功跳转。另"符号需要转译\"
  bg_logobar.png背景图可以更换

转载于:https://my.oschina.net/eastwmt/blog/146103

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值