[转载]运用AJAX实现右下角弹出提示框 示例
<P>[code]<BR>//定义XMLHttp实例<BR>var xmlHttp;<BR>function createXMLHttpRequest(){<BR>//开始初始化XMLHttpRequest对象<BR> if(window.ActiveXObject){<BR>//IE浏览器<BR> xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");<BR> }else if(window.XMLHttpRequest){<BR>//Mozilla浏览器<BR> xmlHttp = new XMLHttpRequest();<BR> }<BR>if(xmlHttp){<BR> //设置请求地址<BR> xmlHttp.open("GET","message.do?cmd=get",true);<BR> xmlHttp.onreadystatechange=setState;//设置回调函数<BR> xmlHttp.send(null);<BR> }<BR>}<BR>//回调函数<BR>function setState(){<BR> if(xmlHttp.readyState == 4){<BR> if(xmlHttp.status == 200){<BR> parseResults(xmlHttp.responseXML)<BR> }<BR> }<BR>} <BR>/*处理XML*/<BR>function parseResults(xmlDOM) {<BR>try{<BR>var root = xmlDOM.documentElement; <BR>var info = root.getElementsByTagName('message');<BR>var out = "";<BR>var message = null;<BR>var current = null;<BR> for(var i=0;i<info.length;i++){<BR> message = info[i];<BR> id = message.getElementsByTagName("id")[0].firstChild.data;<BR> title = message.getElementsByTagName("title")[0].firstChild.data;<BR> out=out+(i+1)+"."+"<a style=\"font-size:12px; color: #6D93C8; face: Tahoma\" title='内容提要:\n"<BR> +title<BR> +"\n时间:"<BR> +title<BR> +"'"+" href=# >"<BR> +title<BR> +"</a><BR>";<BR> } <BR> popmsg("<BR>"+out);<BR> }catch(exception){<BR> // alert("出错了!");<BR> } <BR>}</P><P>/*右下角提示框*/<BR>var oPopup = window.createPopup();<BR>var popTop=50;<BR>function popshow(){<BR>oPopup.show(screen.width-250,screen.height-popTop,241,172);<BR>}<BR>function pophide(){<BR>oPopup.hide();<BR>}<BR>function popmsg(msgstr){</P>
<P> var winstr="<table valign=\"top\" style=\"border: 1 solid #6D93C8\" width=\"241\" height=\"172\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" >";<BR> winstr+="<tr><td bgcolor=\"#BCCCDF\" onClick=\"parent.pophide();\" valign=\"top\" align=\"center\" height=\"20\" style=\"font-size:14px; color: #6D93C8; face: Tahoma;filter:Blur(add=1,direction=45,strength=8) \">你有新短消息:</td></tr><tr><td valign=\"top\" align=\"center\"><table valign=\"top\" width=\"90%\" height=\"110\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">";<BR> winstr+="<tr><td valign=\"top\" style=\"font-size:12px; color: #6D93C8; face: Tahoma\">"+msgstr+"</td></tr></table></td></tr></table>";<BR> <BR> oPopup.document.body.innerHTML = winstr;<BR> popshow();<BR> setInterval('window.focus()',0); //让IE重获取焦点 <BR> <BR>}</P>
<P>/*提示间隔时间*/<BR>var secs=5;//第一次提示时间秒<BR> function checkServer(secs){<BR> for(i=1;i<=secs;i++) {<BR> window.setTimeout("update(" + i + ")", i * 1000);<BR> }<BR> }<BR> function update(num) {<BR> if(num == secs) {<BR> createXMLHttpRequest();<BR> secs=1*60;//提示时间秒<BR> for(i=1;i<=secs;i++) {<BR> window.setTimeout("update(" + i + ")", i * 1000);<BR> }<BR> }<BR> else {<BR> printnr = secs-num;<BR> }<BR> }<BR>checkServer(secs);<BR>[/code]</P>
<P>请求的XML内容<BR>[code]<BR><?xml version="1.0" encoding="UTF-8"?><BR><messages><BR> <message><BR> <id>001</id><BR> <title>通知你今天来开会</title><BR> </message><BR></messages><BR>[/code]<BR>如果XML要动态生成则用下面代码<BR>[code]<BR><%@ page import="java.util.List,com.sunflower.model.Message" contentType="text/xml;charset=utf-8"%><BR><%<BR> response.setContentType("text/xml");<BR> response.setHeader("Cache-Control", "no-cache");<BR> List list = (List)request.getAttribute("messages");<BR> <BR> out.println("<messages>");<BR> if(list!=null)<BR> for(int i=0;i<list.size();i++){<BR> Message objM = (Message)list.get(i);<BR> out.println("<message>");<BR> out.println("<id>"+objM.getId()+"</id>");<BR> out.println("<title>"+objM.getTitle()+"</title>");<BR> out.println("</message>");<BR> }<BR> out.println("</messages>");<BR> %><BR>[/code]<BR></P> [code]<BR><html><BR><head><BR><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><BR><title>右下角弹出提示</title><BR></head><BR><script type="text/javascript" src="ajax.js"></script><BR><body><BR><input type="button" onclick="createXMLHttpRequest()" value="测试请求" /><BR><div id="contain"></div><BR></body><BR></html><BR>[/code]<BR> 版主,不行呀!!试了一下,不能使用!!!这是我的QQ:460089216 ,我们用QQ聊<BR> 版主,你那个【"message.do?cmd=get"】,是不是处理数据的页面,还是什么呀,在ASP.NET应该怎么去理解和写呀,求救!!!! 我调试试下,谢谢版主 这个太复杂了吧
有直接的控件可以使用的
详细可以看我的博客里有写文章和示例代码
http://beniao.cnblogs.com
页:
[1]
