仿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,一经查实,立即删除!

相关文章

ECC签名算法

文章目录前言一、ECC是什么&#xff1f;二、go语言实现前言 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、ECC是什么&#xff1f; ECC全称为“Ellipse Curve Ctyptography”&#xff0c;是一种基于椭圆曲线数学的公开密钥加密算法。椭圆曲线在密…

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;每有一辆车进入停车场显示屏就会显示剩余…

使用代理时服务变量的变化

一、没有使用代理服务器的情况&#xff1a; REMOTE_ADDR 您的 IP HTTP_VIA 没数值或不显示 HTTP_X_FORWARDED_FOR 没数值或不显示 二、使用透明代理服务器的情况&#xff1a;Transparent Proxies REMOTE_ADDR 最后一个代理服务器 IP HTTP_VIA 代理服务器 …

SM2算法

文章目录前言一、SM2是什么&#xff1f;二、go语言实现前言 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、SM2是什么&#xff1f; SM2是国家密码管理局于2010年12月17日发布的椭圆曲线公钥密码算法。 SM2算法和RSA算法都是公钥密码算法&#xf…

rocketmq 消息 自定义_跟我学RocketMQ[1-4]之消息消费及支持spring

博客地址:朝闻道​www.wuwenliang.net本文我将继续讲解如何使用DefaultMQPushConsumer对RocketMQ中的消息进行消费&#xff0c;同时在文章的第二部分将继续带领读者朋友对DefaultMQPushConsumer进行薄封装&#xff0c;让我们在Spring中更容易对消息进行消费。DefaultMQPushCons…

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&…

SM3算法

文章目录前言一、SM3是什么&#xff1f;二、go语言实现前言 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、SM3是什么&#xff1f; SM3是中华人民共和国政府采用的一种密码散列函数标准&#xff0c;由国家密码管理局于2010年12月17日发布。相关标…

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

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

复选框怎么点td选中_jQuery点击tr实现checkbox选中的方法

标题描述的有点不贴切&#xff0c;但希望大家能够明白&#xff0c;为了更形像的表达&#xff0c;我特意录制了一张GIF动画图片。我不知道实际开发中有没有用到这种效果&#xff0c;但我个人认为&#xff0c;这种方式更人性化&#xff0c;因为只要点到一行&#xff0c;就可以使C…

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

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

股票名词解释

开盘价&#xff1a;   是指当日开盘后该股票的第一笔交易成交的价格。如果开市后30分钟内无成交价&#xff0c;则以前日的收盘价作为开盘价。 收盘价&#xff1a;   指每天成交中最后一笔股票的价格&#xff0c;也就是收盘价格。 最高价&#xff1a;   是指当日所成交的…

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…

SM4算法

文章目录前言一、SM4是什么&#xff1f;二、go语言实现前言 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、SM4是什么&#xff1f; SM4.0&#xff08;原名SMS4.0&#xff09;是中华人民共和国政府采用的一种分组密码标准&#xff0c;由国家密码管…

Java并发编程实战~软件事务内存

很多同学反馈说&#xff0c;工作了挺长时间但是没有机会接触并发编程&#xff0c;实际上我们天天都在写并发程序&#xff0c;只不过并发相关的问题都被类似 Tomcat 这样的 Web 服务器以及 MySQL 这样的数据库解决了。尤其是数据库&#xff0c;在解决并发问题方面&#xff0c;可…