编程论坛's Archiver

野蛮女人 发表于 2007-9-5 18:38

[转载]运用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&lt;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)+"."+"&lt;a style=\"font-size:12px; color: #6D93C8; face: Tahoma\" title='内容提要:\n"<BR>              +title<BR>              +"\n时间:"<BR>              +title<BR>              +"'"+" href=# &gt;"<BR>              +title<BR>              +"&lt;/a&gt;&lt;BR&gt;";<BR>           } <BR>      popmsg("&lt;BR&gt;"+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="&lt;table  valign=\"top\" style=\"border: 1 solid #6D93C8\" width=\"241\" height=\"172\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" &gt;";<BR>    winstr+="&lt;tr&gt;&lt;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) \"&gt;你有新短消息:&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign=\"top\" align=\"center\"&gt;&lt;table valign=\"top\" width=\"90%\" height=\"110\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"&gt;";<BR>    winstr+="&lt;tr&gt;&lt;td valign=\"top\" style=\"font-size:12px; color: #6D93C8; face: Tahoma\"&gt;"+msgstr+"&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;";<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&lt;=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&lt;=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>&lt;?xml version="1.0" encoding="UTF-8"?&gt;<BR>&lt;messages&gt;<BR>    &lt;message&gt;<BR>        &lt;id&gt;001&lt;/id&gt;<BR>        &lt;title&gt;通知你今天来开会&lt;/title&gt;<BR>    &lt;/message&gt;<BR>&lt;/messages&gt;<BR>[/code]<BR>如果XML要动态生成则用下面代码<BR>[code]<BR>&lt;%@ page import="java.util.List,com.sunflower.model.Message" contentType="text/xml;charset=utf-8"%&gt;<BR>&lt;%<BR>    response.setContentType("text/xml");<BR>    response.setHeader("Cache-Control", "no-cache");<BR>    List list = (List)request.getAttribute("messages");<BR>    <BR>    out.println("&lt;messages&gt;");<BR>    if(list!=null)<BR>    for(int i=0;i&lt;list.size();i++){<BR>        Message objM = (Message)list.get(i);<BR>        out.println("&lt;message&gt;");<BR>        out.println("&lt;id&gt;"+objM.getId()+"&lt;/id&gt;");<BR>        out.println("&lt;title&gt;"+objM.getTitle()+"&lt;/title&gt;");<BR>        out.println("&lt;/message&gt;");<BR>    }<BR>    out.println("&lt;/messages&gt;");<BR> %&gt;<BR>[/code]<BR></P>

野蛮女人 发表于 2007-9-5 18:38

[code]<BR>&lt;html&gt;<BR>&lt;head&gt;<BR>&lt;meta http-equiv="Content-Type" content="text/html; charset=gb2312" /&gt;<BR>&lt;title&gt;右下角弹出提示&lt;/title&gt;<BR>&lt;/head&gt;<BR>&lt;script type="text/javascript" src="ajax.js"&gt;&lt;/script&gt;<BR>&lt;body&gt;<BR>&lt;input type="button" onclick="createXMLHttpRequest()" value="测试请求" /&gt;<BR>&lt;div id="contain"&gt;&lt;/div&gt;<BR>&lt;/body&gt;<BR>&lt;/html&gt;<BR>[/code]<BR>

哭泣的狼 发表于 2007-9-24 13:38

版主,不行呀!!试了一下,不能使用!!!这是我的QQ:460089216  ,我们用QQ聊<BR>

哭泣的狼 发表于 2007-9-24 14:27

版主,你那个【"message.do?cmd=get"】,是不是处理数据的页面,还是什么呀,在ASP.NET应该怎么去理解和写呀,求救!!!!

qqqqqqq333 发表于 2007-12-20 20:49

我调试试下,谢谢版主

beniao 发表于 2008-3-18 01:35

这个太复杂了吧
  有直接的控件可以使用的
详细可以看我的博客里有写文章和示例代码
http://beniao.cnblogs.com

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.