仿msn弹出窗口

msnMessage.js文件代码:

 

ContractedBlock.gifExpandedBlockStart.gifCode
  1 /**
  2 **    ==================================================================================================  
  3 **    类名:msnMessage  
  4 **    功能:提供类似MSN消息框  
  5 **    示例:  
  6       -------------------------------------------------------------------------------------------------- 
  7       var MSG = new msnMessage("aa",200,120,"短消息提示:","您有1封消息","今天请我吃饭哈");  
  8       MSG.show();  
  9   
 10       -------------------------------------------------------------------------------------------------- 
 11 **    作者:juhnpen(在原作者ttyp的基础上做了点改动)
 12 **    邮件:juhnpen@126.com(原作者信箱ttyp@21cn.com)
 13 **    日期:2008-10-13  
 14 **    ==================================================================================================  
 15 **/  
 16 /**
 17 **    消息构造  
 18 **/  
 19 function msnMessage(id,width,height,caption,title,message,target,action)
 20 {
 21     this.id     = id;  
 22     this.title  = title;  
 23     this.caption= caption;  
 24     this.message= message;  
 25     this.target = target;  
 26     this.action = action;  
 27     this.width    = width?width:200;  
 28     this.height = height?height:120;  
 29     this.timeout= 300;  
 30     this.speed    = 20
 31     this.step    = 1
 32     this.right    = screen.width -1;  
 33     this.bottom = screen.height; 
 34     this.left    = this.right - this.width; 
 35     this.top    = this.bottom - this.height; 
 36     this.timer    = 0
 37     this.pause    = false;
 38     this.close    = false;
 39     this.autoHide    = true;
 40 }
 41 /**
 42 **    隐藏消息方法  
 43 **/  
 44 msnMessage.prototype.hide = function()
 45 {
 46     if(this.onunload())
 47     {  
 48         var offset  = this.height>this.bottom-this.top?this.height:this.bottom-this.top; 
 49         var me  = this;  
 50  
 51         if(this.timer>0)
 52         {   
 53             window.clearInterval(me.timer);  
 54         }  
 55         var fun = function()
 56         {  
 57             if(me.pause==false||me.close)
 58             {
 59                 var x  = me.left; 
 60                 var y  = 0
 61                 var width = me.width; 
 62                 var height = 0
 63                 if(me.offset>0)
 64                 { 
 65                     height = me.offset; 
 66                 } 
 67      
 68                 y  = me.bottom - height; 
 69      
 70                 if(y>=me.bottom)
 71                 { 
 72                     window.clearInterval(me.timer);  
 73                     me.Pop.hide();  
 74                 } 
 75                 else 
 76                 { 
 77                     me.offset = me.offset - me.step;  
 78                 } 
 79                 me.Pop.show(x,y,width,height);    
 80             }             
 81         }  
 82         this.timer = window.setInterval(fun,this.speed)      
 83     }  
 84 }
 85 /**
 86 **    消息卸载事件,可以重写  
 87 **/   
 88 msnMessage.prototype.onunload = function()
 89 {
 90     return true;
 91 }
 92 /**  
 93 **    消息命令事件,要实现自己的连接,请重写它  
 94 **  
 95 **/  
 96 msnMessage.prototype.oncommand = function()
 97 {
 98     this.close = true;
 99     this.hide(); 
100     window.open(this.target);
101 }
102 /**
103 **    消息显示方法  
104 **/ 
105 msnMessage.prototype.show=function()
106 {
107     var oPopup = window.createPopup(); //IE5.5+  
108     this.Pop = oPopup;  
109     var w = this.width;  
110     var h = this.height;  
111     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'>";
112     str += "<TABLE style='BORDER-TOP: #ffffff 1px solid; BORDER-LEFT: #ffffff 1px solid' cellSpacing=0 cellPadding=0 width='100%' bgColor=#cfdef4 border=0>";    
113     str += "<TR>";
114     str += "<TD style='FONT-SIZE: 12px;COLOR: #0f2c8c' width=30 height=24></TD>";  
115     str += "<TD style='PADDING-LEFT: 4px; FONT-WEIGHT: normal; FONT-SIZE: 12px; COLOR: #1f336b; PADDING-TOP: 4px' vAlign=center width='100%'>" + this.caption + "</TD>";  
116     str += "<TD style='PADDING-RIGHT: 2px; PADDING-TOP: 2px' vAlign=center align=right width=19>";  
117     str += "<SPAN title=关闭 style='FONT-WEIGHT: bold; FONT-SIZE: 12px; CURSOR: hand; COLOR: red; MARGIN-RIGHT: 4px' id='btSysClose' >×</SPAN></TD>";  
118     str += "</TR>";  
119     str += "<TR>";  
120     str += "<TD style='PADDING-RIGHT: 1px;PADDING-BOTTOM: 1px' colSpan=3 height=" + (h-28+ ">";  
121     str += "<DIV style='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>";  
122     str += "<DIV style='WORD-BREAK: break-all' align=left><A href='javascript:void(0)' hidefocus=true id='btCommand'><FONT color=#ff0000>" + this.message + "</FONT></A></DIV>";  
123     str += "</DIV>";  
124     str += "</TD>";  
125     str += "</TR>"  
126     str += "</TABLE>";  
127     str += "</DIV>";  
128     oPopup.document.body.innerHTML = str; 
129     this.offset  = 0
130     var me  = this;  
131     oPopup.document.body.onmouseover = function(){me.pause=true;}
132     oPopup.document.body.onmouseout = function(){me.pause=false;}
133     var fun = function()
134     {  
135         var x  = me.left; 
136         var y  = 0
137         var width    = me.width; 
138         var height    = me.height; 
139         if(me.offset>me.height)
140         { 
141             height = me.height; 
142         } 
143         else
144         { 
145             height = me.offset; 
146         } 
147         y  = me.bottom - me.offset; 
148         if(y<=me.top)
149         { 
150             me.timeout--
151             if(me.timeout==0)
152             { 
153                 window.clearInterval(me.timer);  
154                 if(me.autoHide)
155                 {
156                     me.hide(); 
157                 }
158             } 
159         } 
160         else 
161         { 
162             me.offset = me.offset + me.step; 
163         } 
164         me.Pop.show(x,y,width,height);    
165     }    
166     this.timer = window.setInterval(fun,this.speed)      
167     var btClose = oPopup.document.getElementById("btSysClose");  
168     btClose.onclick = function()
169     {  
170         me.close = true;
171         me.hide();  
172     }  
173     var btCommand = oPopup.document.getElementById("btCommand");  
174     btCommand.onclick = function()
175     {  
176         me.oncommand();  
177     }    
178 }
179 /**
180 ** 设置速度方法 
181 **/ 
182 msnMessage.prototype.speed = function(s)
183 {
184     var t = 20
185     try 
186     { 
187         t = praseInt(s); 
188     } 
189     catch(e)
190     {} 
191     this.speed = t; 
192 }
193 /**//* 
194 ** 设置步长方法 
195 **/ 
196 msnMessage.prototype.step = function(s)
197 {
198     var t = 1
199     try 
200     { 
201         t = praseInt(s); 
202     } 
203     catch(e)
204     {} 
205     this.step = t; 
206 }
207 msnMessage.prototype.rect = function(left,right,top,bottom)
208 {
209     try { 
210         this.left   = left   != null?left:this.right-this.width; 
211         this.right  = right  != null?right:this.left +this.width; 
212         this.bottom = bottom !=null?(bottom>screen.height?screen.height:bottom):screen.height; 
213         this.top    = top    !=null?top:this.bottom - this.height; 
214     } 
215     catch(e)
216     {} 
217 }
218 

 

调用代码:

 

ContractedBlock.gifExpandedBlockStart.gifCode
<script language="javascript" type="text/javascript">
var msg1 = new msnMessage("aa",200,120,"短消息提示:","您有1封消息","今天请我吃饭哈","11.htm");  
msg1.rect(
null,null,null,screen.height-50);
msg1.speed 
= 10;
msg1.step 
= 5
//alert(msg1.top); 
msg1.show();  
//同时两个有闪烁,只能用层代替了,不过层不跨框架 
var msg2 = new msnMessage("aa",200,120,"短消息提示:","您有2封消息","好的啊","22.htm");  
msg2.rect(
100,null,null,screen.height); 
msg2.show();  
</script>

 

注意:如果是在asp.net中,js文件中包含的字符通过innerHTML输出后会显示乱码,作如下改动:

1.Web.config中加入 <system.web> <globalization requestEncoding="utf-8" responseEncoding="utf-8" /> </system.web>

2.Aspx页面文件中加入

<META http-equiv="content-type" content="text/html; charset=gb2312">

3.在页面加载事件中加入下句:
Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");

原因是如果js写在asp.net中,一般是不会出现乱码的问题。因为他们具有相同的编码。如果需要引用外部的javascript代码就会有乱码的风险了。一般情况下Asp.net和Javascript的页面编码不是GB2312就是Utf-8 ,如果两者的编码不一致就会产生乱码。解决方法就是想两者的编码进行统一。由于一般情况下Asp.net接受发送请求的编码是Utf-8的,javascript编码默认是Gb2312,故容易出现问题。

转载于:https://www.cnblogs.com/juhnpen/archive/2008/10/13/1309637.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/496653.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CPU诞生记|CPU制造全过程详解

来源&#xff1a;电子产品世界CPU(Centralprocessingunit)是现代计算机的核心部件&#xff0c;又称为“微处理器”。对于PC而言&#xff0c;CPU的规格与频率常常被用来作为衡量一台电脑性能强弱重要指标。Intelx86架构已经经历了二十多个年头&#xff0c;而x86架构的CPU对我们大…

二维数组 类型_Java第六章 | 二维数组的创建及使用、数组排序算法

二维数组的创建及使用1、二维数组的创建2、二维数组初始化3、使用二维数组二维数组的创建声明二维数组的方法有两种&#xff0c;语法如下所示&#xff1a;数组元素类型 数组名字[ ][ ];数组元素类型[ ][ ] 数组名字;数组元素类型&#xff1a;决定了数组的数据类型&#xff0c;它…

Semaphore及其用法

1、Semaphore 是什么 Semaphore 通常我们叫它信号量&#xff0c; 可以用来控制同时访问特定资源的线程数量&#xff0c;通过协调各个线程&#xff0c;以保证合理的使用资源。 比如&#xff1a;停车场入口立着的那个显示屏&#xff0c;每有一辆车进入停车场显示屏就会显示剩余…

sklearn 逻辑回归Demo

逻辑回归案例 假设表示 基于上述情况&#xff0c;要使分类器的输出在[0,1]之间&#xff0c;可以采用假设表示的方法。 设 h θ ( x ) g ( θ T x ) h_θ (x)g(θ^T x) hθ​(x)g(θTx)&#xff0c; 其中 g ( z ) 1 ( 1 e − z ) g(z)\frac{1}{(1e^{−z} )} g(z)(1e−z)1​…

URL原理、URL编码、URL特殊字符、输入URL到页面显示

​From&#xff1a;http://blog.csdn.net/zmx729618/article/details/51381655 From&#xff1a;http://www.cnblogs.com/coco1s/p/5038412.html HTML URL 编码参考手册&#xff1a;https://www.w3cschool.cn/htmltags/html-urlencode.html http://www.w3school.com.cn/t…

记忆模糊、记忆泛化的关键分子开关被发现

来源&#xff1a;brainnews2018年3月12日&#xff0c;Nature Medicine杂志在线刊登了麻省总医院Amar Sahay研究组的最新重要工作&#xff0c;他们发现了一种细胞骨架蛋白Actin-binding LIM protein 3 (ABLIM3)&#xff0c;降低该蛋白的表达水平可以增强海马齿状回细胞&#xff…

240多个jQuery插件 (转)

概述 jQuery 是继 prototype 之后又一个优秀的 Javascript 框架。其宗旨是—写更少的代码,做更多的事情。它是轻量级的 js 库(压缩后只有21k) &#xff0c;这是其它的 js 库所不及的&#xff0c;它兼容 CSS3&#xff0c;还兼容各种浏览器&#xff08;IE 6.0, FF 1.5, Safari 2.…

Exchanger及其用法

01 Exchanger 作用 使两个线程之间进行数据传递。&#xff08;对是两个之间而不是三个或者更多个线程之间&#xff09; 02 常用方法 exchange&#xff08;&#xff09; 阻塞当前线程并等待其他线程来取得数据&#xff0c;若没有其他线程来取数据则一直等待。 exchange&…

2 如何设置窗口title_如何设置华为4G路由2的WiFi黑白名单【设置方法】

不想让自家的Wi-Fi被蹭网&#xff0c;除了将Wi-Fi隐藏起来&#xff0c;您还可以设置Wi-Fi黑白名单。如果您发现有人蹭网了&#xff0c;可以将蹭网设备直接加入黑名单&#xff0c;这样就可以禁止这个设备再连接到您的Wi-Fi。如果您将家人、朋友的设备加入了白名单&#xff0c;那…

谷歌大脑AutoML最新进展:用进化算法发现神经网络架构

来源&#xff1a;AI中国大脑的进化进程持续已久&#xff0c;从5亿年前的蠕虫大脑到现如今各种现代结构。例如&#xff0c;人类的大脑可以完成各种各样的活动&#xff0c;其中许多活动都是毫不费力的。例如&#xff0c;分辨一个视觉场景中是否包含动物或建筑物对我们来说是微不足…

linux 的 ip 命令 和 ifconfig 命令

From&#xff08;试试Linux下的ip命令&#xff0c;ifconfig已经过时了&#xff09;&#xff1a; https://linux.cn/article-3144-1.html From&#xff08;linux网络配置命令之ifconfig、ip和route&#xff09;&#xff1a; http://chrinux.blog.51cto.com/6466723/1188108 From…

对于Office Live平台的思考

刚接触计算机编程的时候&#xff0c;脑子里想法比肚子里的墨水多得多&#xff0c;那时候想通过网络成立一个游戏开发团队&#xff0c;将不少人都很喜欢的一款FC游戏“重装机兵”&#xff08;Metal Max&#xff09;移植到电脑上来。当时的想法很激进也很宏大&#xff0c;我想的不…

中国学者用人工光感受器助失明小鼠复明

来源&#xff1a;《自然—通讯》中国研究人员在英国《自然通讯》杂志上发表报告说&#xff0c;他们通过在失明小鼠眼底植入一种新研发的人工光感受器&#xff0c;让它们的视觉得以恢复。如果这种技术发展成熟&#xff0c;未来或许能帮助因黄斑变性等疾病而视力下降或失明的患者…

boundcolumn 根据值进行判断_Excel使用函数进行条件判断的方法步骤

Excel中的函数具体该如何进行判断数据的条件是否达到要求呢?下面是学习关于excel使用函数进行条件判断的教程&#xff0c;希望阅读过后对你有所启发! excel使用函数进行条件判断的教程 函数条件判断步骤1&#xff1a;如何计算成绩是否合格 函数条件判断步骤2&#xff1a;选中要…

城市大脑不仅是AI系统,更是结合人类智慧的混合智能巨系统

作者&#xff1a;刘锋 《互联网进化论》作者从2015年开始&#xff0c;智慧城市的类脑化进程不断加速&#xff0c;包括城市大脑&#xff0c;城市云脑&#xff0c;城市神经系统&#xff0c;智慧城市脑&#xff0c;交通大脑等概念不断涌现&#xff0c;人工智能成为当前科技热点的今…

转载:ListBox的SelectedValue和SelectedItem的区别

转载&#xff1a;ListBox的SelectedValue和SelectedItem的区别 原文&#xff1a;http://www.beacosta.com/blog/?p9What is the difference between SelectedValue and SelectedItem? When they are used by themselves, these two properties are very similar. The need fo…

上帝的指纹——分形与混沌

来源&#xff1a;王东明科学网博客云朵不是球形的&#xff0c;山峦不是锥形的&#xff0c;海岸线不是圆形的&#xff0c;树皮不是光滑的&#xff0c;闪电也不是一条直线。——分形几何学之父Benoit Mandelbrot话说在一个世纪以前&#xff0c;数学领域相继出现了一些数学鬼怪&am…

scrapy 教程

------------------------------------------------------------------------------------------ scrapy 中文文档 和 scrapy 英文文档参照看。因为中文文档比较老&#xff0c;英文文档是最新的。 scrapy 英文文档&#xff1a;https://doc.scrapy.org/en/latest scrapy 中文文档…

智慧停车产业链市场全透析

来源&#xff1a;慧天地最近&#xff0c;Goodwin调查发现&#xff0c;在城市地区&#xff0c;接近30%的交通拥堵源自于司机寻找停车位。据称&#xff0c;到2020年&#xff0c;将会有20亿的汽车在公路上跑着&#xff0c;这就意味着&#xff0c;届时汽车的数量将比目前多了7.7亿辆…

语音合成与识别技术在C#中的应用 (转 )

语音合成与识别技术在C#中的应用 (转 &#xff09; 我们要想实现中文发音或中文语音识别&#xff0c;必需先安装微软的Speech Application SDK&#xff08;SASDK&#xff09;&#xff0c;它的最新版本是 SAPI 5.1 他能够识别中、日、英三种语言&#xff0c;你可以在这里下载&am…