﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-log4deng-文章分类-WEB</title><link>http://www.blogjava.net/qiyadeng/category/3464.html</link><description>if(log.itWillForget()){
&lt;br&gt;&amp;nbsp;&amp;nbsp;
     log.blog("log4deng!"); 
&lt;br&gt;
}&lt;br&gt;
else if(log.isYourExperience){
&lt;br&gt;&amp;nbsp;&amp;nbsp;
     log.blog("log4deng!"); 
&lt;br&gt;
}&lt;br&gt;
......</description><language>zh-cn</language><lastBuildDate>Wed, 28 Feb 2007 05:24:49 GMT</lastBuildDate><pubDate>Wed, 28 Feb 2007 05:24:49 GMT</pubDate><ttl>60</ttl><item><title>Ajax简单实例应用</title><link>http://www.blogjava.net/qiyadeng/articles/19706.html</link><dc:creator>qiyadeng</dc:creator><author>qiyadeng</author><pubDate>Mon, 14 Nov 2005 08:04:00 GMT</pubDate><guid>http://www.blogjava.net/qiyadeng/articles/19706.html</guid><wfw:comment>http://www.blogjava.net/qiyadeng/comments/19706.html</wfw:comment><comments>http://www.blogjava.net/qiyadeng/articles/19706.html#Feedback</comments><slash:comments>15</slash:comments><wfw:commentRss>http://www.blogjava.net/qiyadeng/comments/commentRss/19706.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qiyadeng/services/trackbacks/19706.html</trackback:ping><description><![CDATA[<P>Ajax就是最近被谈论的比较多的东西。其实，在很久以前我在一个项目中就简单地使用过这种技术，最近在很多地方被提起所以我也全面的学习了这方面的东西。<BR>&nbsp;&nbsp;&nbsp;很多概念网上都有，我会在下面的<STRONG>资料</STRONG>中列出Ajax相关的资源。下面我们就通过实例来说明Ajax给我们带来的方便。<BR>我们的例子是通过输入一个城市的区号，页面不刷新就能知道该城市名称。<IMG height=310 alt=zip.bmp src="http://www.blogjava.net/images/blogjava_net/qiyadeng/web/zip.bmp" width=427 border=0><BR><A href="http://qiyadeng.iecn.net/ajax/zip.html">Demo</A><BR>第一步：完成本例用到的xml文件zip.xml.<BR><pre class="code"><BR>&lt;?xml version="1.0" encoding="UTF-8"?&gt;<BR>&lt;root&gt;<BR>&nbsp;&lt;item id="001"&gt;<BR>&nbsp;&nbsp;&lt;zip&gt;021&lt;/zip&gt;<BR>&nbsp;&nbsp;&lt;city&gt;上海&lt;/city&gt;<BR>&nbsp;&lt;/item&gt;</P>
<P>&nbsp;&lt;item id="002"&gt;<BR>&nbsp;&nbsp;&lt;zip&gt;010&lt;/zip&gt;<BR>&nbsp;&nbsp;&lt;city&gt;北京&lt;/city&gt;<BR>&nbsp;&lt;/item&gt;<BR>&nbsp;<BR>&nbsp;&lt;item id="003"&gt;<BR>&nbsp;&nbsp;&lt;zip&gt;020&lt;/zip&gt;<BR>&nbsp;&nbsp;&lt;city&gt;天津&lt;/city&gt;<BR>&nbsp;&lt;/item&gt;<BR>&nbsp;&nbsp;<BR>&lt;/root&gt;</pre><BR>这个例子中我只列出了三个城市，有兴趣的朋友可以添加更多。<BR>接下来我们需要完成zip.html文件：<BR>首先我们需要有XMLHttpRequest对象，下面这段代码就是通用的，每次我们为了得到XMLHttpRequest对象都要这么做，而且一般不需要改变！<pre class="code"><BR>&nbsp;function getHTTPObject(){<BR>&nbsp;&nbsp;var xmlhttp = false;<BR>&nbsp;&nbsp;if(window.XMLHttpRequest){<BR>&nbsp;&nbsp;&nbsp;xmlhttp = new XMLHttpRequest();<BR>&nbsp;&nbsp;&nbsp;if(xmlhttp.overrideMimeType){<BR>&nbsp;&nbsp;&nbsp;&nbsp;xmlhttp.overrideMimeType('text/xml');<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;}<BR>&nbsp;&nbsp;else{<BR>&nbsp;&nbsp;&nbsp;try{<BR>&nbsp;&nbsp;&nbsp;&nbsp;xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");<BR>&nbsp;&nbsp;&nbsp;}catch(e){<BR>&nbsp;&nbsp;&nbsp;&nbsp;try{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");<BR>&nbsp;&nbsp;&nbsp;&nbsp;}catch(E){<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xmlhttp = false;<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;}<BR>&nbsp;&nbsp;return xmlhttp;<BR>&nbsp;}<BR></pre>上面的代码看上去比较复杂，其实就只是创建XMLHttpRequest对象而已，大部分代码是为了考虑浏览器的兼容性而写的，看不懂也没有关系。<BR><BR>然后通过JavaScript的事件触发了XMLHttpRequest对象去和服务器端进行交互。<pre class="code"><BR>&nbsp;function updateCity(){<BR>&nbsp;&nbsp;//var zipValue = document.getElementById("zip").value;<BR>&nbsp;&nbsp;http.open("GET",url,true);<BR>&nbsp;&nbsp;http.onreadystatechange = handleHttpResponse;<BR>&nbsp;&nbsp;http.send(null);<BR>&nbsp;}<BR></pre>上面这段也可以说是通用的过程，因为需要先Open一个请求，然后看它的状态来决定接下来该怎么做。可以看出我们接下来要看 handleHttpResponse。<pre class="code"><BR>&nbsp;function handleHttpResponse(){<BR>&nbsp;&nbsp;if(http.readyState == 4){<BR>&nbsp;&nbsp;&nbsp;if(http.status == 200){<BR>&nbsp;&nbsp;&nbsp;&nbsp;var xmlDocument = http.responseXML;<BR>&nbsp;&nbsp;&nbsp;&nbsp;var city = "未知城市";<BR>&nbsp;&nbsp;&nbsp;&nbsp;var zipval = document.getElementById("zip").value;<BR>&nbsp;&nbsp;&nbsp;&nbsp;var items = xmlDocument.getElementsByTagName('item');<BR>&nbsp;&nbsp;&nbsp;&nbsp;for(var i = 0;i &lt; items.length;i++){<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var item = items[i];<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(item.getElementsByTagName('zip')[0].firstChild.data == zipval){<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;city = item.getElementsByTagName('city')[0].firstChild.data;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.getElementById('city').value=city;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;document.getElementById('city').value=city;<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;else{<BR>&nbsp;&nbsp;&nbsp;&nbsp;alert("你所请求的页面发生异常，可能会影响你浏览该页的信息！");<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;}<BR>&nbsp;}<BR></pre>这段就是我们通过取得的区号代码去遍历XML文件直到找到和我们给出的区号代码相符的，显示出其城市名。关于xml的遍历<STRONG>资料</STRONG>中会提到。<BR><BR>资料：<BR>1.<A HREF="/eamoi/category/4158.html">http://www.blogjava.net/eamoi/category/4158.html</A><BR>2.<A href="http://developer.mozilla.org/en/docs/AJAX">http://developer.mozilla.org/en/docs/AJAX</A><BR>附带zip.xml的完整代码：<pre class="code"><BR><BR>&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"&gt;<BR>&lt;html&gt;<BR>&lt;head&gt;<BR>&lt;title&gt;Zip.html&lt;/title&gt;</P>
<P>&lt;meta http-equiv="content-type" content="text/html; charset=UTF-8"&gt;<BR>&lt;!--&lt;link rel="stylesheet" type="text/css" href="./styles.css"&gt;--&gt;<BR>&lt;SCRIPT language="JavaScript" type="text/javaScript"&gt;<BR>&nbsp;var url = "zip.xml";<BR>&nbsp;<BR>&nbsp;function handleHttpResponse(){<BR>&nbsp;&nbsp;if(http.readyState == 4){<BR>&nbsp;&nbsp;&nbsp;if(http.status == 200){<BR>&nbsp;&nbsp;&nbsp;&nbsp;var xmlDocument = http.responseXML;<BR>&nbsp;&nbsp;&nbsp;&nbsp;var city = "未知城市";<BR>&nbsp;&nbsp;&nbsp;&nbsp;var zipval = document.getElementById("zip").value;<BR>&nbsp;&nbsp;&nbsp;&nbsp;var items = xmlDocument.getElementsByTagName('item');<BR>&nbsp;&nbsp;&nbsp;&nbsp;for(var i = 0;i &lt; items.length;i++){<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var item = items[i];<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(item.getElementsByTagName('zip')[0].firstChild.data == zipval){<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;city = item.getElementsByTagName('city')[0].firstChild.data;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.getElementById('city').value=city;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;document.getElementById('city').value=city;<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;else{<BR>&nbsp;&nbsp;&nbsp;&nbsp;alert("你所请求的页面发生异常，可能会影响你浏览该页的信息！");<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;}<BR>&nbsp;}<BR>&nbsp;function updateCity(){<BR>&nbsp;&nbsp;var zipValue = document.getElementById("zip").value;<BR>&nbsp;&nbsp;http.open("GET",url,true);<BR>&nbsp;&nbsp;http.onreadystatechange = handleHttpResponse;<BR>&nbsp;&nbsp;http.send(null);<BR>&nbsp;}<BR>&nbsp;<BR>&nbsp;//该函数可以创建我们需要的XMLHttpRequest对象<BR>&nbsp;function getHTTPObject(){<BR>&nbsp;&nbsp;var xmlhttp = false;<BR>&nbsp;&nbsp;if(window.XMLHttpRequest){<BR>&nbsp;&nbsp;&nbsp;xmlhttp = new XMLHttpRequest();<BR>&nbsp;&nbsp;&nbsp;if(xmlhttp.overrideMimeType){<BR>&nbsp;&nbsp;&nbsp;&nbsp;xmlhttp.overrideMimeType('text/xml');<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;}<BR>&nbsp;&nbsp;else{<BR>&nbsp;&nbsp;&nbsp;try{<BR>&nbsp;&nbsp;&nbsp;&nbsp;xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");<BR>&nbsp;&nbsp;&nbsp;}catch(e){<BR>&nbsp;&nbsp;&nbsp;&nbsp;try{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");<BR>&nbsp;&nbsp;&nbsp;&nbsp;}catch(E){<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xmlhttp = false;<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;}<BR>&nbsp;&nbsp;return xmlhttp;<BR>&nbsp;}<BR>&nbsp;var http = getHTTPObject();<BR>&lt;/SCRIPT&gt;<BR>&lt;/head&gt;</P>
<P>&lt;body&gt;<BR>&lt;form action="post"&gt;<BR>&nbsp;&lt;p&gt;<BR>&nbsp;区号:<BR>&nbsp;&lt;input type="text" size="6" name="zip" id="zip" onblur="updateCity();"/&gt;<BR>&nbsp;&lt;/p&gt;<BR>&nbsp;城市: <BR>&nbsp;&lt;input type="text" name="city" id="city" /&gt;<BR>&lt;/form&gt;</P>
<P>&lt;/body&gt;<BR>&lt;/html&gt;<BR></P></pre><img src ="http://www.blogjava.net/qiyadeng/aggbug/19706.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qiyadeng/" target="_blank">qiyadeng</a> 2005-11-14 16:04 <a href="http://www.blogjava.net/qiyadeng/articles/19706.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>DWR Sample</title><link>http://www.blogjava.net/qiyadeng/articles/16469.html</link><dc:creator>qiyadeng</dc:creator><author>qiyadeng</author><pubDate>Sun, 23 Oct 2005 03:52:00 GMT</pubDate><guid>http://www.blogjava.net/qiyadeng/articles/16469.html</guid><wfw:comment>http://www.blogjava.net/qiyadeng/comments/16469.html</wfw:comment><comments>http://www.blogjava.net/qiyadeng/articles/16469.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/qiyadeng/comments/commentRss/16469.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qiyadeng/services/trackbacks/16469.html</trackback:ping><description><![CDATA[<P>一个Ajax Project<A href="http://getahead.ltd.uk/dwr/">http://getahead.ltd.uk/dwr/</A>,DWR，就是有点像远程方法调用，但是它的文档里强调过，这个远程方法的调用是安全的，所有安全问题应该不需要担心。<BR><BR>下面测试个简单的例子，算是开始。这个例子是来自它的文档的一篇文章，主要是实现一个类似聊天室的东西，有个输入文本框，还要个显示部分。用户输入的信息点击发送就可以把消息显示到显示区域，当然是不需要刷新的^_^。<BR>1、先到DWR网站去下载个jar包dwr.jar，地址是：<A href="http://getahead.ltd.uk/dwr/download">http://getahead.ltd.uk/dwr/download</A>，并把该包放到自己的webproject的WEB-INF/lib目录下。<BR>2、然后修改配置文件web.xml把加入如下信息：<pre class="code"><BR><BR>&nbsp;&lt;servlet&gt;<BR>&nbsp;&nbsp;&lt;display-name&gt;DWR Servlet&lt;/display-name&gt;<BR>&nbsp;&nbsp;&lt;servlet-name&gt;dwr-invoker&lt;/servlet-name&gt;<BR>&nbsp;&nbsp;&lt;servlet-class&gt;uk.ltd.getahead.dwr.DWRServlet&lt;/servlet-class&gt;<BR>&nbsp;&nbsp;&lt;init-param&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;param-name&gt;debug&lt;/param-name&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;param-value&gt;true&lt;/param-value&gt;<BR>&nbsp;&nbsp;&lt;/init-param&gt;<BR>&nbsp;&lt;/servlet&gt;<BR>&nbsp;<BR>&nbsp;&lt;servlet-mapping&gt;<BR>&nbsp;&nbsp;&lt;servlet-name&gt;dwr-invoker&lt;/servlet-name&gt;<BR>&nbsp;&nbsp;&lt;url-pattern&gt;/dwr/*&lt;/url-pattern&gt;<BR>&nbsp;&lt;/servlet-mapping&gt;</pre></P>
<P>这个应该和我们其他的app配置没什么两样的。<BR>3、配置DWR专门的配置文件dwr.xml(放到和web.xml一个目录下)，这个文件就是部署你可以被调用的远程的方法和类。<BR><pre class="code">&lt;dwr&gt;<BR>&nbsp; &lt;allow&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;create creator="new" javascript="Chat"&gt;<BR>&nbsp;&nbsp;&nbsp; &nbsp;&lt;param name="class" value="com.motel168.chat.Chat"&gt;&lt;/param&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;/create&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;convert converter="bean" match="com.motel168.chat.Message"/&gt;<BR>&nbsp; &lt;/allow&gt;<BR>&lt;/dwr&gt;</pre><BR><BR>这个文件描述的服务器端的类Chat和JavaBean,Message。<BR><BR>4、对应的服务器类文件：<BR>Chat.java<BR><pre class="code">package com.motel168.chat;</P>
<P>import java.util.LinkedList;<BR>import java.util.List;</P>
<P>public class Chat {<BR>&nbsp;static LinkedList messages = new LinkedList();<BR>&nbsp;public List addMessage(String text){<BR>&nbsp;&nbsp;if(text != null &amp;&amp; text.trim().length()&gt;0){<BR>&nbsp;&nbsp;&nbsp;messages.addFirst(new Message(text));<BR>&nbsp;&nbsp;&nbsp;while(messages.size() &gt; 10){<BR>&nbsp;&nbsp;&nbsp;&nbsp;messages.removeLast();<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;}<BR>&nbsp;&nbsp;return messages;<BR>&nbsp;}<BR>&nbsp;public List getMessages(){<BR>&nbsp;&nbsp;return messages;<BR>&nbsp;}</pre><BR>}<BR>Message.java<BR><pre class="code">package com.motel168.chat;</P>
<P>public class Message {<BR>&nbsp;long id = System.currentTimeMillis();<BR>&nbsp;String text;<BR>&nbsp;<BR>&nbsp;public Message(String newtext){<BR>&nbsp;&nbsp;text = newtext;<BR>&nbsp;&nbsp;if(text.length()&gt;256){<BR>&nbsp;&nbsp;&nbsp;text = text.substring(0,256);<BR>&nbsp;&nbsp;}<BR>&nbsp;&nbsp;text = text.replace('&lt;','[');<BR>&nbsp;&nbsp;text = text.replace('&amp;','_');<BR>&nbsp;}<BR>&nbsp;public long getId(){<BR>&nbsp;&nbsp;return id;<BR>&nbsp;}<BR>&nbsp;public String getText(){<BR>&nbsp;&nbsp;return text;<BR>&nbsp;}<BR>}<BR></pre>5、在前端页面调用：<BR><BR><pre class="code">&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"&gt;<BR>&lt;html&gt;<BR>&lt;script type='text/javascript' src='/DWR/dwr/interface/Chat.js'&gt;&lt;/script&gt;<BR>&lt;script type='text/javascript' src='/DWR/dwr/engine.js'&gt;&lt;/script&gt;<BR>&lt;script type='text/javascript' src='/DWR/dwr/util.js'&gt;&lt;/script&gt;</P>
<P>&nbsp; &lt;head&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;title&gt;chat.html&lt;/title&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;meta http-equiv="content-type" content="text/html; charset=UTF-8"&gt;<BR>&nbsp; &lt;/head&gt;<BR>&nbsp; <BR>&nbsp; &lt;body&gt;<BR>&nbsp;&lt;P&gt;聊天记录：&lt;/P&gt;<BR>&nbsp;&lt;DIV id="chatlog"&gt;&lt;/DIV&gt;<BR>&nbsp;&lt;p&gt;<BR>&nbsp;请输入信息：&lt;INPUT id="text"/&gt;<BR>&nbsp;&lt;INPUT type="button" value="发言" onclick="sendMessage()"/&gt;<BR>&nbsp; &lt;/body&gt;<BR>&lt;/html&gt;<BR>&lt;script language="javascript"&gt;<BR>&nbsp;function sendMessage(){<BR>&nbsp;&nbsp;var text = DWRUtil.getValue("text");<BR>&nbsp;&nbsp;DWRUtil.setValue("text","");<BR>&nbsp;&nbsp;Chat.addMessage(gotMessages,text);<BR>&nbsp;}<BR>&nbsp;function gotMessages(messages)<BR>&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp; var chatlog = "";<BR>&nbsp;&nbsp;&nbsp;&nbsp; for (var data in messages)<BR>&nbsp;&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; chatlog = "&lt;div&gt;" + messages[data].text +<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "&lt;/div&gt;" + chatlog;<BR>&nbsp; &nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp; DWRUtil.setValue("chatlog", chatlog);<BR>&nbsp;}<BR>&lt;/script&gt;</pre></P>
<P>&lt;script type='text/javascript' src='/DWR/dwr/interface/Chat.js'&gt;&lt;/script&gt; 是动态产生的js文件，另外两个util.js,engine.js是两个javascript库文件。<BR><BR>后面有个DWRUtil类可以参考对应的文档。<BR>最后应该是类似下面这个效果：<BR><IMG height=300 alt=dwrsample.bmp src="http://www.blogjava.net/images/blogjava_net/qiyadeng/web/dwrsample.bmp" width=300 border=0><BR></P><img src ="http://www.blogjava.net/qiyadeng/aggbug/16469.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qiyadeng/" target="_blank">qiyadeng</a> 2005-10-23 11:52 <a href="http://www.blogjava.net/qiyadeng/articles/16469.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>some AJAX Project</title><link>http://www.blogjava.net/qiyadeng/articles/16449.html</link><dc:creator>qiyadeng</dc:creator><author>qiyadeng</author><pubDate>Sat, 22 Oct 2005 14:32:00 GMT</pubDate><guid>http://www.blogjava.net/qiyadeng/articles/16449.html</guid><wfw:comment>http://www.blogjava.net/qiyadeng/comments/16449.html</wfw:comment><comments>http://www.blogjava.net/qiyadeng/articles/16449.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/qiyadeng/comments/commentRss/16449.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qiyadeng/services/trackbacks/16449.html</trackback:ping><description><![CDATA[JavaScriptTemplates：<a href="http://trimpath.com/project/wiki/JavaScriptTemplates"><br>http://trimpath.com/project/wiki/JavaScriptTemplates</a><br><br>Ajax pages：<br><a href="http://ajax-pages.sourceforge.net/">http://ajax-pages.sourceforge.net/</a><br><br>Mochikit：<br><a href="http://mochikit.com/">http://mochikit.com/</a><br><br>DWR<br><a href="http://getahead.ltd.uk/dwr/">http://getahead.ltd.uk/dwr/</a><br>
<br>
Ajaxanywhere<br>

http://ajaxanywhere.sourceforge.net<br>
<img src ="http://www.blogjava.net/qiyadeng/aggbug/16449.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qiyadeng/" target="_blank">qiyadeng</a> 2005-10-22 22:32 <a href="http://www.blogjava.net/qiyadeng/articles/16449.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>javascript自动关闭浏览器</title><link>http://www.blogjava.net/qiyadeng/articles/14142.html</link><dc:creator>qiyadeng</dc:creator><author>qiyadeng</author><pubDate>Mon, 26 Sep 2005 12:57:00 GMT</pubDate><guid>http://www.blogjava.net/qiyadeng/articles/14142.html</guid><wfw:comment>http://www.blogjava.net/qiyadeng/comments/14142.html</wfw:comment><comments>http://www.blogjava.net/qiyadeng/articles/14142.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/qiyadeng/comments/commentRss/14142.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qiyadeng/services/trackbacks/14142.html</trackback:ping><description><![CDATA[<br>
<p></p><p>今天碰到个简单问题，但是找了半天资料才算解决，自动关闭浏览器一直有对话框弹出。看了网上也有不少人有这个困惑，所以整理一下：</p><p></p><pre class="code">&lt;script language=&quot;javascript&quot;&gt;<br/>function countdown()<br/>{<br/>&nbsp;window.opener=null;<font color="#339966">//没有对话框，这句不可缺少</font><br/>&nbsp;window.close();<br/>&nbsp;}<br/>setTimeout(&quot;countdown()&quot;,3000);<br/>&lt;/script&gt;</pre><p></p><p><font color="#000000">程序很简单，就是3秒钟自动关闭浏览器，不用解释^_^！</font></p><img src ="http://www.blogjava.net/qiyadeng/aggbug/14142.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qiyadeng/" target="_blank">qiyadeng</a> 2005-09-26 20:57 <a href="http://www.blogjava.net/qiyadeng/articles/14142.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>