当前位置:编程学习 > C#/ASP.NET >>

求一个类似于MSN消息弹出效果的JS脚本

RT~
前天慕白兄给了个类似的东西,但是右下角弹出的消息窗口没有关闭键,而且鼠标点击其他地方的话窗口就会消失掉。

要求的效果是:
点击窗口的其他地方,消息窗口不变。
窗口的右上角有个叉叉,用于关闭窗口。


各位高手~~请赐教啦~~
--------------------编程问答-------------------- http://blog.csdn.net/Eray/archive/2007/06/18/1656489.aspx --------------------编程问答-------------------- <html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 
<meta name="Keywords" content="51windows.Net"> 
<META NAME="Author" CONTENT="haiwa"> 
<title>类似MSN提示的页面效果</title> 
</head> 
<body width=2000>
<script language="JavaScript"> 
window.onload = getMsg; 
window.onresize = resizeDiv; 
window.onerror = function(){} 
//短信提示使用(asilas添加) 
var divTop,divLeft,divWidth,divHeight,docHeight,docWidth,objTimer,i = 0; 
function getMsg() 

try

   divTop = parseInt(document.getElementById("eMeng").style.top,10) 
   divLeft = parseInt(document.getElementById("eMeng").style.left,10) 
   divHeight = parseInt(document.getElementById("eMeng").offsetHeight,10) 
   divWidth = parseInt(document.getElementById("eMeng").offsetWidth,10) 
   docWidth = document.body.clientWidth; 
   docHeight = document.body.clientHeight; 
   document.getElementById("eMeng").style.top = parseInt(document.body.scrollTop,10) + docHeight + 10;// divHeight 
   document.getElementById("eMeng").style.left = parseInt(document.body.scrollLeft,10) + docWidth - divWidth 
   document.getElementById("eMeng").style.visibility="visible" 
   objTimer = window.setInterval("moveDiv()",10) 

catch(e){} 


function resizeDiv() 

   i+=1 
   if(i>500) closeDiv() 
   try
   { 
      divHeight = parseInt(document.getElementById("eMeng").offsetHeight,10) 
      divWidth = parseInt(document.getElementById("eMeng").offsetWidth,10) 
      docWidth = document.body.clientWidth; 
      docHeight = document.body.clientHeight; 
      document.getElementById("eMeng").style.top = docHeight - divHeight + parseInt(document.body.scrollTop,10) 
      document.getElementById("eMeng").style.left = docWidth - divWidth + parseInt(document.body.scrollLeft,10) 
   } 
   catch(e)
   {
   
   } 


function moveDiv() 

try 

if(parseInt(document.getElementById("eMeng").style.top,10) <= (docHeight - divHeight + parseInt(document.body.scrollTop,10))) 

window.clearInterval(objTimer) 
objTimer = window.setInterval("resizeDiv()",1) 

divTop = parseInt(document.getElementById("eMeng").style.top,10) 
document.getElementById("eMeng").style.top = divTop - 1 

catch(e){}

function closeDiv() 

document.getElementById('eMeng').style.visibility='hidden'; 
if(objTimer) window.clearInterval(objTimer) 

</script> 
<DIV id=eMeng style="BORDER-RIGHT: #455690 1px solid; BORDER-TOP: #a6b4cf 1px solid; Z-INDEX:99999; LEFT: 0px; VISIBILITY: hidden; BORDER-LEFT: #a6b4cf 1px solid; WIDTH: 180px; BORDER-BOTTOM: #455690 1px solid; POSITION: absolute; TOP: 0px; HEIGHT: 116px; BACKGROUND-COLOR: #c9d3f3"> 
<TABLE style="BORDER-TOP: #ffffff 1px solid; BORDER-LEFT: #ffffff 1px solid" cellSpacing=0 cellPadding=0 width="100%" bgColor=#cfdef4 border=0> 
<TBODY> 
<TR> 
<TD style="FONT-SIZE: 12px; BACKGROUND-IMAGE: url(msgTopBg.gif); COLOR: #0f2c8c" width=30 height=24></TD> 
<TD style="FONT-WEIGHT: normal; FONT-SIZE: 12px; BACKGROUND-IMAGE: url(msgTopBg.gif); COLOR: #1f336b; PADDING-TOP: 4px;PADDING-left: 4px" vAlign=center width="100%"> 短消息提示:</TD> 
<TD style="BACKGROUND-IMAGE: url(msgTopBg.gif); PADDING-TOP: 2px;PADDING-right:2px" vAlign=center align=right width=19><span title=关闭 style="CURSOR: hand;color:red;font-size:12px;font-weight:bold;margin-right:4px;" onclick=closeDiv() >×</span><!-- <IMG title=关闭 style="CURSOR: hand" onclick=closeDiv() hspace=3 src="msgClose.jpg"> --></TD> 
</TR> 
<TR> 
<TD style="PADDING-RIGHT: 1px; BACKGROUND-IMAGE: url(1msgBottomBg.jpg); PADDING-BOTTOM: 1px" colSpan=3 height=90> 
<DIV style="BORDER-RIGHT: #b9c9ef 1px solid; PADDING-RIGHT: 13px; BORDER-TOP: #728eb8 1px solid; PADDING-LEFT: 13px; FONT-SIZE: 12px; PADDING-BOTTOM: 13px; BORDER-LEFT: #728eb8 1px solid; WIDTH: 100%; COLOR: #1f336b; PADDING-TOP: 18px; BORDER-BOTTOM: #b9c9ef 1px solid; HEIGHT: 100%">您有<font color=#FF0000>1</font>封新短消息<BR><BR> 
<DIV align=center style="word-break:break-all"><a href="http://www.google.com"><font color=#FF0000>google</font></a></DIV>
</DIV> 
</TD> 
</TR> 
</TBODY> 
</TABLE> 
</DIV> 



</body> 
</html> --------------------编程问答-------------------- MSN:huifeng801@hotmail.com!发个邮件给我 我发给你!就一张页面一个JS --------------------编程问答-------------------- var Message = new Object();
Message.IsDraw = false;
Message.Max = 100;
Message.Top = -100;
Message.Step = 2;
Message.IsDown = true;
Message.IsComplete = false;
Message.Timer = 0;
Message.Last = 0;
Message.Current = null;
Message.ValidationForm = null;
var specialCharacters_pattern="^([^\,^\;^\"^\'^\/^\>^\<])*$";
Message.Move = function()
{
if(Message.IsDraw)
{
if((!Message.IsDown && Message.Top > -Message.Max) || (Message.IsDown && Message.Top < 0))
{
var nStep = Message.IsDown ? Message.Step:-Message.Step;
Message.Top += nStep;
MessageLayer.style.top = window.document.body.scrollTop + Message.Top;
}
else
{
clearInterval(Message.Timer);
Message.IsComplete = true;

// check is down
if(Message.IsDown)
{
clearTimeout(Message.Last);
Message.Last = setTimeout('Message.Close(1)', 20000);
}
}
}
}

Message.Fix = function()
{
if(Message.IsDraw && Message.IsComplete)
{
MessageLayer.style.top = window.document.body.scrollTop + Message.Top;
}
}

Message.Close = function(nType)
{
clearInterval(Message.Timer);
Message.IsDown = false;
Message.IsComplete = false;
Message.Timer = setInterval(Message.Move, 10);

// set focus
if(nType == undefined || nType != 1)
{
try { Message.Current.select(); }
catch(e) {}
}
}

Message.Show = function(sTitle, sMessage)
{
sTitle = unescape(sTitle);
sMessage = unescape(sMessage);
///////////////////////////////////////
if(sMessage.length > 100)
{
        Message.Top = -sMessage.length;
        Message.Max = sMessage.length;
    }
    ///////////////////////////////////////
if(Message.IsDraw)
{
MessageTitle.innerHTML = "<span><font color=\"#FF0000\"><b>" + sTitle + "</b></font>";
MessageContent.innerHTML = sMessage;

// start
clearInterval(Message.Timer);
Message.IsDown = true;
Message.IsComplete = false;
Message.Current = null;
Message.Timer = setInterval(Message.Move, 10);
}
}

Message.Draw = function()
{
document.write(""
+ "<div id=\"MessageLayer\" width=\"100%\" style=\"Z-INDEX: 101; LEFT: 0px; POSITION: absolute; TOP: -150px\">"
+ "<table border=\"1\" cellpadding=\"0\" style=\"border-collapse: collapse\" width=\"100%\" bordercolor=\"#000000\" style=\"background-image:url(/images/message/bg.gif);background-repeat: repeat-x;background-color:white;background-position: bottom;\">"
+ "<tr>"
+ "<td>"
+ "<table border=\"0\" cellpadding=\"0\" style=\"border-collapse: collapse\" width=\"100%\">"
+ "<tr>"
+ "<td width=\"200\" style=\"padding:5;padding-left:10;\" id=\"MessageTitle\" height=\"29\"><span><font color=\"#FF0000\"><b></b></font></span></td>"
+ "<td align=\"right\" style=\"padding-right:10;\"><a href=\"javascript:\" onclick=\"Message.Close()\"><img src=\"/images/message/close.gif\" border=\"0\">"
+ "</a></td>"
+ "</tr>"
+ "<tr>"
+ "<td id=\"MessageContent\" colspan=\"2\" style=\"padding-left:15;padding-right:10;padding-bottom:10;;word-break:break-all\" height=\"29\"></td>"
+ "</tr>"
+ "</table>"
+ "</td>"
+ "</tr>"
+ "</table>"
+ "<table border=\"0\" cellpadding=\"0\" style=\"border-collapse: collapse\" width=\"100%\">"
+ "<tr><td colspan=\"2\" bgcolor=\"#808080\"></td></tr>"
+ "<tr><td colspan=\"2\" bgcolor=\"#C0C0C0\"></td></tr>"
+ "</table>"
+ "</div>");

Message.IsDraw = true;
setInterval(Message.Fix, 10);
}

Message.ValidateContrl = function(control)
{
if(control.m_title == null || control.m_title == undefined || control.m_message == null || control.m_message == undefined)
{
return true;
}

// check empty
if(control.m_empty == "true" && control.value == "")
{
return Message.ShowError(control);
}

// check number
if(control.m_number == "true" && !string.IsNumber(control.value))
{
return Message.ShowError(control);
}

// check length
if(string.IsNumber(control.m_length) && control.value.length > parseInt(control.m_length))
{
return Message.ShowError(control);
}

// check regex
if(control.m_pattern != null && control.m_pattern != undefined && control.m_pattern != "" && control.value != "")
{
var re = new RegExp(control.m_pattern);
if(re.exec(control.value) == null || control.value != re.exec(control.value)[0])
{
return Message.ShowError(control);
}
}
//检验特殊字符
if(control.m_check == "true")
{
   var re = new RegExp(specialCharacters_pattern);
   if(re.exec(control.value) == null || control.value != re.exec(control.value)[0] || control.value.indexOf("\\") != -1)
   {
       Message.Show(control.m_title, "不能包含特殊字符号[\\,/;'\":?><]");
   Message.Current = control;
   control.select();
   return false;
   } 
}

return true;
}

Message.Validate = function(control)
{
try
{
if(Message.ValidationForm == null && control == null)
{
return true;
}

var child = (control == null) ? Message.ValidationForm.children : control.children;
for(var nPos = 0; nPos < child.length; nPos++)
{
var subControl = child[nPos];
if(Message.ValidateContrl(subControl) && Message.Validate(subControl))
{
continue;
}
return false;
}
return true;
}
catch(e) { return false; }
}

Message.ShowError = function(control)
{
try
{
Message.Show(control.m_title, control.m_message);
Message.Current = control;
control.select();
}
catch(e) {}
return false;
}

Message.isSupported = function()
{
if (typeof Message.isSupported.r == "boolean") 
return Message.isSupported.r;
var ua = navigator.userAgent.toLowerCase();
var an = navigator.appName;
var r = false;
if (ua.indexOf("gecko") > -1) r = true; 
else if (an == "Microsoft Internet Explorer")
{
if (document.getElementById) r = true; 
}
Message.isSupported.r = r;
return r;
}

if(Message.isSupported())
{
Message.Draw();
} --------------------编程问答-------------------- 给你个地址,去下吧
download.csdn.net/sort/tag/popupwin --------------------编程问答-------------------- 有个空间 popupbox.dll 可以实现的 --------------------编程问答-------------------- <html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="Keywords" content="51windows.Net">
<META NAME="Author" CONTENT="haiwa">
<title>类似MSN提示的页面效果</title>
</head>

<body scroll=no>
看到右下角的提示了吗?如果没有看到,<button onclick=location.reload();>刷新</button>一下
<script language="JavaScript">
window.onload = getMsg;
window.onresize = resizeDiv;
window.onerror = function(){}
//短信提示使用(asilas添加)
var divTop,divLeft,divWidth,divHeight,docHeight,docWidth,objTimer,i = 0;
function getMsg()
{
   try{
   divTop = parseInt(document.getElementById("eMeng").style.top,10)
   divLeft = parseInt(document.getElementById("eMeng").style.left,10)
   divHeight = parseInt(document.getElementById("eMeng").offsetHeight,10)
   divWidth = parseInt(document.getElementById("eMeng").offsetWidth,10)
   docWidth = document.body.clientWidth;
   docHeight = document.body.clientHeight;
   document.getElementById("eMeng").style.top = parseInt(document.body.scrollTop,10) + docHeight + 10;// divHeight
   document.getElementById("eMeng").style.left = parseInt(document.body.scrollLeft,10) + docWidth - divWidth
   document.getElementById("eMeng").style.visibility="visible"
   objTimer = window.setInterval("moveDiv()",10)
   }
   catch(e){}
}

function resizeDiv()
{
   i+=1
   if(i>500) closeDiv()
   try{
   divHeight = parseInt(document.getElementById("eMeng").offsetHeight,10)
   divWidth = parseInt(document.getElementById("eMeng").offsetWidth,10)
   docWidth = document.body.clientWidth;
   docHeight = document.body.clientHeight;
   document.getElementById("eMeng").style.top = docHeight - divHeight + parseInt(document.body.scrollTop,10)
   document.getElementById("eMeng").style.left = docWidth - divWidth + parseInt(document.body.scrollLeft,10)
   }
   catch(e){}
}

function moveDiv()
{
   try
   {
   if(parseInt(document.getElementById("eMeng").style.top,10) <= (docHeight - divHeight + parseInt(document.body.scrollTop,10)))
   {
   window.clearInterval(objTimer)
   objTimer = window.setInterval("resizeDiv()",1)
   }
   divTop = parseInt(document.getElementById("eMeng").style.top,10)
   document.getElementById("eMeng").style.top = divTop - 1
   }
   catch(e){}
}
function closeDiv()
{
   document.getElementById('eMeng').style.visibility='hidden';
   if(objTimer) window.clearInterval(objTimer)
}
</script>
<DIV id=eMeng style="BORDER-RIGHT: #455690 1px solid; BORDER-TOP: #a6b4cf 1px solid; Z-INDEX:99999; LEFT: 0px; VISIBILITY: hidden; BORDER-LEFT: #a6b4cf 1px solid; WIDTH: 180px; BORDER-BOTTOM: #455690 1px solid; POSITION: absolute; TOP: 0px; HEIGHT: 116px; BACKGROUND-COLOR: #c9d3f3">
   <TABLE style="BORDER-TOP: #ffffff 1px solid; BORDER-LEFT: #ffffff 1px solid" cellSpacing=0 cellPadding=0 width="100%" bgColor=#cfdef4 border=0>
   <TBODY>
     <TR>
       <TD style="FONT-SIZE: 12px; BACKGROUND-IMAGE: url(msgTopBg.gif); COLOR: #0f2c8c" width=30 height=24></TD>
       <TD style="FONT-WEIGHT: normal; FONT-SIZE: 12px; BACKGROUND-IMAGE: url(msgTopBg.gif); COLOR: #1f336b; PADDING-TOP: 4px;PADDING-left: 4px" vAlign=center width="100%"> 短消息提示:</TD>
       <TD style="BACKGROUND-IMAGE: url(msgTopBg.gif); PADDING-TOP: 2px;PADDING-right:2px" vAlign=center align=right width=19><span title=关闭 style="CURSOR: hand;color:red;font-size:12px;font-weight:bold;margin-right:4px;" onclick=closeDiv() >×</span><!-- <IMG title=关闭 style="CURSOR: hand" onclick=closeDiv() hspace=3 src="msgClose.jpg"> --></TD>
     </TR>
     <TR>
       <TD style="PADDING-RIGHT: 1px; BACKGROUND-IMAGE: url(1msgBottomBg.jpg); PADDING-BOTTOM: 1px" colSpan=3 height=90>
         <DIV style="BORDER-RIGHT: #b9c9ef 1px solid; PADDING-RIGHT: 13px; BORDER-TOP: #728eb8 1px solid; PADDING-LEFT: 13px; FONT-SIZE: 12px; PADDING-BOTTOM: 13px; BORDER-LEFT: #728eb8 1px solid; WIDTH: 100%; COLOR: #1f336b; PADDING-TOP: 18px; BORDER-BOTTOM: #b9c9ef 1px solid; HEIGHT: 100%">您有<font color=#FF0000>1</font>封新短消息<BR><BR>
         <DIV align=center style="word-break:break-all"><a href="javascript:alert('你好')"><font color=#FF0000>点击查看短信</font></a></DIV

         </DIV>
       </TD>
     </TR>
   </TBODY>
   </TABLE>
</DIV>
</body>
</html>
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,