﻿<?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-&lt;h1&gt;&lt;font color="red" size="36"&gt;︻┳═一Java&lt;/font&gt;&lt;/h1&gt;-文章分类-JavaScript</title><link>http://www.blogjava.net/rain1102/category/14845.html</link><description>&lt;b&gt;&lt;font color="#3C1435"&gt;08年奋斗目标：&lt;/font&gt;&lt;font color="maroon"&gt;赚钱买个房子！&lt;/font&gt;&lt;/b&gt;</description><language>zh-cn</language><lastBuildDate>Wed, 19 Mar 2008 12:33:14 GMT</lastBuildDate><pubDate>Wed, 19 Mar 2008 12:33:14 GMT</pubDate><ttl>60</ttl><item><title>ajax jsp 无刷新上传文件</title><link>http://www.blogjava.net/rain1102/articles/187170.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Wed, 19 Mar 2008 02:23:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/articles/187170.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/187170.html</wfw:comment><comments>http://www.blogjava.net/rain1102/articles/187170.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/187170.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/187170.html</trackback:ping><description><![CDATA[首先要说的就是 <span class="hilite1"><span class="hilite1">ajax</span></span> 是无法实现上传文件的，可以想一下<span class="hilite1"><span class="hilite1">ajax</span></span>与后台通信都是通过传递字符串，怎么能传递文件呢？其实出于安全考虑js是不能操作文件的，所以就不要再说用<span class="hilite1"><span class="hilite1">ajax</span></span>来实现文件的上传了，这是不可能的。<br />
&nbsp;&nbsp;&nbsp; 而本文实现的<span class="hilite2"><span class="hilite2">文件上传</span></span>也是无页面刷新的，可以说是一种"类似<span class="hilite1"><span class="hilite1">AJAX</span></span>"方法。<br />
&nbsp;&nbsp;&nbsp; 开始之前先说两句无关的，其实在<span class="hilite1"><span class="hilite1">ajax</span></span>出现之前，web应用也可以是无刷新的，那时大多通过IFrame来做到这一点。当然<span class="hilite1"><span class="hilite1">Ajax</span></span>出现之后，人们一窝蜂地投奔<span class="hilite1"><span class="hilite1">Ajax</span></span> 的阵营了，iFrame 就乏人问津了。但是用iFrame来实现无刷新上传文件确实一个很好的选择。ps：<span class="hilite1"><span class="hilite1">Ajax</span></span>技术基本上可以说是由google公司带起来的，但少Gmail中上传文件用的还是 IFrame，所以说使用IFrame来上传文件是最好的选择。<br />
&nbsp;&nbsp;&nbsp; 我在这里这里用的技术是jsp，其实asp，php等也是一样可以这么实现的<br />
&nbsp;&nbsp;&nbsp; 一共两个文件就可实现：index.html 和 upload.jsp<br />
--index.html<span>
<div class="dp-highlighter">
<ol class="dp-j">
    <li class="alt"><span><span>＜html＞ &nbsp;&nbsp;</span></span>
    <li class=""><span>＜body＞ &nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;</span>
    <li class=""><span>＜form&nbsp;action=</span><span class="string">"upload.jsp"</span><span>&nbsp;id=</span><span class="string">"form1"</span><span>&nbsp;name=</span><span class="string">"form1"</span><span>&nbsp;encType=</span><span class="string">"multipart/form-data"</span><span>&nbsp;&nbsp;method=</span><span class="string">"post"</span><span>&nbsp;target=</span><span class="string">"hidden_frame"</span><span>&nbsp;＞ &nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;＜input&nbsp;type=</span><span class="string">"file"</span><span>&nbsp;id=</span><span class="string">"file"</span><span>&nbsp;name=</span><span class="string">"file"</span><span>&nbsp;style=</span><span class="string">"width:450"</span><span>＞ &nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;＜INPUT&nbsp;type=</span><span class="string">"submit"</span><span>&nbsp;value=</span><span class="string">"上传文件"</span><span>＞＜span&nbsp;id=</span><span class="string">"msg"</span><span>＞＜/span＞ &nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;＜br＞ &nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;＜font&nbsp;color=</span><span class="string">"red"</span><span>＞支持JPG,JPEG,GIF,BMP,SWF,RMVB,RM,AVI文件的上传＜/font＞&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;＜iframe&nbsp;name='hidden_frame'&nbsp;id=</span><span class="string">"hidden_frame"</span><span>&nbsp;style='display:none'＞＜/iframe＞ &nbsp;&nbsp;</span>
    <li class=""><span>＜/form＞ &nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;</span>
    <li class=""><span>＜/body＞ &nbsp;&nbsp;</span>
    <li class="alt"><span>＜/html＞ &nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;</span>
    <li class="alt"><span>＜script&nbsp;type=</span><span class="string">"text/javascript"</span><span>＞ &nbsp;&nbsp;</span>
    <li class=""><span>function&nbsp;callback(msg) &nbsp;&nbsp;</span>
    <li class="alt"><span>{ &nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;document.getElementById(</span><span class="string">"file"</span><span>).outerHTML&nbsp;=&nbsp;document.getElementById(</span><span class="string">"file"</span><span>).outerHTML; &nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;document.getElementById(</span><span class="string">"msg"</span><span>).innerHTML&nbsp;=&nbsp;</span><span class="string">"＜font&nbsp;color=red＞"</span><span>+msg+</span><span class="string">"＜/font＞"</span><span>; &nbsp;&nbsp;</span>
    <li class=""><span>} &nbsp;&nbsp;</span>
    <li class="alt"><span>＜/script＞&nbsp;&nbsp;</span> </li>
</ol>
</div>
<br />
<br />
<font color="#000000">&nbsp;index.html 中主要要做的就是写一个 form 和 iframe ，并把 form 的 target 设为 iframe 的名字，注意要把 iframe 设为不可见，其他的都是正常的<span class="hilite2"><span class="hilite2">文件上传</span></span>的写法，这样刷新的页面就是这个隐藏的 Iframe ，而在 index.html 中是不会有页面刷新的，js的 callback 方法是回调方法。用于清空<span class="hilite2"><span class="hilite2">文件上传</span></span>框和显示后台信息，注意清空<span class="hilite2"><span class="hilite2">文件上传</span></span>框的方法，和普通方法有点不一样。</font><br />
<br />
--upload.jsp<br />
<div class="dp-highlighter">
<ol class="dp-j">
    <li class="alt"><span><span>＜%@&nbsp;page&nbsp;language=</span><span class="string">"<a title="Java爱好者" href="http://www.blogjava.net/rain1102" >Java</a>"</span><span>&nbsp;contentType=</span><span class="string">"text/html;&nbsp;charset=gb2312"</span><span>&nbsp;%＞ &nbsp;&nbsp;</span></span>
    <li class=""><span>＜%@&nbsp;page&nbsp;</span><span class="keyword">import</span><span>=</span><span class="string">"com.jspsmart.upload.SmartUpload"</span><span>%＞ &nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;</span>
    <li class=""><span>＜% &nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//新建一个SmartUpload对象 </span><span>&nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;SmartUpload&nbsp;su&nbsp;=&nbsp;</span><span class="keyword">new</span><span>&nbsp;SmartUpload(); &nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//上传初始化 </span><span>&nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;su.initialize(pageContext); &nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;设定上传限制 </span><span>&nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//1.限制每个上传文件的最大长度。 </span><span>&nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;su.setMaxFileSize(</span><span class="number">10000000</span><span>); &nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//2.限制总上传数据的长度。 </span><span>&nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;su.setTotalMaxFileSize(</span><span class="number">20000000</span><span>); &nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//3.设定允许上传的文件（通过扩展名限制）,仅允许doc,txt文件。 </span><span>&nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;su.setAllowedFilesList(</span><span class="string">"doc,txt,jpg,rar,mid,waw,mp3,gif"</span><span>); &nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">boolean</span><span>&nbsp;sign&nbsp;=&nbsp;</span><span class="keyword">true</span><span>; &nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//4.设定禁止上传的文件（通过扩展名限制）,禁止上传带有exe,bat,jsp,htm,html扩展名的文件和没有扩展名的文件。 </span><span>&nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">try</span><span>&nbsp;{ &nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;su.setDeniedFilesList(</span><span class="string">"exe,bat,jsp,htm,html"</span><span>); &nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//上传文件 </span><span>&nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;su.upload(); &nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//将上传文件保存到指定目录 </span><span>&nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;su.save(</span><span class="string">"c:\\"); </span>&nbsp;
    <li class="alt"><span>&nbsp;</span>
    <li class=""><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;catch&nbsp;(Exception&nbsp;e)&nbsp;{ </span>&nbsp;</span>
    <li class="alt"><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace(); </span>&nbsp;</span>
    <li class=""><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sign&nbsp;=&nbsp;false; </span>&nbsp;</span>
    <li class="alt"><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;} </span>&nbsp;</span>
    <li class=""><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;if(sign==true) </span>&nbsp;</span>
    <li class="alt"><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;{ </span>&nbsp;</span>
    <li class=""><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.println("</span><span>＜script＞parent.callback('upload&nbsp;file&nbsp;success')＜/script＞</span><span class="string">"); </span>&nbsp;</span>
    <li class="alt"><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;}else </span>&nbsp;</span>
    <li class=""><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;{ </span>&nbsp;</span>
    <li class="alt"><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.println("</span><span>＜script＞parent.callback('upload&nbsp;file&nbsp;error')＜/script＞"); &nbsp;&nbsp;</span></span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span>
    <li class="alt"><span>%＞ &nbsp;&nbsp;</span> </li>
</ol>
</div>
<br />
<br />
<br />
<br />
<font color="#000000">upload.jsp 中只要注意最后输出的格式就可以了。其实原理就是输出一段js代码到 iframe 中，然后在iframe中来控制它的父页面。<br />
<br />
&nbsp;&nbsp;&nbsp; OK，至此一个无刷新的页面上传组件就做好了，</font><font color="#800080"><font color="#000000">不要忘了在 WEB-INF/lib 下加上必须的 jspSmartUpload.jar 包</font></font><font color="#800080"><font color="#000000">。<br />
&nbsp;&nbsp;&nbsp; 需要说明的是使用Iframe来上传，状态栏还是会有刷新的，因为iframe 中的页面刷新了嘛，但是外部页面，就是你所看到的页面是没有刷新的，所以也可以说是类似<span class="hilite1"><span class="hilite1">Ajax</span></span>上传。</font></font></span><img src ="http://www.blogjava.net/rain1102/aggbug/187170.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2008-03-19 10:23 <a href="http://www.blogjava.net/rain1102/articles/187170.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ajax.Updater </title><link>http://www.blogjava.net/rain1102/articles/187055.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Tue, 18 Mar 2008 09:49:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/articles/187055.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/187055.html</wfw:comment><comments>http://www.blogjava.net/rain1102/articles/187055.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/187055.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/187055.html</trackback:ping><description><![CDATA[<h3>Syntax<code><br />
&nbsp; new Ajax.Updater(container, url, options);<br />
// make a HTTP request to the specified URL and update the 'container' element.<br />
</code></h3>
<p>Note: to only update a div on success, you may optionally substitute a property list for a simply element id (ie {success:&#8217;div_name&#8217;} instead of &#8216;div_name&#8217;)</p>
<h3>Options</h3>
<table>
    <tbody>
        <tr>
            <td>Option</td>
            <td>Default value</td>
            <td>Description</td>
        </tr>
        <tr>
            <td>asynchronous</td>
            <td>true</td>
            <td>Type of request</td>
        </tr>
        <tr>
            <td>evalScripts</td>
            <td>false</td>
            <td>When set as &#8220;true&#8221;, scripts in requested url are evaluated</td>
        </tr>
        <tr>
            <td>method</td>
            <td>&#8216;post&#8217;</td>
            <td>Lets you decide whether to use Get or Post for the request to the server</td>
        </tr>
        <tr>
            <td>contentType</td>
            <td>&#8216;application/x-www-form-urlencoded&#8217;</td>
            <td>Allows you to set the content-type sent to the server</td>
        </tr>
        <tr>
            <td>encoding</td>
            <td>&#8216;UTF-8&#8217;</td>
            <td>Allows you to determine the encoding type information given to the server</td>
        </tr>
        <tr>
            <td>parameters</td>
            <td>&#8217;&#8217;</td>
            <td>Allows you to attach parameters to your <span class="caps">AJAX</span> request. Most common: parameters:Form.serialize(this)</td>
        </tr>
        <tr>
            <td>postBody</td>
            <td>&#8217;&#8217;</td>
            <td>Specify data to post. Something like: postBody:&#8217;thisvar=true&amp;thatvar=Howdy&#8217; How does this differ from parameters?</td>
        </tr>
        <tr>
            <td>username</td>
            <td>&#8217;&#8217;</td>
        </tr>
        <tr>
            <td>password</td>
            <td>&#8217;&#8217;</td>
        </tr>
        <tr>
            <td>requestHeaders</td>
            <td>&#8217;&#8217;</td>
            <td>Allows you to override the headers, see the <a href="http://www.prototypejs.org/api/ajax/options">Prototype <span class="caps">AJAX</span> options</a> for details</td>
        </tr>
        <tr>
            <td>onComplete</td>
            <td>&#8217;&#8217;</td>
            <td>Function to call on completion of request</td>
        </tr>
        <tr>
            <td>onSuccess</td>
            <td>&#8217;&#8217;</td>
            <td>Function to call on successful completion of request</td>
        </tr>
        <tr>
            <td>onFailure</td>
            <td>&#8217;&#8217;</td>
            <td>Function to call on failed request</td>
        </tr>
        <tr>
            <td>onException</td>
            <td>&#8217;&#8217;</td>
            <td>Function to call on failed request (e.g. attempted cross-site request)</td>
        </tr>
        <tr>
            <td>on + Status Code</td>
            <td>&#8217;&#8217;</td>
            <td>on404 etc. raise an event when given status code is encountered.</td>
        </tr>
        <tr>
            <td>insertion</td>
            <td>None</td>
            <td>Instead of inserting the response in the existing content (possibly overwriting it) you can pass a valid Insertion object, such as Insertion.Top, Insertion.Bottom, Insertion.Before or Insertion.After.</td>
        </tr>
    </tbody>
</table>
<p>Hint: If you have set evalScripts:true the script you call (the url parameter) must return a header of &#8216;Content-Type: text/javascript&#8217; else the browser will not execute it.</p><img src ="http://www.blogjava.net/rain1102/aggbug/187055.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2008-03-18 17:49 <a href="http://www.blogjava.net/rain1102/articles/187055.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在Struts 2中使用JSON Ajax支持</title><link>http://www.blogjava.net/rain1102/articles/180907.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Wed, 20 Feb 2008 09:02:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/articles/180907.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/180907.html</wfw:comment><comments>http://www.blogjava.net/rain1102/articles/180907.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/180907.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/180907.html</trackback:ping><description><![CDATA[JSON插件提供了一种名为json的ResultType，一旦为某个Action指定了一个类型为json的Result，则该Result无需映射到任何视图资源。因为JSON插件会负责将Action里的状态信息序列化成JSON格式的数据，并将该数据返回给客户端页面的JavaScript。
<p>　　简单地说，JSON插件允许我们在JavaScript中异步调用Action，而且Action不再需要使用视图资源来显示该Action里的状态信息，而是由JSON插件负责将Action里的状态信息返回给调用页面——通过这种方式，就可以完成Ajax交互。</p>
<p>　　Struts2提供了一种可插拔方式来管理插件，安装Struts2的JSON插件与安装普通插件并没有太大的区别，一样只需要将Struts2插件的JAR文件复制到Web应用的WEB-INF/lib路径下即可。</p>
<p>　　安装JSON插件按如下步骤进行：</p>
<p>　　(1)登陆http://code.google.com/p/jsonplugin/downloads/list站点，下载Struts2的JSON插件的最新版本，当前最新版本是0.7，我们可以下载该版本的JSON插件。</p>
<p>　　(2)将下载到的jsonplugin-0.7.jar文件复制到Web应用的WEB-INF路径下，即可完成JSON插件的安装。</p>
<p>　　<strong>实现Actio逻辑</strong></p>
<p>　　假设wo,en输入页面中包含了三个表单域，这三个表单域对于三个请求参数，因此应该使用Action来封装这三个请求参数。三个表单域的name分别为field1、field2和field3。</p>
<p>　　处理该请求的Action类代码如下：　　
<table style="border-right: #cccccc 1px dotted; table-layout: fixed; border-top: #cccccc 1px dotted; border-left: #cccccc 1px dotted; border-bottom: #cccccc 1px dotted" cellspacing="0" cellpadding="6" width="95%" align="center" border="0">
    <tbody>
        <tr>
            <td style="word-wrap: break-word" bgcolor="#f3f3f3">public&nbsp;class&nbsp;JSONExample <br />
            　　{ <br />
            　　//封装请求参数的三个属性 <br />
            　　private&nbsp;String&nbsp;field1; <br />
            　　private&nbsp;transient&nbsp;String&nbsp;field2; <br />
            　　private&nbsp;String&nbsp;field3; <br />
            　　//封装处理结果的属性 <br />
            　　private&nbsp;int[]&nbsp;ints&nbsp;=&nbsp;{10,&nbsp;20}; <br />
            　　private&nbsp;Map&nbsp;map&nbsp;=&nbsp;new&nbsp;HashMap(); <br />
            　　private&nbsp;String&nbsp;customName&nbsp;=&nbsp;"custom"; <br />
            　　//三个请求参数对应的setter和getter方法 <br />
            　　public&nbsp;String&nbsp;getField1() <br />
            　　{ <br />
            　　return&nbsp;field1; <br />
            　　} <br />
            　　public&nbsp;void&nbsp;setField1(String&nbsp;field1) <br />
            　　{ <br />
            　　this.field1&nbsp;=&nbsp;field1; <br />
            　　} <br />
            　　//此处省略了field1和field2两个字段的setter和getter方法 <br />
            　　... <br />
            　　//封装处理结果的属性的setter和getter方法 <br />
            　　public&nbsp;int[]&nbsp;getInts() <br />
            　　{ <br />
            　　return&nbsp;ints; <br />
            　　} <br />
            　　public&nbsp;void&nbsp;setInts(int[]&nbsp;ints) <br />
            　　{ <br />
            　　this.ints&nbsp;=&nbsp;ints; <br />
            　　} <br />
            　　public&nbsp;Map&nbsp;getMap() <br />
            　　{ <br />
            　　return&nbsp;map; <br />
            　　} <br />
            　　public&nbsp;void&nbsp;setMap(Map&nbsp;map) <br />
            　　{ <br />
            　　this.map&nbsp;=&nbsp;map; <br />
            　　} <br />
            　　//使用注释语法来改变该属性序列化后的属性名 <br />
            　　@JSON(name="newName") <br />
            　　public&nbsp;String&nbsp;getCustomName() <br />
            　　{ <br />
            　　return&nbsp;this.customName; <br />
            　　} <br />
            　　public&nbsp;String&nbsp;execute() <br />
            　　{ <br />
            　　map.put("name",&nbsp;"yeeku"); <br />
            　　return&nbsp;Action.SUCCESS; <br />
            　　} <br />
            　　}</td>
        </tr>
    </tbody>
</table>
　　在上面代码中，使用了JSON注释，注释时指定了name域，name域指定Action属性被序列化成JSON对象的属性名。除此之外，JSON注释还支持如下几个域：</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; serialize：设置是否序列化该属性</p>
<p>　　deserialize：设置是否反序列化该属性。</p>
<p>　　format：设置用于格式化输出、解析日期表单域的格式。例如"yyyy-MM-dd'T'HH:mm:ss"。</p>
<p>　　配置该Action与配置普通Action存在小小的区别，应该为该Action配置类型为json的Result。而这个Result无需配置任何视图资源。</p>
<p>　　配置该Action的struts.xml文件代码如下：　
<table style="border-right: #cccccc 1px dotted; table-layout: fixed; border-top: #cccccc 1px dotted; border-left: #cccccc 1px dotted; border-bottom: #cccccc 1px dotted" cellspacing="0" cellpadding="6" width="95%" align="center" border="0">
    <tbody>
        <tr>
            <td style="word-wrap: break-word" bgcolor="#f3f3f3">＜?xml&nbsp;version="1.0"&nbsp;encoding="GBK"?＞ <br />
            ＜!DOCTYPE&nbsp;struts&nbsp;PUBLIC <br />
            "-//Apache&nbsp;Software&nbsp;Foundation//DTD&nbsp;Struts&nbsp;Configuration&nbsp;2.0//EN" <br />
            "http://struts.apache.org/dtds/struts-2.0.dtd"＞ <br />
            ＜struts＞ <br />
            ＜constant&nbsp;name="struts.i18n.encoding"&nbsp;value="UTF-8"/＞ <br />
            ＜package&nbsp;name="example"&nbsp;extends="json-default"＞ <br />
            ＜action&nbsp;name="JSONExample"&nbsp;class="lee.JSONExample"＞ <br />
            ＜result&nbsp;type="json"/＞ <br />
            ＜/action＞ <br />
            ＜/package＞ <br />
            ＜/struts＞　　</td>
        </tr>
    </tbody>
</table>
　　在上面配置文件中有两个值得注意的地方：<br />
<br />
　　第一个地方是配置struts.i18n.encoding常量时，不再是使用GBK编码，而是UTF-8编码，这是因为Ajax的POST请求都是以UTF-8的方式进行编码的。<br />
<br />
　　第二个地方是配置包时，自己的包继承了json-default包，而不再继承默认的default包，这是因为只有在该包下才有json类型的Result。</p><img src ="http://www.blogjava.net/rain1102/aggbug/180907.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2008-02-20 17:02 <a href="http://www.blogjava.net/rain1102/articles/180907.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>对多列表格多种数据类型进行排序 </title><link>http://www.blogjava.net/rain1102/articles/177464.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Thu, 24 Jan 2008 05:08:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/articles/177464.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/177464.html</wfw:comment><comments>http://www.blogjava.net/rain1102/articles/177464.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/177464.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/177464.html</trackback:ping><description><![CDATA[<p>&lt;html&gt;<br />
&nbsp; &lt;head&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;title&gt;Sort.html&lt;/title&gt;<br />
&nbsp;&lt;script type="text/javascript"&gt;<br />
&nbsp;&nbsp;function convert(sValue, sDataType) {<br />
&nbsp;&nbsp;&nbsp;switch (sDataType) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;case "int":<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return parseInt(sValue);<br />
&nbsp;&nbsp;&nbsp;&nbsp;case "float":<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return parseFloat(sValue);<br />
&nbsp;&nbsp;&nbsp;&nbsp;case "date":<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return new Date(Date.parse(sValue));<br />
&nbsp;&nbsp;&nbsp;&nbsp;default:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return sValue.toString();<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;}<br />
&nbsp;<br />
&nbsp;&nbsp;function generateCompareTRs(iCol, sDataType) {<br />
&nbsp;&nbsp;&nbsp;return function compareTRs(oTR1, oTR2) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;var sValue1 = convert(oTR1.cells[iCol].firstChild.nodeValue, sDataType);<br />
&nbsp;&nbsp;&nbsp;&nbsp;var sValue2 = convert(oTR2.cells[iCol].firstChild.nodeValue, sDataType);<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;//这里就不可以使用localeCompare方法了，因为数字和日期不支持它，也不可以用"=="，因为日期是对象。<br />
&nbsp;&nbsp;&nbsp;&nbsp;if (sValue1 &lt; sValue2) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return -1;<br />
&nbsp;&nbsp;&nbsp;&nbsp;} else if (sValue1 &gt; sValue2) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return 1;<br />
&nbsp;&nbsp;&nbsp;&nbsp;} else {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return 0;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;function sortTable(sTableID, iCol, sDataType) {<br />
&nbsp;&nbsp;&nbsp;var oTable = document.getElementById(sTableID);<br />
&nbsp;&nbsp;&nbsp;var oTBody = oTable.tBodies[0];<br />
&nbsp;&nbsp;&nbsp;var colDataRows = oTBody.rows;<br />
&nbsp;&nbsp;&nbsp;var aTRs = new Array;<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;for (var i = 0; i &lt; colDataRows.length; i++) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;aTRs.push(colDataRows[i]);<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;if (oTable.sortCol == iCol){<br />
&nbsp;&nbsp;&nbsp;&nbsp;aTRs.reverse();<br />
&nbsp;&nbsp;&nbsp;} else {<br />
&nbsp;&nbsp;&nbsp;&nbsp;aTRs.sort(generateCompareTRs(iCol, sDataType));<br />
&nbsp;&nbsp;&nbsp;}</p>
<p>&nbsp;&nbsp;&nbsp;var oFragment = document.createDocumentFragment();<br />
&nbsp;&nbsp;&nbsp;for (var i = 0; i &lt; aTRs.length; i++) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;oFragment.appendChild(aTRs[i]);<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;oTBody.appendChild(oFragment);<br />
&nbsp;&nbsp;&nbsp;oTable.sortCol = iCol;<br />
&nbsp;&nbsp;}<br />
&nbsp;&lt;/script&gt;<br />
&nbsp; &lt;/head&gt;<br />
&nbsp; <br />
&nbsp; &lt;body&gt;<br />
&nbsp;&nbsp;&nbsp; This is my HTML page. &lt;br&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;table border="1" id="tblSort"&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&lt;thead&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&lt;th onclick="sortTable('tblSort', 0)" style="cursor:pointer"&gt;Last Name&lt;/th&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&lt;th onclick="sortTable('tblSort', 1)" style="cursor:pointer"&gt;First Name&lt;/th&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&lt;th onclick="sortTable('tblSort', 2, 'date')" style="cursor:pointer"&gt;Birthday&lt;/th&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&lt;th onclick="sortTable('tblSort', 3, 'int')" style="cursor:pointer"&gt;Age&lt;/th&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&lt;/tr&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&lt;/thead&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&lt;tbody&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&lt;td&gt;Smith&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&lt;td&gt;John&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&lt;td&gt;7/12/1978&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&lt;td&gt;31&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&lt;/tr&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&lt;td&gt;Johnson&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&lt;td&gt;Betty&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&lt;td&gt;10/15/1977&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&lt;td&gt;32&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&lt;/tr&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&lt;td&gt;Henderson&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&lt;td&gt;Nathan&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&lt;td&gt;02/22/1982&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&lt;td&gt;27&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&lt;/tr&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&lt;td&gt;Williams&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&lt;td&gt;James&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&lt;td&gt;8/19/1980&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&lt;td&gt;29&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&lt;/tr&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&lt;td&gt;Gilliams&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&lt;td&gt;Michael&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&lt;td&gt;5/13/1972&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&lt;td&gt;39&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&lt;/tr&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&lt;td&gt;Walker&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&lt;td&gt;Matthew&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&lt;td&gt;10/19/1981&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&lt;td&gt;28&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&lt;/tr&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&lt;/tbody&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/table&gt;<br />
&nbsp; &lt;/body&gt;<br />
&lt;/html&gt;<br />
</p><img src ="http://www.blogjava.net/rain1102/aggbug/177464.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2008-01-24 13:08 <a href="http://www.blogjava.net/rain1102/articles/177464.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>对多列表格进行排序</title><link>http://www.blogjava.net/rain1102/articles/177457.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Thu, 24 Jan 2008 04:24:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/articles/177457.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/177457.html</wfw:comment><comments>http://www.blogjava.net/rain1102/articles/177457.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/177457.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/177457.html</trackback:ping><description><![CDATA[&lt;html&gt;<br />
&nbsp; &lt;head&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;title&gt;Sort.html&lt;/title&gt;<br />
&nbsp;&lt;script type="text/javascript"&gt;<br />
&nbsp;&nbsp;function generateCompareTRs(iCol) {<br />
&nbsp;&nbsp;&nbsp;return function compareTRs(oTR1, oTR2) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;var sValue1 = oTR1.cells[iCol].firstChild.nodeValue;<br />
&nbsp;&nbsp;&nbsp;&nbsp;var sValue2 = oTR2.cells[iCol].firstChild.nodeValue;<br />
&nbsp;&nbsp;&nbsp;&nbsp;return sValue1.localeCompare(sValue2);<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;function sortTable(sTableID, iCol) {<br />
&nbsp;&nbsp;&nbsp;var oTable = document.getElementById(sTableID);<br />
&nbsp;&nbsp;&nbsp;var oTBody = oTable.tBodies[0];<br />
&nbsp;&nbsp;&nbsp;var colDataRows = oTBody.rows;<br />
&nbsp;&nbsp;&nbsp;var aTRs = new Array;<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;for (var i = 0; i &lt; colDataRows.length; i++) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;aTRs.push(colDataRows[i]);<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;aTRs.sort(generateCompareTRs(iCol));<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;var oFragment = document.createDocumentFragment();<br />
&nbsp;&nbsp;&nbsp;for (var i = 0; i &lt; aTRs.length; i++) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;oFragment.appendChild(aTRs[i]);<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;oTBody.appendChild(oFragment);<br />
&nbsp;&nbsp;}<br />
&nbsp;&lt;/script&gt;<br />
&nbsp; &lt;/head&gt;<br />
&nbsp; <br />
&nbsp; &lt;body&gt;<br />
&nbsp;&nbsp;&nbsp; This is my HTML page. &lt;br&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;table border="1" id="tblSort"&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&lt;thead&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&lt;th onclick="sortTable('tblSort', 0)" style="cursor:pointer"&gt;Last Name&lt;/th&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&lt;th onclick="sortTable('tblSort', 1)" style="cursor:pointer"&gt;First Name&lt;/th&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&lt;/tr&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&lt;/thead&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&lt;tbody&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&lt;td&gt;Smith&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&lt;td&gt;John&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&lt;/tr&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&lt;td&gt;Johnson&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&lt;td&gt;Betty&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&lt;/tr&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&lt;td&gt;Henderson&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&lt;td&gt;Nathan&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&lt;/tr&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&lt;td&gt;Williams&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&lt;td&gt;James&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&lt;/tr&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&lt;td&gt;Gilliams&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&lt;td&gt;Michael&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&lt;/tr&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&lt;td&gt;Walker&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&lt;td&gt;Matthew&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&lt;/tr&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&lt;/tbody&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/table&gt;<br />
&nbsp; &lt;/body&gt;<br />
&lt;/html&gt;<br />
<br />
<strong>逆序排列：</strong><br />
上面只对表格进行了排列，如果要实现想Microsoft Outlook那样，第一次点击是排序，如果再点击一次，将会对此列进行逆序排列。<br />
修改以后的代码为：<br />
<p>function sortTable(sTableID, iCol) {<br />
&nbsp;&nbsp;&nbsp;var oTable = document.getElementById(sTableID);<br />
&nbsp;&nbsp;&nbsp;var oTBody = oTable.tBodies[0];<br />
&nbsp;&nbsp;&nbsp;var colDataRows = oTBody.rows;<br />
&nbsp;&nbsp;&nbsp;var aTRs = new Array;<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;for (var i = 0; i &lt; colDataRows.length; i++) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;aTRs.push(colDataRows[i]);<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;<span style="color: red">&nbsp;if (oTable.sortCol == iCol){<br />
&nbsp;&nbsp;&nbsp;&nbsp;aTRs.reverse();<br />
&nbsp;&nbsp;&nbsp;} else {<br />
&nbsp;&nbsp;&nbsp;&nbsp;aTRs.sort(generateCompareTRs(iCol));<br />
&nbsp;&nbsp;&nbsp;}</span>&nbsp;<br />
&nbsp;&nbsp;var oFragment = document.createDocumentFragment();<br />
&nbsp;&nbsp;&nbsp;for (var i = 0; i &lt; aTRs.length; i++) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;oFragment.appendChild(aTRs[i]);<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;oTBody.appendChild(oFragment);<br />
&nbsp;&nbsp;&nbsp;<span style="color: red">oTable.sortCol = iCol;</span><br />
&nbsp;&nbsp;}</p><img src ="http://www.blogjava.net/rain1102/aggbug/177457.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2008-01-24 12:24 <a href="http://www.blogjava.net/rain1102/articles/177457.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>对单列表格排序js代码</title><link>http://www.blogjava.net/rain1102/articles/177453.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Thu, 24 Jan 2008 03:49:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/articles/177453.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/177453.html</wfw:comment><comments>http://www.blogjava.net/rain1102/articles/177453.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/177453.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/177453.html</trackback:ping><description><![CDATA[&lt;html&gt;<br />
&nbsp; &lt;head&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;title&gt;Sort.html&lt;/title&gt;<br />
&nbsp;&lt;script type="text/javascript"&gt;<br />
&nbsp;&nbsp;function compareTRs(oTR1, oTR2) {<br />
&nbsp;&nbsp;&nbsp;var sValue1 = oTR1.cells[0].firstChild.nodeValue;<br />
&nbsp;&nbsp;&nbsp;var sValue2 = oTR2.cells[0].firstChild.nodeValue;<br />
&nbsp;&nbsp;&nbsp;return sValue1.localeCompare(sValue2);<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;function sortTable(sTableID) {<br />
&nbsp;&nbsp;&nbsp;var oTable = document.getElementById(sTableID);<br />
&nbsp;&nbsp;&nbsp;var oTBody = oTable.tBodies[0];<br />
&nbsp;&nbsp;&nbsp;var colDataRows = oTBody.rows;<br />
&nbsp;&nbsp;&nbsp;var aTRs = new Array;<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;for (var i = 0; i &lt; colDataRows.length; i++) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;aTRs.push(colDataRows[i]);<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;aTRs.sort(compareTRs);<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;var oFragment = document.createDocumentFragment();<br />
&nbsp;&nbsp;&nbsp;for (var i = 0; i &lt; aTRs.length; i++) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;oFragment.appendChild(aTRs[i]);<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;oTBody.appendChild(oFragment);<br />
&nbsp;&nbsp;}<br />
&nbsp;&lt;/script&gt;<br />
&nbsp; &lt;/head&gt;<br />
&nbsp; <br />
&nbsp; &lt;body&gt;<br />
&nbsp;&nbsp;&nbsp; This is my HTML page. &lt;br&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;table border="1" id="tblSort"&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&lt;thead&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&lt;th onclick="sortTable('tblSort')" style="cursor:pointer"&gt;Last Name&lt;/th&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&lt;/tr&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&lt;/thead&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&lt;tbody&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&lt;td&gt;Smith&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&lt;/tr&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&lt;td&gt;Johnson&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&lt;/tr&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&lt;td&gt;Henderson&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&lt;/tr&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&lt;td&gt;Williams&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&lt;/tr&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&lt;td&gt;Gilliams&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&lt;/tr&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&lt;td&gt;Walker&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&lt;/tr&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&lt;/tbody&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/table&gt;<br />
&nbsp; &lt;/body&gt;<br />
&lt;/html&gt;<br /><img src ="http://www.blogjava.net/rain1102/aggbug/177453.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2008-01-24 11:49 <a href="http://www.blogjava.net/rain1102/articles/177453.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Form中input和textarea自动选择文本</title><link>http://www.blogjava.net/rain1102/articles/177418.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Thu, 24 Jan 2008 01:58:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/articles/177418.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/177418.html</wfw:comment><comments>http://www.blogjava.net/rain1102/articles/177418.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/177418.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/177418.html</trackback:ping><description><![CDATA[<span style="color: #008000">FormUtil.setTextboxes = function() {<br />
&nbsp;&nbsp; var colInputs = document.getElementsByTagName("input");<br />
&nbsp;&nbsp; var colTextAreas = document.getElementsByTagName("textarea");<br />
&nbsp;<br />
&nbsp;&nbsp; for (var i = 0; i &lt; colInputs.length; i++) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (colInputs[i].type == "text" || colInputs[i].type == "password") {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; colInputs[i].onfocus = function() {this.select();};<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp; }<br />
&nbsp;&nbsp; for (var i = 0; i &lt; colTextAreas.length; i++) {<br />
&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;colTextAreas[i].onfocus = function() {this.select();};<br />
&nbsp;&nbsp; }<br />
}</span><img src ="http://www.blogjava.net/rain1102/aggbug/177418.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2008-01-24 09:58 <a href="http://www.blogjava.net/rain1102/articles/177418.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>自定义鼠标提示代码</title><link>http://www.blogjava.net/rain1102/articles/177315.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Wed, 23 Jan 2008 08:38:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/articles/177315.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/177315.html</wfw:comment><comments>http://www.blogjava.net/rain1102/articles/177315.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/177315.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/177315.html</trackback:ping><description><![CDATA[<p><span style="color: #008000">&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"&gt;<br />
&lt;HTML&gt;<br />
&nbsp;&lt;HEAD&gt;<br />
&nbsp; &lt;TITLE&gt; Tip &lt;/TITLE&gt;<br />
&nbsp; &lt;script type="text/JavaScript"&gt;<br />
<span style="color: #ff0000">&nbsp;function showTip(oEvent) {<br />
&nbsp;&nbsp;var oDiv = document.getElementById("divTip1");<br />
&nbsp;&nbsp;oDiv.style.visibility = "visible";<br />
&nbsp;&nbsp;oDiv.style.left = oEvent.clientX + 5;<br />
&nbsp;&nbsp;oDiv.style.top = oEvent.clientY + 5;<br />
&nbsp;}<br />
&nbsp;function hideTip(oEvent) {<br />
&nbsp;&nbsp;var oDiv = document.getElementById("divTip1");<br />
&nbsp;&nbsp;oDiv.style.visibility = "hidden";<br />
&nbsp;}</span><br />
&nbsp; &lt;/script&gt;<br />
&nbsp;&lt;/HEAD&gt;</span></p>
<p><span style="color: #008000">&nbsp;&lt;BODY&gt;<br />
&nbsp;&lt;p&gt;Move your mouser over the red square.&lt;/p&gt;<br />
&nbsp;&lt;div id="div1" style="background-color:red; height:50px; width:50px" onmouseover="showTip(event);" onmouseout="hideTip(event);"&gt;&lt;div&gt;<br />
&nbsp;&lt;div id="divTip1" style="background-color:yellow;position:absolute;visibility:hidden;padding:5px"&gt;<br />
&nbsp;&nbsp;&lt;span style="font-weight:bold"&gt;Custom Tooltip&lt;/span&gt;&lt;br/&gt;<br />
&nbsp;&lt;/div&gt;<br />
&nbsp;&lt;/BODY&gt;<br />
&lt;/HTML&gt;<br />
</span></p><img src ="http://www.blogjava.net/rain1102/aggbug/177315.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2008-01-23 16:38 <a href="http://www.blogjava.net/rain1102/articles/177315.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>可折叠区域实现代码</title><link>http://www.blogjava.net/rain1102/articles/177308.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Wed, 23 Jan 2008 08:20:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/articles/177308.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/177308.html</wfw:comment><comments>http://www.blogjava.net/rain1102/articles/177308.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/177308.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/177308.html</trackback:ping><description><![CDATA[<p>&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"&gt;<br />
&lt;HTML&gt;<br />
&nbsp;&lt;HEAD&gt;<br />
&nbsp; &lt;TITLE&gt; Toggle &lt;/TITLE&gt;<br />
&nbsp; &lt;script type="text/JavaScript"&gt;<br />
<span style="color: #ff0000">&nbsp;function toggle(sDivId) {<br />
&nbsp;&nbsp;var oDiv = document.getElementById(sDivId);<br />
&nbsp;&nbsp;oDiv.style.display = (oDiv.style.display == "none") ? "block":"none";<br />
&nbsp;}</span><br />
&nbsp; &lt;/script&gt;<br />
&nbsp;&lt;/HEAD&gt;</p>
<p>&nbsp;&lt;BODY&gt;<br />
&nbsp;&lt;div style ="background-color:blue; color:white; font-weight:bold; padding:10px; cursor:pointer" onclick="toggle('divContent1');"&gt;Click Here&lt;/div&gt;<br />
&nbsp;&lt;div style="border:3px solid blue; height:100px;padding:10px" id="divContent1"&gt;<br />
&nbsp;&nbsp;This is some content to show and hide.<br />
&nbsp;&lt;/div&gt;<br />
&nbsp;&lt;div style ="background-color:blue; color:white; font-weight:bold; padding:10px; cursor:pointer" onclick="toggle('divContent2');"&gt;Click Here&lt;/div&gt;<br />
&nbsp;&lt;div style="border:3px solid blue; height:100px;padding:10px" id="divContent2"&gt;<br />
&nbsp;&nbsp;This is some content to show and hide.<br />
&nbsp;&lt;/div&gt;<br />
&nbsp;&lt;/BODY&gt;<br />
&lt;/HTML&gt;</p><img src ="http://www.blogjava.net/rain1102/aggbug/177308.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2008-01-23 16:20 <a href="http://www.blogjava.net/rain1102/articles/177308.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>showModalDialog和showModelessDialog使用</title><link>http://www.blogjava.net/rain1102/articles/176785.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Mon, 21 Jan 2008 08:27:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/articles/176785.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/176785.html</wfw:comment><comments>http://www.blogjava.net/rain1102/articles/176785.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/176785.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/176785.html</trackback:ping><description><![CDATA[<p>问题描述：有一个列表，点击每个标题弹出新页面进入修改该标题的具体内容。提交以后，子页面关闭，父页面刷新。<br />
经常想起来的是使用window.open弹出一个新窗口，然后好像这个不好处理。所以到网上查了一下，使用了window.showModalDialog方法。</p>
<p><strong>ShowModalDialog函数的功能：<br />
</strong>打开一个子窗口，并且可与父窗口相互传递数据，它与window.open的最大区别就在于由ShowModalDialog打开子窗口后，父窗口将不能操作。<br />
<strong>使用方法：</strong><br />
vReturnValue = window.showModalDialog(sURL [, vArguments] [, sFeatures])<br />
<strong>参数说明：<br />
</strong><font color="#5577aa">sURL</font><br />
必选参数，类型：字符串。用来指定对话框要显示的文档的URL。<br />
<font color="#5577aa">vArguments</font><br />
可选参数，类型：变体。用来向对话框传递参数。传递的参数类型不限，包括数组等。对话框通过window.dialogArguments来取得传递进来的参数。<br />
<font color="#5577aa">sFeatures</font><br />
可选参数，类型：字符串。用来描述对话框的外观等信息，可以使用以下的一个或几个，用分号&#8220;;&#8221;隔开。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dialogHeight 对话框高度，不小于１００px，ＩＥ４中dialogHeight 和 dialogWidth 默认的单位是em，而ＩＥ５中是px，为方便其见，在定义modal方式的对话框时，用px做单位。<br />
　　 dialogWidth: 对话框宽度。<br />
　　 dialogLeft: 距离桌面左的距离。<br />
　　 dialogTop: 离桌面上的距离。<br />
　　 center: {yes | no | 1 | 0 }：窗口是否居中，默认yes，但仍可以指定高度和宽度。<br />
　　 help: {yes | no | 1 | 0 }：是否显示帮助按钮，默认yes。<br />
　　 resizable: {yes | no | 1 | 0 } ［ＩＥ５＋］：是否可被改变大小。默认no。<br />
　　 status: {yes | no | 1 | 0 } ［IE5+］：是否显示状态栏。默认为yes[ Modeless]或no&nbsp; [Modal]。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; scroll:{ yes | no | 1 | 0 | on | off }：指明对话框是否显示滚动条。默认为yes。<br />
<strong>参数传递方法：<br />
</strong>父窗口向子窗口传递参数采用ShowModalDialog的第2个参数即可，父窗口要获取子窗口传回的参数则可通过ShowModalDialog函数的返回值获取。<br />
子窗口获取父窗口参数的方法为采用子窗口window对象dialogArguments属性获取，例如：<br />
var a=window.dialogArguments;<br />
子窗口向父窗口返回参数采用window.returnValue属性，如：<br />
window.returnValue=1;<br />
window.close();</p>
<p>比如实现上面问题，只需要这样：<br />
<span style="color: #003300"><span style="color: #00ff00"><span style="color: #800080">var&nbsp; url = "page.html";<br />
&nbsp;&nbsp;var retValue = window.showModalDialog(url, "newwindow", "dialogWidth:500px;dialogHeight:200px;help:no;resizable:no;scroll:no;status:no");</span></span></span></p>
<span style="color: #003300"><span style="color: #00ff00"><span style="color: #800080">if (retValue == "ok")<br />
&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;document.location.reload(true);<br />
&nbsp;&nbsp;}</span></span><br />
</span><br />
注意这里要在page页面中提交事件里添加<br />
window.returnValue = "ok";<br />
window.close();<br />
这样就可以实现上面的功能了！<br />
<br />
一、showModalDialog和showModelessDialog有什么不同？<br />
　　showModalDialog：被打开后就会始终保持输入焦点。除非对话框被关闭，否则用户无法切换到主窗口。类似alert的运行效果。<br />
　　showModelessDialog：被打开后，用户可以随机切换输入焦点。对主窗口没有任何影响。<br />
<p>二、怎样才让在showModalDialog和showModelessDialog的超连接不弹出新窗口？<br />
　　在被打开的网页里加上&lt;base target="_self"&gt;就可以了。这句话一般是放在&lt;html&gt;和&lt;body&gt;之间的。</p>
<p>三、怎样才刷新showModalDialog和showModelessDialog里的内容？<br />
　　在showModalDialog和showModelessDialog里是不能按F5刷新的，又不能弹出菜单。这个只能依靠javascript了，以下是相关代码：</p>
<p>&lt;body onkeydown="if (event.keyCode==116){reload.click()}"&gt;<br />
&lt;a id="reload" href="filename.htm" style="display:none"&gt;reload...&lt;/a&gt;</p>
<p>　　将filename.htm替换成网页的名字然后将它放到你打开的网页里，按F5就可以刷新了，注意，这个要配合&lt;base target="_self"&gt;使用，不然你按下F5会弹出新窗口的。</p>
<p>四、如何用javascript关掉showModalDialog(或showModelessDialog)打开的窗口。<br />
　　&lt;input type="button" value="关闭" onclick="window.close()"&gt;<br />
　　也要配合&lt;base target="_self"&gt;，不然会打开一个新的IE窗口，然后再关掉的。</p><img src ="http://www.blogjava.net/rain1102/aggbug/176785.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2008-01-21 16:27 <a href="http://www.blogjava.net/rain1102/articles/176785.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JS常见的location及URL变量 </title><link>http://www.blogjava.net/rain1102/articles/174604.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Fri, 11 Jan 2008 05:29:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/articles/174604.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/174604.html</wfw:comment><comments>http://www.blogjava.net/rain1102/articles/174604.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/174604.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/174604.html</trackback:ping><description><![CDATA[<p>alert(location);<br />
alert(location.href);<br />
alert(location.search);<br />
alert(location.pathname);<br />
<br />
上面四个分别得到下面四个结果<br />
<br />
<a href="http://www.baidu.com/s/abc/d?ie=gb2312&amp;bs=baseURL&amp;sr=&amp;z=&amp;cl=3&amp;f=8&amp;wd=baseURL+IE+FF&amp;ct=0">http://www.baidu.com/s/abc/d?ie=gb2312&amp;bs=baseURL&amp;sr=&amp;z=&amp;cl=3&amp;f=8&amp;wd=baseURL+IE+FF&amp;ct=0</a><br />
http://www.baidu.com/s/abc/d?ie=gb2312&amp;bs=baseURL&amp;sr=&amp;z=&amp;cl=3&amp;f=8&amp;wd=baseURL+IE+FF&amp;ct=0<br />
?ie=gb2312&amp;bs=baseURL&amp;sr=&amp;z=&amp;cl=3&amp;f=8&amp;wd=baseURL+IE+FF&amp;ct=0<br />
/s/abc/d </p><img src ="http://www.blogjava.net/rain1102/aggbug/174604.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2008-01-11 13:29 <a href="http://www.blogjava.net/rain1102/articles/174604.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JavaFX发现之旅：JavaFX Script With Eclipse 入门（第一部分）</title><link>http://www.blogjava.net/rain1102/articles/173978.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Wed, 09 Jan 2008 05:20:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/articles/173978.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/173978.html</wfw:comment><comments>http://www.blogjava.net/rain1102/articles/173978.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/173978.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/173978.html</trackback:ping><description><![CDATA[<a href="http://blog.eshangrao.com/index.php/2007/05/16/391-javafx-script-javafx-script-with-eclipse" target="_blank">http://blog.eshangrao.com/index.php/2007/05/16/391-javafx-script-javafx-script-with-eclipse</a><img src ="http://www.blogjava.net/rain1102/aggbug/173978.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2008-01-09 13:20 <a href="http://www.blogjava.net/rain1102/articles/173978.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>根据年取生肖</title><link>http://www.blogjava.net/rain1102/articles/171475.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Sat, 29 Dec 2007 04:52:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/articles/171475.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/171475.html</wfw:comment><comments>http://www.blogjava.net/rain1102/articles/171475.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/171475.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/171475.html</trackback:ping><description><![CDATA[<span style="color: #008000">//</span><span style="color: #008000">取生肖,&nbsp;参数必须是四位的年&nbsp;</span><br />
<span style="color: #008000"><br />
</span><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;getshengxiao(yyyy){</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;arr</span><span style="color: #000000">=</span><span style="color: #000000">['猴','鸡','狗','猪','鼠','牛','虎','兔','龙','蛇','马','羊'];<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">arr[yyyy</span><span style="color: #000000">%</span><span style="color: #000000">12</span><span style="color: #000000">];</span><span style="color: #000000"><br />
}<br />
<br />
</span><img src ="http://www.blogjava.net/rain1102/aggbug/171475.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2007-12-29 12:52 <a href="http://www.blogjava.net/rain1102/articles/171475.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>根据生日的月份和日期，计算星座的js小函数（最简）(转载)</title><link>http://www.blogjava.net/rain1102/articles/171473.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Sat, 29 Dec 2007 04:50:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/articles/171473.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/171473.html</wfw:comment><comments>http://www.blogjava.net/rain1102/articles/171473.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/171473.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/171473.html</trackback:ping><description><![CDATA[根据生日的月份和日期，计算星座的js小函数（最简）<br />
<span style="color: #008000">//</span><span style="color: #008000">&nbsp;根据生日的月份和日期，计算星座。&nbsp; <a style="color: green" href="http://blog.csdn.net/cuixiping/" target="_blank">http://blog.csdn.net/cuixiping/</a><br />
<div><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;getAstro(month,day){&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;s</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">魔羯水瓶双鱼牡羊金牛双子巨蟹狮子处女天秤天蝎射手魔羯</span><span style="color: #000000">"</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;arr</span><span style="color: #000000">=</span><span style="color: #000000">[</span><span style="color: #000000">20</span><span style="color: #000000">,</span><span style="color: #000000">19</span><span style="color: #000000">,</span><span style="color: #000000">21</span><span style="color: #000000">,</span><span style="color: #000000">21</span><span style="color: #000000">,</span><span style="color: #000000">21</span><span style="color: #000000">,</span><span style="color: #000000">22</span><span style="color: #000000">,</span><span style="color: #000000">23</span><span style="color: #000000">,</span><span style="color: #000000">23</span><span style="color: #000000">,</span><span style="color: #000000">23</span><span style="color: #000000">,</span><span style="color: #000000">23</span><span style="color: #000000">,</span><span style="color: #000000">22</span><span style="color: #000000">,</span><span style="color: #000000">22</span><span style="color: #000000">];<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;s.substr(month</span><span style="color: #000000">*</span><span style="color: #000000">2</span><span style="color: #000000">-</span><span style="color: #000000">(day</span><span style="color: #000000">&lt;</span><span style="color: #000000">arr[month</span><span style="color: #000000">-</span><span style="color: #000000">1</span><span style="color: #000000">]</span><span style="color: #000000">?</span><span style="color: #000000">2</span><span style="color: #000000">:</span><span style="color: #000000">0</span><span style="color: #000000">),</span><span style="color: #000000">2</span><span style="color: #000000">);<br />
}</span></div>
</span><img src ="http://www.blogjava.net/rain1102/aggbug/171473.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2007-12-29 12:50 <a href="http://www.blogjava.net/rain1102/articles/171473.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何在dwr的回调函数中传递多个参数</title><link>http://www.blogjava.net/rain1102/articles/171357.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Fri, 28 Dec 2007 15:42:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/articles/171357.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/171357.html</wfw:comment><comments>http://www.blogjava.net/rain1102/articles/171357.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/171357.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/171357.html</trackback:ping><description><![CDATA[function selectCountry(countryId) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var num = countryId.indexOf("Country");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var prefix = countryId.substr(0,num);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var countryId = document.getElementById(countryId).value;<br />
&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; loveService.getProvincesByCountry(countryId, function(data){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #008000">callBackProvices(data,<span style="color: #ff0000">prefix</span>);<br />
</span>&nbsp;&nbsp;&nbsp;});<br />
&nbsp;&nbsp;&nbsp;resetProvince(prefix+"Province");<br />
&nbsp;&nbsp;&nbsp;resetCity(prefix+"City");<br />
&nbsp;&nbsp;}<br />
&nbsp;<br />
&nbsp;&nbsp;function <span style="color: #ff0000">callBackProvices(data, prefix)</span> {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var provinceId = prefix+'Province';<br />
&nbsp;&nbsp;&nbsp;DWRUtil.removeAllOptions(provinceId);<br />
&nbsp;&nbsp;&nbsp;DWRUtil.addOptions(provinceId, arrayObject, 'value', 'name');<br />
&nbsp;&nbsp;&nbsp;DWRUtil.addOptions(provinceId, data);<br />
&nbsp;&nbsp;}
<p>&nbsp;</p><img src ="http://www.blogjava.net/rain1102/aggbug/171357.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2007-12-28 23:42 <a href="http://www.blogjava.net/rain1102/articles/171357.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>snap给文章中的链接加上缩略图(小教程)（转载）</title><link>http://www.blogjava.net/rain1102/articles/168953.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Thu, 20 Dec 2007 02:36:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/articles/168953.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/168953.html</wfw:comment><comments>http://www.blogjava.net/rain1102/articles/168953.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/168953.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/168953.html</trackback:ping><description><![CDATA[<p>标放到链接上就可以看到缩略图。<br />
效果演示见<a href="http://www.dimlau.com/" target="_blank">本站首页</a></p>
<p>具体使用办法，<br />
到<a href="http://www.snap.com/about/spa1.php" target="_blank" rel="nofollow">snap</a>网站可以申请到一段类似以下形式的代码：<br />
</p>
<blockquote>&lt;script&nbsp;defer&nbsp;id="snap_preview_anywhere"&nbsp;type="text/javascript"&nbsp;src="http://spa.snap.com/snap_preview_anywhere.js?ap=1&amp;amp;key=739080a127808f9856fa43a8c91c4d21&amp;amp;sb=1&amp;amp;domain=dimlau.com"&gt;&lt;/script&gt;</blockquote><br />
将代码置于页面代码的&lt;/head&gt;前面就可以了。（经测试，为不拖慢速度，放在&lt;/body&gt;前也可以，）
<p>下面说说代码的修改：</p>
<p><strong>1、使用默认的代码，鼠标移动到链接上时显示的效果是带搜索框的，</strong>但是可以通过修改代码来去掉搜索框，先看效果对比：<br />
<a href="http://www.flickr.com/photos/dimstudio/299277592/" target="_blank" rel="nofollow"><img alt="snap" src="http://static.flickr.com/120/299277592_9b1efac7fb.jpg" /></a></p>
<p>修改方法是，将获得代码中的<strong>sb=1</strong>改成<strong>sb=0</strong></p>
<p><strong>2、默认代码效果是页面中的所有链接都有鼠标划过时显示缩略图效果。</strong>如果你想对某个特定链接禁用缩略图效果，可以对该链接加上一个分类来标识；<br />
例如链接</p>
<blockquote>&lt;a&nbsp;href="xxxx"&gt;xxx&lt;/a&gt;</blockquote>，禁用缩略图的方法是写成
<blockquote>&lt;a&nbsp;href="xxxx"&nbsp;class="snap_nopreview"&gt;xxx&lt;/a&gt;</blockquote>
<p>通常，一个页面里大部分链接我们都不想加入缩略图的，所以上述办法有点烦琐了。<br />
其实可以通过修改代码中的<strong>ap=1</strong>为<strong>ap=0</strong>来使页面的所有链接在默认情况下不显示缩略图，这时只有链接写成以下格式的情况下才会有缩略图显示：<br />
</p>
<blockquote>&lt;a&nbsp;class="snap_preview"&nbsp;href="XXX"&gt;XXX&lt;/a&gt;</blockquote>
<p>对于上述各种情况，如果链接本身已经有了某个class分类，比如已经分类为class="123",可以用<strong>空格</strong>来分隔，并赋予多个class分类，比如<br />
class="123 snap_nopreview"或者class="123 snap_preview"</p>
<p>以上为本人的一点小小心得，希望对各位看官有点帮助。<br />
--------------------------------------------------------------------------------------------------------</p>
<p>对于我使用的MT，可以对模版中的评论者网站链接形式加入一个class="snap_preview"来实现对评论者网站界面的初步预览，我觉得是个不错的小工具。<br />
当然其他程序，也可以做相应的修改实现该效果。我就不再多说了。</p><img src ="http://www.blogjava.net/rain1102/aggbug/168953.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2007-12-20 10:36 <a href="http://www.blogjava.net/rain1102/articles/168953.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【教程】 jquery第一次亲密接触(转载)</title><link>http://www.blogjava.net/rain1102/articles/155641.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Wed, 24 Oct 2007 09:23:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/articles/155641.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/155641.html</wfw:comment><comments>http://www.blogjava.net/rain1102/articles/155641.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/155641.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/155641.html</trackback:ping><description><![CDATA[jquery是继prototype之后又一个优秀的Javascript框架。对prototype我使用不多，简单了解过。但使用上jquery之后，马上被她的优雅吸引住了。有人使用这样的一比喻来比较prototype和jquery：prototype就像Java，而jquery就像ruby.实际上我比较喜欢java（少接触Ruby罢了）但是jquery的简单的实用的确有相当大的吸引力啊！在项目里我把jquery作为自已唯一的框架类包。使用其间也有一点点心得，其实这些心得，在jquery的文档上面也可能有讲，不过还是记下来，以备忘罢。 <br />
一，找到你了！ <br />
还记得$()这个东西吧？prototype还是DWR都使用了这个函数代替document.getElementById()。没错，jquery也跟风了。为达到document.getElementById()的目的，jquery是这样写的： <br />
<br />
<br />
代码<br />
var someElement = $("#myId");&nbsp; <br />
<br />
<br />
看起来比其他两个框架的要多了一个#，好，看看下面的用法：<br />
<br />
<br />
代码<br />
$("div p");(1)&nbsp; <br />
$("div.container")(2)&nbsp; <br />
$("div #msg");(3)&nbsp; <br />
$("table a",context);(4)&nbsp; <br />
<br />
<br />
在prototype里看过这样的写法吗？第一行代码得到所有&lt;div&gt;标签下的&lt;p&gt;元素。第二行代码得到class为container的&lt;div&gt;元素,第三行代码得到&lt;div&gt;标签下面id为msg的元素。第四行代码得到context为上下文的table里面所有的连接元素。 <br />
如果你熟悉CSS，Xpath，你会觉得这些写法很眼熟！对了。正是。看出奥妙了吧。jquery就是通过这样的方式来找到Dom对象里面的元素。跟CSS的选择器相类似。 <br />
二，Jquery对象？ <br />
jquery提供了很多便利的函数，如each(fn)，但是使用这些函数的前提是：你使用的对象是Jquer对象。使一个Dom对象成为一个Jquery对象很简单，通过下面一些方式（只是一部分）： <br />
<br />
代码<br />
var a = $("#cid");(1)&nbsp; <br />
var b = $("&lt;p&gt;hello&lt;/p&gt;");(2)&nbsp; <br />
var c = document.createElement("table"); var tb = $(c);&nbsp; <br />
<br />
<br />
三，代替body标签的onload <br />
这个惯例，也许是除了$()之外，用得最多的地方了。下面一段代码： <br />
<br />
代码<br />
$(document).ready(function(){&nbsp; <br />
&nbsp; alert("hello");&nbsp; <br />
});(1)&nbsp; <br />
&nbsp; <br />
&lt;body onload="alert('hello');"&gt;（2）&nbsp; <br />
&nbsp; <br />
<br />
<br />
上面两段代码是等价的。但代码1的好处是做到表现和逻辑分离。并且可以在不同的js文件中做相同的操作，即$(document).ready(fn)可以在一个页面中重复出现，而不会冲突。基本上Jqeury的很多plugin都是利用这个特性，正因为这个特性，多个plugin共同使用起来，在初始化时不会发生冲突。 <br />
不管怎么说，这个惯例可以分离javascript与HTML。推荐使用。 <br />
四，事件机制 <br />
我大量使用的事件可能就是button的onclick了。以前习惯在input 元素上写onclick = "fn()",使用jquery可以使javascript代码与html代码分离，保持HTML的清洁，还可以很轻松地绑定事件，甚至你可以不知道&#8220;事件&#8221;这个名词。 <br />
<br />
代码<br />
$(document).ready(function(){&nbsp; <br />
&nbsp; $("#clear").click(function(){&nbsp; <br />
&nbsp; &nbsp; alert("i am about to clear the table");&nbsp; &nbsp; <br />
&nbsp; });&nbsp; <br />
&nbsp; $("form[0]").submit(validate);&nbsp; <br />
});&nbsp; <br />
function validate(){&nbsp; <br />
&nbsp; //do some form validation&nbsp; <br />
}&nbsp; <br />
<br />
<br />
五，同一函数实现set&amp;get <br />
<br />
代码<br />
$("#msg").html();&nbsp; <br />
$("#msg").html("hello");&nbsp; <br />
<br />
<br />
上面两行代码，调用了同样的函数。但结果却差别很大。 <br />
第一行是返回指定元素的HTML值，第二行则是将hello这串字符设置到指定元素中。jquery的函数大部分有这样的特性。 <br />
六，ajax <br />
这是一个ajax横行的时代。多少人，了不了解ajax的都跟着用上一把。呵。使用jquery实现ajax同样简单异常 <br />
<br />
代码<br />
$.get("search.do",{id:1},rend);&nbsp; <br />
function rend(xml){&nbsp; <br />
&nbsp; &nbsp; alert(xml);&nbsp; <br />
} (1)&nbsp; <br />
$.post("search.do",{id:1},rend);&nbsp; <br />
function rend(xml){&nbsp; <br />
&nbsp; &nbsp; alert(xml);&nbsp; <br />
} (2)&nbsp; <br />
&nbsp; <br />
$("#msg").ajaxStart(function(){&nbsp; <br />
&nbsp; this.html("正在加载。。。。");&nbsp; <br />
});(3)&nbsp; <br />
$("#msg").ajaxSuccess(function(){&nbsp; <br />
&nbsp; this.html("加载完成！");&nbsp; <br />
});(4)&nbsp; <br />
<br />
<br />
这些都是较常用的方法，get和post用法一样。第一个参数是异步请求的url，第二个为参数，第三个回调方法。 <br />
3，4的方法会在指定的Dom对象上绑定响应ajax执行的事件。当然，jquery的AJAX相关的函数不仅是这些，有兴趣可以去研究再多。 <br />
七，渐入淡出 <br />
<br />
代码<br />
$("#msg").fadeIn("fast");&nbsp; <br />
$("#msg").fadeOut("slow");&nbsp; <br />
<br />
<br />
没错，上面两行代码已经分别实现了一个id为Msg的jquery对象的渐入和淡出。做一个像Gmail一样的动态加载通知条，用jquery就那么简单。两个函数接受的参数除了快慢等，还可以接收整型，作为渐入或淡出的完成时间，单位为MS。 <br />
八，plugin <br />
这也是一个插件的时代。 <br />
jquery插件给我的感觉清一色的清洁，简单。如Jtip，要使用它的功能，只需要在你的元素的class上加上Jtip,并引入jtip.js及其样式即可以了。其他事情插件全包。我喜欢jquery的一个重要原因是发现她已经有了很多很好，很精彩的插件。<br />
<br />
写得很烂。可能大家看不出jquery的好处。嗯，光听是没用的，试用一下吧。你会发觉很有趣。 <br />
暂时告一段落吧。待有新的发现再来分享。<br />
<br />
加一些Jquery的资源： <br />
<a href="http://www.visualjquery.com/index.xml" target="_blank">http://www.visualjquery.com/index.xml</a> 很好的API查询站点 <br />
<a href="http://jquery.com/demo/thickbox/" target="_blank">http://jquery.com/demo/thickbox/</a> 知道lightBox吧，看看Jquery是怎样实现相同的东西 <br />
<a href="http://www.codylindley.com/blogstuff/js/jtip/" target="_blank">http://www.codylindley.com/blogstuff/js/jtip/</a> Jtip，实用的提示工具 <br />
<a href="http://jquery.com/plugins/" target="_blank">http://jquery.com/plugins/</a> 很多牛的插件。 <br />
<br />
<a href="http://15daysofjquery.com/" target="_blank">http://15daysofjquery.com</a><br /><img src ="http://www.blogjava.net/rain1102/aggbug/155641.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2007-10-24 17:23 <a href="http://www.blogjava.net/rain1102/articles/155641.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>javascirpt几个验证输入类型</title><link>http://www.blogjava.net/rain1102/articles/105221.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Wed, 21 Mar 2007 03:21:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/articles/105221.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/105221.html</wfw:comment><comments>http://www.blogjava.net/rain1102/articles/105221.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/105221.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/105221.html</trackback:ping><description><![CDATA[<span class=javascript id=text7101303 style="FONT-SIZE: 12px"><font face=Verdana>//检查是否为任意数（实数） <br>function isNumeric(strNumber) { <br>var newPar=/^(- &#166;\+)?\d+(\.\d+)?$/ <br>alert(newPar.test(strNumber));} <br>//检查是否为正数 <br>function isUnsignedNumeric(strNumber) { <br>var newPar=/^\d+(\.\d+)?$/ <br>alert(newPar.test(strNumber)); } <br>//检查是否为整数 <br>function isInteger(strInteger) { <br>var newPar=/^(- &#166;\+)?\d+$/ <br>alert(newPar.test(strInteger)); } <br>//检查是否为正整数 <br>function isUnsignedInteger(strInteger) { <br>var newPar=/^\d+$/ <br>alert(newPar.test(strInteger));}</font> <br><br><br><br>
<p>"^\\d+$"　　//非负整数（<font style="BACKGROUND-COLOR: #ffffff">正整数</font> + 0）<br>"^[0-9]*[1-9][0-9]*$"　　//<font style="BACKGROUND-COLOR: #ffffff">正整数</font><br>"^((-\\d+)|(0+))$"　　//非<font style="BACKGROUND-COLOR: #ffffff">正整数</font>（负整数 + 0）<br>"^-[0-9]*[1-9][0-9]*$"　　//负整数<br>"^-?\\d+$"　　　　//整数<br>"^\\d+(\\.\\d+)?$"　　//非负浮点数（正浮点数 + 0）<br>"^(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*))$"　　//正浮点数<br>"^((-\\d+(\\.\\d+)?)|(0+(\\.0+)?))$"　　//非正浮点数（负浮点数 + 0）<br>"^(-(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*)))$"　　//负浮点数<br>"^(-?\\d+)(\\.\\d+)?$"　　//浮点数<br>"^[A-Za-z]+$"　　//由26个英文字母组成的字符串<br>"^[A-Z]+$"　　//由26个英文字母的大写组成的字符串<br>"^[a-z]+$"　　//由26个英文字母的小写组成的字符串<br>"^[A-Za-z0-9]+$"　　//由数字和26个英文字母组成的字符串<br>"^\\w+$"　　//由数字、26个英文字母或者下划线组成的字符串<br>"^[\\w-]+(\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+$"　　　　//email地址<br>"^[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$"　　//url</p>
</span><img src ="http://www.blogjava.net/rain1102/aggbug/105221.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2007-03-21 11:21 <a href="http://www.blogjava.net/rain1102/articles/105221.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【JavaScript 实现日历式日期选择】</title><link>http://www.blogjava.net/rain1102/articles/96270.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Sat, 27 Jan 2007 07:15:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/articles/96270.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/96270.html</wfw:comment><comments>http://www.blogjava.net/rain1102/articles/96270.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/96270.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/96270.html</trackback:ping><description><![CDATA[<p>date.js代码：<br />/*=======Calendar.js=======By Jiang Hongbin=======*/</p>
		<p>var months = new Array("一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"); <br />var daysInMonth = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31); <br />var days = new Array("日","一", "二", "三", "四", "五", "六"); <br />var today; </p>
		<p>document.writeln("&lt;div id='Calendar' style='position:absolute; z-index:1; visibility: hidden; filter:\"progid:DXImageTransform.Microsoft.Shadow(direction=135,color=#999999,strength=3)\"'&gt;&lt;/div&gt;");</p>
		<p>function getDays(month, year)<br />{ <br /> //下面的这段代码是判断当前是否是闰年的 <br /> if (1 == month) <br />  return ((0 == year % 4) &amp;&amp; (0 != (year % 100))) || (0 == year % 400) ? 29 : 28; <br /> else <br />  return daysInMonth[month]; <br />} </p>
		<p>function getToday() <br />{ <br /> //得到今天的年,月,日 <br /> this.now = new Date(); <br /> this.year = this.now.getFullYear(); <br /> this.month = this.now.getMonth(); <br /> this.day = this.now.getDate(); <br />}</p>
		<p>function getStringDay(str) <br />{ <br /> //得到输入框的年,月,日<br /> var str=str.split("-")<br /> <br /> this.now = new Date(parseFloat(str[0]),parseFloat(str[1])-1,parseFloat(str[2])); <br /> this.year = this.now.getFullYear(); <br /> this.month = this.now.getMonth(); <br /> this.day = this.now.getDate(); <br />}</p>
		<p>function newCalendar() { <br /> var parseYear = parseInt(document.all.Year.options[document.all.Year.selectedIndex].value); <br /> var newCal = new Date(parseYear, document.all.Month.selectedIndex, 1); <br /> var day = -1; <br /> var startDay = newCal.getDay(); <br /> var daily = 0; <br /> <br /> if ((today.year == newCal.getFullYear()) &amp;&amp;(today.month == newCal.getMonth())) <br />  day = today.day; <br />  <br /> var tableCal = document.all.calendar; <br /> var intDaysInMonth =getDays(newCal.getMonth(), newCal.getFullYear());<br />  <br /> for (var intWeek = 1; intWeek &lt; tableCal.rows.length;intWeek++) <br />  for (var intDay = 0;intDay &lt; tableCal.rows[intWeek].cells.length;intDay++) <br />  { <br />   var cell = tableCal.rows[intWeek].cells[intDay]; <br />   if ((intDay == startDay) &amp;&amp; (0 == daily)) <br />    daily = 1; <br />    <br />   if(day==daily) //今天，调用今天的Class <br />   {<br />    cell.style.background='#6699CC';<br />    cell.style.color='#FFFFFF';<br />    //cell.style.fontWeight='bold';<br />   }<br />   else if(intDay==6) //周六 <br />    cell.style.color='green'; <br />   else if (intDay==0) //周日 <br />    cell.style.color='red';<br />   <br />   if ((daily &gt; 0) &amp;&amp; (daily &lt;= intDaysInMonth)) <br />   { <br />    cell.innerText = daily; <br />    daily++; <br />   } <br />   else <br />    cell.innerText = ""; <br />  } <br />} </p>
		<p>function GetDate(InputBox)<br />{ <br /> var sDate; <br /> //这段代码处理鼠标点击的情况 <br /> if (event.srcElement.tagName == "TD") <br />  if (event.srcElement.innerText != "") <br />  { <br />   sDate = document.all.Year.value + "-" + document.all.Month.value + "-" + event.srcElement.innerText;<br />   eval("document.all."+InputBox).value=sDate;<br />   HiddenCalendar();<br />  } <br />} </p>
		<p>function HiddenCalendar()<br />{<br /> //关闭选择窗口<br /> document.all.Calendar.style.visibility='hidden';<br />}</p>
		<p>function ShowCalendar(InputBox)<br />{<br /> var x,y,intLoop,intWeeks,intDays;<br /> var DivContent;<br /> var year,month,day;<br /> //var o=document.getElementById(InputBox);<br /> var o=InputBox;<br /> var oid=o.id;<br /> var thisyear; //真正的今年年份<br /> <br /> if(!oid)oid=o.name;<br /> <br /> thisyear=new getToday();<br /> thisyear=thisyear.year;<br /> <br /> today = o.value;<br /> if(isDate(today))<br />  today = new getStringDay(today);<br /> else<br />  today = new getToday(); <br /> <br /> //显示的位置<br /> x=o.offsetLeft;<br /> y=o.offsetTop;<br /> while(o=o.offsetParent)<br /> {<br />  x+=o.offsetLeft;<br />  y+=o.offsetTop;<br /> }<br /> document.all.Calendar.style.left=x+2;<br /> document.all.Calendar.style.top=y+20;<br /> document.all.Calendar.style.visibility="visible";<br /> <br /> //下面开始输出日历表格(border-color:#9DBAF7)<br /> DivContent="&lt;table border='0' cellspacing='0' style='border:1px solid #0066FF; background-color:#EDF2FC'&gt;";<br /> DivContent+="&lt;tr&gt;";<br /> DivContent+="&lt;td style='border-bottom:1px solid #0066FF; background-color:#C7D8FA'&gt;";<br /> <br /> //年<br /> DivContent+="&lt;select name='Year' id='Year' onChange='newCalendar()' style='font-family:Verdana; font-size:12px'&gt;";<br /> for (intLoop = thisyear - 100; intLoop &lt; (thisyear + 2); intLoop++) <br />  DivContent+="&lt;option value= " + intLoop + " " + (today.year == intLoop ? "Selected" : "") + "&gt;" + intLoop + "&lt;/option&gt;"; <br /> DivContent+="&lt;/select&gt;";<br /> <br /> //月<br /> DivContent+="&lt;select name='Month' id='Month' onChange='newCalendar()' style='font-family:Verdana; font-size:12px'&gt;";<br /> for (intLoop = 0; intLoop &lt; months.length; intLoop++) <br />  DivContent+="&lt;option value= " + (intLoop + 1) + " " + (today.month == intLoop ? "Selected" : "") + "&gt;" + months[intLoop] + "&lt;/option&gt;"; <br /> DivContent+="&lt;/select&gt;";<br /> <br /> DivContent+="&lt;/td&gt;";<br /> <br /> DivContent+="&lt;td style='border-bottom:1px solid #0066FF; background-color:#C7D8FA; font-weight:bold; font-family:Wingdings 2,Wingdings,Webdings; font-size:16px; padding-top:2px; color:#4477FF; cursor:hand' align='center' title='关闭' onClick='javascript:HiddenCalendar()'&gt;S&lt;/td&gt;";<br /> DivContent+="&lt;/tr&gt;";<br />  <br /> DivContent+="&lt;tr&gt;&lt;td align='center' colspan='2'&gt;";<br /> DivContent+="&lt;table id='calendar' border='0' width='100%'&gt;";<br /> <br /> //星期<br /> DivContent+="&lt;tr&gt;";<br /> for (intLoop = 0; intLoop &lt; days.length; intLoop++) <br />  DivContent+="&lt;td align='center' style='font-size:12px'&gt;" + days[intLoop] + "&lt;/td&gt;"; <br /> DivContent+="&lt;/tr&gt;";<br /> <br /> //天<br /> for (intWeeks = 0; intWeeks &lt; 6; intWeeks++)<br /> { <br />  DivContent+="&lt;tr&gt;"; <br />  for (intDays = 0; intDays &lt; days.length; intDays++) <br />   DivContent+="&lt;td onClick='GetDate(\"" + oid + "\")' style='cursor:hand; border-right:1px solid #BBBBBB; border-bottom:1px solid #BBBBBB; color:#215DC6; font-family:Verdana; font-size:12px' align='center'&gt;&lt;/td&gt;"; <br />  DivContent+="&lt;/tr&gt;"; <br /> } <br /> DivContent+="&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;";</p>
		<p> document.all.Calendar.innerHTML=DivContent;<br /> newCalendar();<br />}</p>
		<p>function isDate(dateStr)<br />{ <br /> var datePat = /^(\d{4})(\-)(\d{1,2})(\-)(\d{1,2})$/;<br /> var matchArray = dateStr.match(datePat);<br /> if (matchArray == null) return false; <br /> var month = matchArray[3];<br /> var day = matchArray[5]; <br /> var year = matchArray[1]; <br /> if (month &lt; 1 || month &gt; 12) return false; <br /> if (day &lt; 1 || day &gt; 31) return false; <br /> if ((month==4 || month==6 || month==9 || month==11) &amp;&amp; day==31) return false; <br /> if (month == 2)<br /> {<br />  var isleap = (year % 4 == 0 &amp;&amp; (year % 100 != 0 || year % 400 == 0)); <br />  if (day &gt; 29 || (day==29 &amp;&amp; !isleap)) return false; <br /> } <br /> return true;<br />}<br /><br /></p>
		<hr />
		<br />&lt;script type="text/javascript" src="js/date.js"&gt;&lt;/script&gt;<br />&lt;input id="date" onClick="javascript:ShowCalendar(this)"&gt;&lt;input type="button" value="选择" onClick="javascript:ShowCalendar(date)"&gt;&lt;br&gt;<img src ="http://www.blogjava.net/rain1102/aggbug/96270.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2007-01-27 15:15 <a href="http://www.blogjava.net/rain1102/articles/96270.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>图片新闻</title><link>http://www.blogjava.net/rain1102/articles/75609.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Tue, 17 Oct 2006 06:29:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/articles/75609.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/75609.html</wfw:comment><comments>http://www.blogjava.net/rain1102/articles/75609.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/75609.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/75609.html</trackback:ping><description><![CDATA[<p>&lt;style type="text/css"&gt;<br />&lt;!--<br />body <br />{<br /> margin-left: 0px;<br /> margin-top: 0px;<br /> margin-right: 0px;<br /> margin-bottom: 0px;<br /> background-image: url(images/bg_page.gif);<br />}<br />--&gt;<br />&lt;/style&gt;<br />&lt;link href="Style_all.css" rel="stylesheet" type="text/css" /&gt;<br />&lt;script type='text/javascript' src='/dwr/interface/DWRIndex.js'&gt;&lt;/script&gt;<br />&lt;script type='text/javascript' src='/dwr/engine.js'&gt;&lt;/script&gt;<br />&lt;script type='text/javascript' src='/dwr/util.js'&gt;&lt;/script&gt;</p>
		<p>&lt;STYLE type="text/css"&gt;<br />      #imgTitle<br />      {<br />       FILTER: ALPHA(opacity=70); LEFT: 0px; OVERFLOW: hidden; POSITION: relative; TEXT-ALIGN: left<br />      }</p>
		<p>      #imgTitle_up<br />      {<br />       LEFT: 0px; HEIGHT: 1px; TEXT-ALIGN: left<br />      }<br />      #imgTitle_down<br />      {<br />       LEFT: 0px; TEXT-ALIGN: right<br />      }<br />         <br />      .imgClass<br />      {<br />       BORDER-RIGHT: gray 1px solid; BORDER-TOP: gray 1px solid; BORDER-LEFT: gray 1px solid; BORDER-BOTTOM: gray 0px solid<br />      }<br />      #txtFrom<br />      {<br />       VERTICAL-ALIGN: middle; TEXT-ALIGN: center<br />      }<br />      .button<br />      {<br />       PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: #7b7b63; PADDING-BOTTOM: 0px; MARGIN: 0px; FONT: bold 9px sans-serif; BORDER-LEFT: #fff 1px solid; PADDING-TOP: 0px; TEXT-DECORATION: none;width:20;<br />      }<br />      A.button<br />      {<br />       COLOR: #ffffff; FONT-FAMILY: sans-serif; BACKGROUND-COLOR: #000000; TEXT-DECORATION: none<br />      }<br />      A.button:link<br />      {<br />       COLOR: #ffffff; FONT-FAMILY: sans-serif; BACKGROUND-COLOR: #000000; TEXT-DECORATION: none<br />      }<br />      A.button:visited<br />      {<br />       COLOR: #ffffff; FONT-FAMILY: sans-serif; BACKGROUND-COLOR: #000000; TEXT-DECORATION: none<br />      }<br />      A.button:hover<br />      {<br />       BACKGROUND: #fff; COLOR: #fff; FONT-FAMILY: sans-serif; TEXT-DECORATION: none<br />      }<br />      .buttonDiv<br />      {<br />       BACKGROUND: #000000; FLOAT: left; VERTICAL-ALIGN: middle; WIDTH: 21px; HEIGHT: 1px; TEXT-ALIGN: center<br />      }<br />      .trans<br />      {<br />       FILTER: progid:DXImageTransform.Microsoft.Alpha(startX=0, startY=0, finishX=100, finishY=100,style=1,opacity=0,finishOpacity=40); WIDTH: 90px; BACKGROUND-COLOR: #000<br />      }<br />      &lt;/STYLE&gt;</p>
		<p>     &lt;SCRIPT language="javascript" type="text/javascript"&gt;<br />     var imgWidth=199;              //图片宽<br />     var imgHeight=139;             //图片高<br />     var textFromHeight=0;         //焦点字框高度 (单位为px)<br />     var textStyle="f12";           //焦点字class style (不是连接class)<br />     var textLinkStyle="p1"; //焦点字连接class style<br />     var buttonLineOn="#f60";           //button下划线on的颜色<br />     var buttonLineOff="#000";          //button下划线off的颜色<br />     var TimeOut=5000;              //每张图切换时间 (单位毫秒);<br />     var imgUrl=new Array(); <br />     var imgLink=new Array();<br />     var imgtext=new Array();<br />     var imgAlt=new Array();<br />                    var adNum=0;<br />                            <br />                    <br />                    var topcount=5;<br />                    var ItemID=430;<br />                    <br />                    function rebackAlt(){<br />                    <br />                    }<br />                    function setAlt(data){<br />           <br />                       for(var i=1;i&lt;=topcount;i++){<br />                        imgAlt[i]=data[i-1];<br />                       }<br />                    }<br />                    function setTitle(data){<br />                       for(var i=1;i&lt;=topcount;i++){<br />                        imgtext[i]=data[i-1];<br />                       }<br />                       <br />                    }<br />     function setLink(data){<br />        <br />        for(var i=1;i&lt;=topcount;i++){<br />                        imgLink[i]=data[i-1];<br />                       }<br />     }<br />     function setbContent(data){<br />        <br />        for(var i=1;i&lt;=topcount;i++){<br />                        imgUrl[i]=data[i-1];<br />                       }<br />     }<br />     <br />     //焦点字框高度样式表 开始<br />     document.write('&lt;style type="text/css"&gt;');<br />     document.write('#focuseFrom{width:'+(imgWidth+2)+';margin: 0px; padding:0px;height:'+(imgHeight+textFromHeight)+'px; overflow:hidden;}');<br />     document.write('#txtFrom{height:'+textFromHeight+'px;line-height:'+textFromHeight+'px;width:'+imgWidth+'px;overflow:hidden;}');<br />     document.write('#imgTitle{width:'+imgWidth+';top:-'+(textFromHeight+26)+'px;height:18px}');</p>
		<p>     document.write('&lt;/style&gt;');<br />     document.write('&lt;div id="focuseFrom"&gt;');<br />     //焦点字框高度样式表 结束<br />     <br />        DWRIndex.getPicNewsAlt(ItemID,topcount,setAlt);<br />        <br />                       DWRIndex.getPicNewsTitle(ItemID,topcount,setTitle);<br />                       <br />                       DWRIndex.getPicNewsLink(ItemID,topcount,setLink); <br />                       <br />                       DWRIndex.getPicNewsbimgUrl(ItemID,topcount,setbContent);</p>
		<p>     function changeimg(n)<br />     {<br />      adNum=n;<br />      window.clearInterval(theTimer);<br />      adNum=adNum-1;<br />      nextAd();<br />     }<br />     function goUrl(){<br />       <br />       window.open(imgLink[adNum],'_blank');<br />     }<br />     //NetScape开始<br />     if (navigator.appName == "Netscape")<br />     {<br />     document.write('&lt;style type="text/css"&gt;');<br />     document.write('.buttonDiv{height:4px;width:21px;}');<br />     document.write('&lt;/style&gt;');<br />     function nextAd(){<br />                        <br />      if(adNum&lt;(imgUrl.length-1)){<br />      adNum++;<br />      }<br />      else {<br />      adNum=1;<br />      }<br />      if (imgUrl[adNum]==null){<br />                         adNum--;<br />                         document.images.imgInit.src="images/load.gif";<br />                         document.images.imgInit.alt="正在加载..."<br />                         setTimeout("nextAd()", 0);<br />                         return;<br />                        } <br />      theTimer=setTimeout("nextAd()", TimeOut);<br />      document.images.imgInit.src=imgUrl[adNum];<br />      <br />      document.images.imgInit.alt=imgAlt[adNum]; <br />      document.getElementById('focustext').innerHTML=imgtext[adNum];<br />      document.getElementById('imgLink').href=imgLink[adNum];<br />                        document.getElementById("imgtext").innerHTML=imgtext[adNum];//////////////////<br />     }<br />      document.write('&lt;a id="imgLink" href="'+imgLink[1]+'" target=_blank class="p1"&gt;&lt;img src="'+imgUrl[1]+'" name="imgInit" width='+imgWidth+' height='+imgHeight+' border=1 alt="'+imgAlt[1]+'" class="imgClass"&gt;&lt;/a&gt;&lt;div id="txtFrom"&gt;&lt;span id="focustext" class="'+textStyle+'"&gt;'+imgtext[1]+'&lt;/span&gt;&lt;/div&gt;')<br />      document.write('&lt;div id="imgTitle"&gt;');<br />      document.write('&lt;div id="imgTitle_down"&gt;');<br />     //数字按钮代码开始<br />     for(var i=1;i&lt;imgUrl.length;i++){document.write('&lt;a href="javascript:changeimg('+i+')" class="button" style="cursor:hand" title="'+imgAlt[i]+'"&gt;'+i+'&lt;/a&gt;');}<br />     //数字按钮代码结束<br />      document.write('&lt;/div&gt;');<br />      document.write('&lt;/div&gt;');<br />      document.write('&lt;/div&gt;');<br />      nextAd();<br />     }<br />     //NetScape结束<br />     //IE开始<br />     else<br />     {<br />    <br />     function playTran(){<br />      if (document.all)<br />          imgInit.filters.revealTrans.play(); <br /> <br />     }<br />     var key=0;<br />     function nextAd(){</p>
		<p>      //alert(adNum+"-----"+key);<br />      <br />      if(adNum&lt;topcount){<br />        adNum++ ;<br />        <br />      }<br />      else {<br />        adNum=1;<br />        <br />      }<br />                        if (imgUrl[adNum]==null){<br />                         adNum--;<br />                         document.images.imgInit.src="images/load.gif";<br />                         document.images.imgInit.alt="正在加载..."<br />                         setTimeout("nextAd()", 0);<br />                         return;<br />                        }      <br />      if( key==0 ){<br />       key=1;<br />      } else if (document.all){<br />       imgInit.filters.revealTrans.Transition=23;<br />       imgInit.filters.revealTrans.apply();<br />            playTran();<br />      }<br />      <br />      //alert(adNum);<br />      //alert(imgAlt[adNum]);<br />      document.images.imgInit.src=imgUrl[adNum];<br />      document.images.imgInit.alt=imgAlt[adNum]; <br />      document.getElementById('link'+adNum).style.background=buttonLineOn;<br />      for (var i=1;i&lt;=topcount;i++)<br />      {<br />         if (i!=adNum){document.getElementById('link'+i).style.background=buttonLineOff;}<br />      } <br />      focustext.innerHTML=imgtext[adNum];<br />      theTimer=setTimeout("nextAd()", TimeOut);<br />                        document.getElementById("imgtext").innerHTML=imgtext[adNum];//////////////////<br />     }<br />     document.write('&lt;a target=_self href="javascript:goUrl()"&gt;&lt;img style="FILTER: revealTrans(duration=1,transition=5);" src="javascript:nextAd()" width='+imgWidth+' height='+imgHeight+' border=0 vspace="0" name=imgInit class="imgClass"&gt;&lt;/a&gt;');<br />     document.write('&lt;div id="txtFrom"&gt;&lt;span id="focustext" class="'+textStyle+'"&gt;&lt;/span&gt;&lt;/div&gt;');<br />     document.write('&lt;div id="imgTitle"&gt;');<br />     document.write(' &lt;div id="imgTitle_down"&gt; &lt;a class="trans"&gt;&lt;/a&gt;');<br />     //数字按钮代码开始<br />     for(var i=1;i&lt;topcount+1;i++)<br />      {<br />      document.write('&lt;a id="link'+i+'"  href="javascript:changeimg('+i+')" class="button" style="cursor:hand" title="'+imgAlt[i]+'" onFocus="this.blur()"&gt;'+i+'&lt;/a&gt;');<br />                        <br />      }<br />     //数字按钮代码结束<br /> <br />     document.write('&lt;/div&gt;');<br />     document.write('&lt;/div&gt;');<br />     document.write('&lt;/div&gt;');<br />                    document.write("&lt;div id='imgtext'&gt;&lt;/div&gt;");//////////////////<br />     <br />     }<br />     //IE结束---<br />     &lt;/SCRIPT&gt; </p><img src ="http://www.blogjava.net/rain1102/aggbug/75609.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2006-10-17 14:29 <a href="http://www.blogjava.net/rain1102/articles/75609.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Display与Visibility的不同 </title><link>http://www.blogjava.net/rain1102/articles/75390.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Mon, 16 Oct 2006 04:58:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/articles/75390.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/75390.html</wfw:comment><comments>http://www.blogjava.net/rain1102/articles/75390.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/75390.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/75390.html</trackback:ping><description><![CDATA[<div class="left fontsize3">css中的display与visibility——大多数人很容易将css属性display和visibility混淆，它们看似没有什么不同，其实它们的差别却是很大的。 visibility属性用来确定元素是显示还是隐藏，这用visibility="visible|hidden"来表示，visible表示显示，hidden表示隐藏。当visibility被设置为"hidden"的时候，元素虽然被隐藏了，但它仍然占据它原来所在的位置。</div><img src ="http://www.blogjava.net/rain1102/aggbug/75390.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2006-10-16 12:58 <a href="http://www.blogjava.net/rain1102/articles/75390.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>innerText和innerHTML的区别</title><link>http://www.blogjava.net/rain1102/articles/71765.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Mon, 25 Sep 2006 07:41:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/articles/71765.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/71765.html</wfw:comment><comments>http://www.blogjava.net/rain1102/articles/71765.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/71765.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/71765.html</trackback:ping><description><![CDATA[innerText和innerHTML的区别<br />先看下面的代码<br />&lt;html&gt;<br />&lt;head&gt;&lt;title&gt;test&lt;/title&gt;<br />&lt;script language="javascript"&gt;<br />function show1(){<br />document.all.test.innerText="&lt;font color=blue&gt;test&lt;/font&gt;"; <br />}<br />function show2(){<br />document.all.test.innerHTML="&lt;font color=blue&gt;test&lt;/font&gt;"; <br />}<br />&lt;/script&gt;<br />&lt;/head&gt;<br />&lt;body&gt;<br />&lt;table&gt;&lt;tr&gt;&lt;td id=test&gt;&lt;font color=red&gt;innerText&lt;/font&gt;&lt;/td&gt;<br />&lt;/tr&gt;&lt;/table&gt;<br />&lt;a href="javascript:show1();"&gt;testinnerText&lt;/a&gt;<br />&lt;a href="javascript:show2();"&gt;testinnerHTML&lt;/a&gt;<br />&lt;/body&gt;<br />&lt;/html&gt;<br />对于innerText，即把"&lt;font color=blue&gt;test&lt;/font&gt;"当成整体内容显示出来。而对于innerHTML而言，则把"&lt;font color=blue&gt;test&lt;/font&gt;"当成页面的一部分，即显示兰色的test字符！<img src ="http://www.blogjava.net/rain1102/aggbug/71765.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2006-09-25 15:41 <a href="http://www.blogjava.net/rain1102/articles/71765.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>制作javascript弹出窗口技巧九则</title><link>http://www.blogjava.net/rain1102/articles/67627.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Mon, 04 Sep 2006 09:02:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/articles/67627.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/67627.html</wfw:comment><comments>http://www.blogjava.net/rain1102/articles/67627.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/67627.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/67627.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 1		、最基本的弹出窗口代码														　　其实代码非常简单：														　　		&lt; SCRIPT LANGUAGE="javascript"&gt;		　　		&lt; !--		　　		window.open ("page.html")		　　		-- &gt;		　　		&l...&nbsp;&nbsp;<a href='http://www.blogjava.net/rain1102/articles/67627.html'>阅读全文</a><img src ="http://www.blogjava.net/rain1102/aggbug/67627.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2006-09-04 17:02 <a href="http://www.blogjava.net/rain1102/articles/67627.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>