仿QQ弹出窗口 gggggggggggg

    最近在做内部管理,需要用到这个东西来提醒,所以就把它做成一个类,直接调用,满方便的.贴一下代码,大家看一下

 


  1 using System;
  2 using System.Web;
  3 using System.Collections.Generic;
  4 using System.Text;
  5 
  6 /****************************************
  7  * 作者:wenjl
  8  * 功能:使用该类,可以实现右下角的弹出界面。
  9  * 日期:2008-10-26  
 10  * 版本:0.1
 11  * **************************************/
 12 namespace PopupMessage
 13 {
 14     /// <summary>
 15     /// 使用该类,可以实现右下角的弹出界面。
 16     /// </summary>
 17     public class PopupMessage
 18     {
 19         private StringBuilder m_Script;
 20 
 21         #region PopupMessage构造函数。
 22         /// <summary>
 23         /// 构告出弹出界面的前台脚本。
 24         /// </summary>
 25         public PopupMessage()
 26         {
 27             m_Script = new StringBuilder();
 28             #region Script
 29             m_Script.Append("<SCRIPT language=\"JavaScript\" type=\"text/javascript\">  \n ");
 30             // m_Script.Append("<!--  \n ");
 31             m_Script.Append("function CLASS_MSN_MESSAGE(id,width,height,caption,message,target,action){  \n ");
 32             m_Script.Append("this.id     = id;   \n ");
 33             m_Script.Append("this.caption= caption;  \n ");
 34             m_Script.Append("this.message= message;  \n ");
 35             m_Script.Append("this.target = target;  \n ");
 36             m_Script.Append("this.action = action;  \n ");
 37             m_Script.Append("this.width    = width;  \n ");
 38             m_Script.Append("this.height = height;  \n ");
 39             m_Script.Append("this.timeout= 2000;  \n ");
 40             m_Script.Append("this.speed    = 20; \n ");
 41             m_Script.Append("this.step    = 1; \n ");
 42             m_Script.Append("this.right    = screen.width -1;  \n ");
 43             m_Script.Append("this.bottom = screen.height; \n ");
 44             m_Script.Append("this.left    = this.right - this.width; \n ");
 45             m_Script.Append("this.top    = this.bottom - this.height; \n ");
 46             m_Script.Append("this.timer    = 0; \n ");
 47             m_Script.Append("this.pause    = false;\n ");
 48             m_Script.Append("this.close    = false;\n ");
 49             m_Script.Append("this.autoHide    = true;\n ");
 50             m_Script.Append("}    \n ");
 51             m_Script.Append("/*  \n ");
 52             m_Script.Append("*    隐藏消息方法  \n ");
 53             m_Script.Append("*/  \n ");
 54             m_Script.Append("CLASS_MSN_MESSAGE.prototype.hide = function(){  \n ");
 55             m_Script.Append("if(this.onunload()){  \n ");
 56             m_Script.Append("var offset  = this.height>this.bottom-this.top?this.height:this.bottom-this.top; \n ");
 57             m_Script.Append("var me  = this;  \n ");
 58             m_Script.Append("if(this.timer>0){   \n ");
 59             m_Script.Append("window.clearInterval(me.timer);  \n ");
 60             m_Script.Append("}  \n ");
 61             m_Script.Append("var fun = function(){  \n ");
 62             m_Script.Append("if(me.pause==false||me.close){\n ");
 63             m_Script.Append("var x  = me.left; \n ");
 64             m_Script.Append("var y  = 0; \n ");
 65             m_Script.Append("var width = me.width; \n ");
 66             m_Script.Append("var height = 0; \n ");
 67             m_Script.Append("if(me.offset>0){ \n ");
 68             m_Script.Append("height = me.offset; \n ");
 69             m_Script.Append("}      \n ");
 70             m_Script.Append("y  = me.bottom - height;      \n ");
 71             m_Script.Append("if(y>=me.bottom){ \n ");
 72             m_Script.Append("window.clearInterval(me.timer);  \n ");
 73             m_Script.Append("me.Pop.hide();  \n ");
 74             m_Script.Append("} else { \n ");
 75             m_Script.Append("me.offset = me.offset - me.step;  \n ");
 76             m_Script.Append("} \n ");
 77             m_Script.Append("me.Pop.show(x,y,width,height);    \n ");
 78             m_Script.Append("}             \n ");
 79             m_Script.Append("}  \n ");
 80             m_Script.Append("this.timer = window.setInterval(fun,this.speed)      \n ");
 81             m_Script.Append("}  \n ");
 82             m_Script.Append("}    \n ");
 83             m_Script.Append("/* \n ");
 84             m_Script.Append("*    消息卸载事件,可以重写  \n ");
 85             m_Script.Append("*/  \n ");
 86             m_Script.Append("CLASS_MSN_MESSAGE.prototype.onunload = function() {  \n ");
 87             m_Script.Append("return true;  \n ");
 88             m_Script.Append("}  \n ");
 89             m_Script.Append("/*  \n ");
 90             m_Script.Append("*    消息命令事件,要实现自己的连接,请重写它  \n ");
 91             m_Script.Append("*  \n ");
 92             m_Script.Append("*/  \n ");
 93             m_Script.Append("CLASS_MSN_MESSAGE.prototype.oncommand = function(){  \n ");
 94             m_Script.Append("this.hide();    \n ");
 95             m_Script.Append("} \n ");
 96             m_Script.Append("/*  \n ");
 97             m_Script.Append("*    消息显示方法  \n ");
 98             m_Script.Append("*/  \n ");
 99             m_Script.Append("CLASS_MSN_MESSAGE.prototype.show = function(){  \n ");
100             m_Script.Append("var oPopup = window.createPopup(); /*IE5.5+ */   \n ");
101             m_Script.Append("this.Pop = oPopup;    \n ");
102             m_Script.Append("var w = this.width;  \n ");
103             m_Script.Append("var h = this.height;    \n ");
104             m_Script.Append("var str = \"<div style='z-index: 99999;width:\" + w + \"px; height:\" + h + \"px;'>\"  \n ");
105             m_Script.Append("str += \"<table width='\"+this.width+\"px' border='0' cellspacing='0' cellpadding='0'>\"  \n ");
106             m_Script.Append("str += \"<tr><td width='36px' height=24><img src='images/msg/msg_03.gif' /></td>\"  \n ");
107             m_Script.Append("str += \"<td style='font-size:12px; color:#FFF; font-weight:bold; line-height:20px; background:url(images/msg/msg_05.gif) repeat-x; padding-top:3px;'>\" + this.caption + \"</td>\"\n ");
108             m_Script.Append("str += \"<td width='23px'><img src='images/msg/msg_07.gif' id='btSysClose' title='关闭' style='cursor:hand;'  /></td>\"\n ");
109             m_Script.Append("str += \"</tr>\"\n ");
110             m_Script.Append("str += \"</table>\"\n ");
111             m_Script.Append("str += \"<table width='100%' border='0' cellspacing='0' cellpadding='0'>\"\n ");
112             m_Script.Append("str += \"<tr>\"\n ");
113             m_Script.Append("str += \"<td width='5px' rowspan='2' background='images/msg/msg_09.gif'></td>\"\n ");
114             m_Script.Append("str += \"<td width='\"+(this.width-10)+\"px' height=\"+(this.height-54)+\" background='images/msg/bg_01.gif' style='line-height:16px; color:#191CCB;'><div style='margin:10px;font-size:12px;cursor:hand;'>\"+ this.message + \"</div></td>\"\n ");
115             m_Script.Append("str += \"<td width='5px' rowspan='2' background='images/msg/msg_15.gif'></td>\"\n ");
116             m_Script.Append("str += \"</tr>\"\n ");
117             m_Script.Append("str += \"<tr>\"\n ");
118             m_Script.Append("str += \"<td height='24' background='images/msg/bg_02.gif' > <a id='btnMessage'></a></td>\"\n ");
119             m_Script.Append("str += \"</tr>\"\n ");
120             m_Script.Append("str += \"</table>\"\n ");
121             m_Script.Append("str += \"<table width='\"+this.width+\"px' ' border='0' cellspacing='0' cellpadding='0'>\"\n ");
122             m_Script.Append("str += \"<tr><td height='8px' style='width: 12px; background: url(images/msg/left.jpg)'>\"\n ");
123             m_Script.Append("str += \" <td height='8px' style='width:\"+(this.width-22)+\"px; background: url(images/msg/middle.jpg)'>\"\n ");
124             m_Script.Append("str += \"<td height='8px' style='width: 10px; background: url(images/msg/right.jpg)'>\"\n ");
125             m_Script.Append("str += \"</tr>\"\n ");
126             m_Script.Append("str += \"</table>\"\n ");
127             m_Script.Append("str += \"</div>\"\n ");
128             m_Script.Append("alert(str); oPopup.document.body.innerHTML = str;  \n ");
129             m_Script.Append("this.offset  = 0; \n ");
130             m_Script.Append("var me  = this;  \n ");
131             m_Script.Append("oPopup.document.body.onmouseover = function(){me.pause=true;}\n ");
132             m_Script.Append("oPopup.document.body.onmouseout = function(){me.pause=false;}\n ");
133             m_Script.Append("var fun = function(){  \n ");
134             m_Script.Append("var x  = me.left; \n ");
135             m_Script.Append("var y  = 0; \n ");
136             m_Script.Append("var width    = me.width; \n ");
137             m_Script.Append("var height    = me.height; \n ");
138             m_Script.Append("if(me.offset>me.height){ \n ");
139             m_Script.Append("height = me.height; \n ");
140             m_Script.Append("} else { \n ");
141             m_Script.Append("height = me.offset; \n ");
142             m_Script.Append("} \n ");
143             m_Script.Append("y  = me.bottom - me.offset; \n ");
144             m_Script.Append("if(y<=me.top){ \n ");
145             m_Script.Append("me.timeout--; \n ");
146             m_Script.Append("if(me.timeout==0){ \n ");
147             m_Script.Append("window.clearInterval(me.timer);  \n ");
148             m_Script.Append("if(me.autoHide){\n ");
149             m_Script.Append("me.hide(); \n ");
150             m_Script.Append("}\n ");
151             m_Script.Append("} \n ");
152             m_Script.Append("} else { \n ");
153             m_Script.Append("me.offset = me.offset + me.step; \n ");
154             m_Script.Append("} \n ");
155             m_Script.Append("me.Pop.show(x,y,width,height);    \n ");
156             m_Script.Append("}    \n ");
157             m_Script.Append("this.timer = window.setInterval(fun,this.speed)        \n ");
158             m_Script.Append("var btClose = oPopup.document.getElementById(\"btSysClose\" );    \n ");
159             m_Script.Append("btClose.onclick = function(){  \n ");
160             m_Script.Append("me.close = true;\n ");
161             m_Script.Append("me.hide();  \n ");
162             m_Script.Append("} \n ");
163             m_Script.Append("}  \n ");
164             m_Script.Append("/* \n ");
165             m_Script.Append("** 设置速度方法 \n ");
166             m_Script.Append("**/ \n ");
167             m_Script.Append("CLASS_MSN_MESSAGE.prototype.speed = function(s){ \n ");
168             m_Script.Append("var t = 20; \n ");
169             m_Script.Append("try { \n ");
170             m_Script.Append("t = praseInt(s); \n ");
171             m_Script.Append("} catch(e){} \n ");
172             m_Script.Append("this.speed = t; \n ");
173             m_Script.Append("} \n ");
174             m_Script.Append("/* \n ");
175             m_Script.Append("** 设置步长方法 \n ");
176             m_Script.Append("**/ \n ");
177             m_Script.Append("CLASS_MSN_MESSAGE.prototype.step = function(s){ \n ");
178             m_Script.Append("var t = 1; \n ");
179             m_Script.Append("try { \n ");
180             m_Script.Append("t = praseInt(s); \n ");
181             m_Script.Append("} catch(e){} \n ");
182             m_Script.Append("this.step = t; \n ");
183             m_Script.Append("}   \n ");
184             m_Script.Append("CLASS_MSN_MESSAGE.prototype.rect = function(left,right,top,bottom){ \n ");
185             m_Script.Append("try { \n ");
186             m_Script.Append("this.left        = left    !=null?left:this.right-this.width; \n ");
187             m_Script.Append("this.right        = right    !=null?right:this.left +this.width; \n ");
188             m_Script.Append("this.bottom        = bottom!=null?(bottom>screen.height?screen.height:bottom):screen.height; \n ");
189             m_Script.Append("this.top        = top    !=null?top:this.bottom - this.height; \n ");
190             m_Script.Append("} catch(e){} \n ");
191             m_Script.Append("} \n ");
192             m_Script.Append("function NavigateUrl(url){ parent.parent['Main'].location=url;} \n ");
193             m_Script.Append("</SCRIPT> \n ");
194             #endregion Script
195             HttpContext.Current.Response.Write(m_Script.ToString());
196         }
197         #endregion
198 
199         #region 缓慢的显示
200         /// <summary>
201         /// 缓慢的显示。
202         /// <param name="Content">弹出框显示的内容</param>
203         /// <param name="Height">弹出框的高度</param>
204         /// <param name="Title">弹出框的标题</param>
205         /// <param name="Width">弹出框的宽度</param>
206         /// </summary>
207         public void Slowly(int Width, int Height, string Title, string Content)
208         {
209             string Message = "<script language='" + "javascript" + "' type='" + "text/javascript" + "'> var MSG1 = new CLASS_MSN_MESSAGE('" + "task" + "','" + Width + "','" + Height + "','" + "上级安排任务提示:" + "',\"" + Content + "\",'" + "" + "');" +
210                  " MSG1.rect(null,null,null,screen.height); " +
211                  " MSG1.show(); </script>"
212             HttpContext.Current.Response.Write(Message);
213         }
214 
215         /// <summary>
216         /// 缓慢的显示。
217         /// <param name="Title">弹出框的标题</param>
218         /// <param name="Width">弹出框的宽度</param>
219         /// </summary>
220         public void Slowly(string Title, string Content)
221         {
222             Slowly(258160, Title, Content);
223         }
224         #endregion
225 
226         #region 快速的显示
227         /// <summary>
228         /// 快速的显示
229         /// <param name="Content">弹出框显示的内容</param>
230         /// <param name="Height">弹出框的高度</param>
231         /// <param name="Title">弹出框的标题</param>
232         /// <param name="Width">弹出框的宽度</param>
233         /// </summary>
234         public void Quickly(int Width, int Height, string Title, string Content)
235         {
236             string Message = "<script language='" + "javascript" + "' type='" + "text/javascript" + "'> var MSG1 = new CLASS_MSN_MESSAGE('" + "task" + "','" + Width + "','" + Height + "','" + "上级安排任务提示:" + "',\"" + Content + "\",'" + "" + "');" +
237                " MSG1.rect(null,null,null,screen.height-35); " +
238                 "MSG1.speed    = 20; " +
239                " MSG1.step    = 5; " +
240                " MSG1.show(); </script>";
241             HttpContext.Current.Response.Write(Message);
242         }
243 
244         /// <summary>
245         /// 快速的显示
246         /// <param name="Title">弹出框的标题</param>
247         /// <param name="Width">弹出框的宽度</param>
248         /// </summary>
249         public void Quickly(string Title, string Content)
250         {
251             Quickly(258160, Title, Content);
252         }
253         #endregion
254 
255         #region 调用静态的操作
256         /// <summary>
257         /// 调用显示的属性。
258         /// </summary>
259         /// <returns></returns>
260         public static PopupMessage Display
261         {
262             get
263             {
264                 return new PopupMessage();
265             }
266         }
267         #endregion
268     }
269 }
270 

 

使用方法:

 

 


 PopupMessage.PopupMessage message = new PopupMessage.PopupMessage();
        
string SongPath = System.Configuration.ConfigurationManager.AppSettings["SongPath"].ToString();
        
string result = "<bgsound   src='" + SongPath + "'   loop=2/><a id='btnNewMessage' style='text-decoration:none;cursor:hand;'>您好!目前有111等 222个待办事项,请点击查看!</a>";
        
string aa = "SaleManager/OrderList.aspx";
        result 
= result + "<br/> <bgsound src='" + SongPath + "' loop=2/>" +
                  
"<a id='btnaNewMessage' style='text-decoration:none;cursor:hand;' onclick='parent.NavigateUrl(\\\"" + aa + "\\\");'>您好!目前有" + "sss" + "" + "11" + "个待办事项,请点击查看!</a>";
        message.Slowly(
258160"待办事项", result);

 

这里面需要注意的是\的问题,因为在跳转的时候,要注意方法内的参数是否可以使用.

代码下载/Files/wenjl520/PopupMessage.rar

 

版权说明

  如果标题未标有<转载、转>等字则属于作者原创,欢迎转载,其版权归作者和博客园共有。  

  作      者:温景良

 文章出处:http://beniao.cnblogs.com/  或  http://www.cnblogs.com/

posted @ 2009-09-30 20:03  牛啊牛  阅读(1182)  评论(0编辑  收藏  举报
免费发布信息免费发布供求信息免费发布分类信息