﻿<?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-jasmine214--love-随笔分类-JS</title><link>http://www.blogjava.net/jasmine214--love/category/45437.html</link><description>微笑着思考</description><language>zh-cn</language><lastBuildDate>Sat, 24 Jul 2010 09:19:12 GMT</lastBuildDate><pubDate>Sat, 24 Jul 2010 09:19:12 GMT</pubDate><ttl>60</ttl><item><title>JS--页面返回/跳转/刷新</title><link>http://www.blogjava.net/jasmine214--love/archive/2010/07/23/326909.html</link><dc:creator>幻海蓝梦</dc:creator><author>幻海蓝梦</author><pubDate>Fri, 23 Jul 2010 02:44:00 GMT</pubDate><guid>http://www.blogjava.net/jasmine214--love/archive/2010/07/23/326909.html</guid><wfw:comment>http://www.blogjava.net/jasmine214--love/comments/326909.html</wfw:comment><comments>http://www.blogjava.net/jasmine214--love/archive/2010/07/23/326909.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jasmine214--love/comments/commentRss/326909.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jasmine214--love/services/trackbacks/326909.html</trackback:ping><description><![CDATA[
		<div class="blog_content">
				<p>原文：<br /></p>
				<p>Javascript 返回上一页<br />1. Javascript 返回上一页 history.go(-1), 返回两个页面: 
history.go(-2); </p>
				<p>  2. history.back(). </p>
				<p>  3. window.history.forward()返回下一页 </p>
				<p>  4. window.history.go(返回第几页,也可以使用访问过的URL)  </p>
				<p>例: <br />&lt;a href="javascript:history.go(-1);"&gt;向上一页&lt;/a&gt; </p>
				<p>response.Write("&lt;script language=javascript&gt;") 
<br />response.Write("if(!confirm('完成任务?')){history.back();}") 
<br />response.Write("&lt;/script&gt;") <br />response.Write("&lt;script 
language=javascript&gt;history.go(-1);&lt;/script&gt;") <br />&lt;a 
href="javascript:history.go(-1);"&gt;向上一页&lt;/a&gt; </p>
				<p>页面跳转:onclick="window.location.href='list.aspx'" </p>
				<p>P.S. <br />小技巧(JS引用JS): <br />&lt;script type=text/javascript&gt; <br />&lt;!-- 
<br />if (typeof SWFObject == "undefined") { <br />document.write('&lt;scr' + 'ipt 
type="text/javascript" src="/scripts/swfobject-1.5.js"&gt;&lt;/scr' + 
'ipt&gt;');} <br />//--&gt; <br />&lt;/script&gt; </p>
				<p>Javascript刷新页面的几种方法： <br />1    history.go(0) <br />2    location.reload() 
<br />3    location=location <br />4    location.assign(location) <br />5    
document.execCommand('Refresh') <br />6    window.navigate(location) <br />7    
location.replace(location) <br />8    document.URL=location.href </p>
				<p>自动刷新页面的方法: <br />1.页面自动刷新：把如下代码加入&lt;head&gt;区域中 <br />&lt;meta 
http-equiv="refresh" content="20"&gt; <br />其中20指每隔20秒刷新一次页面. </p>
				<p>2.页面自动跳转：把如下代码加入&lt;head&gt;区域中 <br />&lt;meta http-equiv="refresh" 
content="20;url=http://www.javaeye.com"&gt; <br />其中20指隔20秒后跳转到<a href="http://www.javaeye.com/">http://www.javaeye.com</a>页面 </p>
				<p>3.页面自动刷新js版 <br />&lt;script language="JavaScript"&gt; <br />function myrefresh() 
<br />{ <br />       window.location.reload(); <br />} 
<br />setTimeout('myrefresh()',1000); //指定1秒刷新一次 <br />&lt;/script&gt; </p>
				<p>ASP.NET如何输出刷新父窗口脚本语句 <br />1.   
this.response.write("&lt;script&gt;opener.location.reload();&lt;/script&gt;");  
</p>
				<p>2.   this.response.write("&lt;script&gt;opener.window.location.href = 
opener.window.location.href;&lt;/script&gt;"); </p>
				<p>
						<br />3.   Response.Write("&lt;script 
language=javascript&gt;opener.window.navigate(''你要刷新的页.asp'');&lt;/script&gt;") 
</p>
				<p>
						<br />JS刷新框架的脚本语句 </p>
				<p>//如何刷新包含该框架的页面用  <br />&lt;script language=JavaScript&gt; <br />   
parent.location.reload(); <br />&lt;/script&gt; </p>
				<p>//子窗口刷新父窗口 <br />&lt;script language=JavaScript&gt; <br />    
self.opener.location.reload(); <br />&lt;/script&gt; <br />(　或　&lt;a 
href="javascript:opener.location.reload()"&gt;刷新&lt;/a&gt;   ) </p>
				<p>//如何刷新另一个框架的页面用  <br />&lt;script language=JavaScript&gt; <br />   
parent.另一FrameID.location.reload(); <br />&lt;/script&gt; </p>
				<p>如果想关闭窗口时刷新或者想开窗时刷新的话，在&lt;body&gt;中调用以下语句即可。 </p>
				<p>&lt;body onload="opener.location.reload()"&gt; 开窗时刷新 <br />&lt;body 
onUnload="opener.location.reload()"&gt; 关闭时刷新 </p>
				<p>&lt;script language="javascript"&gt; 
<br />window.opener.document.location.reload() <br />&lt;/script&gt; </p>
		</div>
		<script type="text/javascript">
				<!--
google_ad_client = "pub-1076724771190722";
/* JE个人博客468x60 */
google_ad_slot = "5506163105";
google_ad_width = 468;
google_ad_height = 60;
//-->
		</script>
		<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
		</script>
		<script src="http://pagead2.googlesyndication.com/pagead/expansion_embed.js">
		</script>
		<script src="http://googleads.g.doubleclick.net/pagead/test_domain.js">
		</script>
		<script src="http://pagead2.googlesyndication.com/pagead/render_ads.js">
		</script>
		<script><![CDATA[oogle_protectAndRun("render_ads.js::google_render_ad", google_handleError, google_render_ad);]]&gt;</script>
<img src ="http://www.blogjava.net/jasmine214--love/aggbug/326909.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jasmine214--love/" target="_blank">幻海蓝梦</a> 2010-07-23 10:44 <a href="http://www.blogjava.net/jasmine214--love/archive/2010/07/23/326909.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Mootool-Ajax 写法（包括其他JS库的）</title><link>http://www.blogjava.net/jasmine214--love/archive/2010/07/20/326622.html</link><dc:creator>幻海蓝梦</dc:creator><author>幻海蓝梦</author><pubDate>Tue, 20 Jul 2010 03:47:00 GMT</pubDate><guid>http://www.blogjava.net/jasmine214--love/archive/2010/07/20/326622.html</guid><wfw:comment>http://www.blogjava.net/jasmine214--love/comments/326622.html</wfw:comment><comments>http://www.blogjava.net/jasmine214--love/archive/2010/07/20/326622.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jasmine214--love/comments/commentRss/326622.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jasmine214--love/services/trackbacks/326622.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 原文：http://www.masterboke.com/2009/01/12/javascritpprototypejquerymootools%E7%9A%84ajax%E4%BD%BF%E7%94%A8/		老是记不住各个框架的AJAX写法，今天总结了一下，发现了一些小不同。		Javascript及prototype写法：																				vi...&nbsp;&nbsp;<a href='http://www.blogjava.net/jasmine214--love/archive/2010/07/20/326622.html'>阅读全文</a><img src ="http://www.blogjava.net/jasmine214--love/aggbug/326622.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jasmine214--love/" target="_blank">幻海蓝梦</a> 2010-07-20 11:47 <a href="http://www.blogjava.net/jasmine214--love/archive/2010/07/20/326622.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MooTools  vs  Prototype 核心源码比较</title><link>http://www.blogjava.net/jasmine214--love/archive/2010/07/20/326620.html</link><dc:creator>幻海蓝梦</dc:creator><author>幻海蓝梦</author><pubDate>Tue, 20 Jul 2010 03:44:00 GMT</pubDate><guid>http://www.blogjava.net/jasmine214--love/archive/2010/07/20/326620.html</guid><wfw:comment>http://www.blogjava.net/jasmine214--love/comments/326620.html</wfw:comment><comments>http://www.blogjava.net/jasmine214--love/archive/2010/07/20/326620.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jasmine214--love/comments/commentRss/326620.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jasmine214--love/services/trackbacks/326620.html</trackback:ping><description><![CDATA[
		<p>原文：http://cssrainbow.cn/articles/resources/595.html<br /></p>
		<p>MooTools是一个简洁，模块化，面向对象的JavaScript框架。它能够帮助你更快，更简单地编写可扩展和兼容性强的 
JavaScript代码。</p>
		<p>Mootools跟prototypejs相类似，语法几乎一样。</p>
		<p>但它提供的功能要比prototypejs多，而且更强大。 比如增加了动画特效、拖放操作等等。</p>
		<p>建议大家可以用它来代替prototypejs。</p>
		<p>
				<strong>我为什么选择mootools,抛弃了prototype. (mootools 与 prototype 
核心代码分析)</strong>
		</p>
		<p>原文作者：<a href="http://fins.javaeye.com/">小胖儿的大城 </a></p>
		<p>原文链接地址：<a href="http://www.javaeye.com/topic/122425">http://www.javaeye.com/topic/122425</a></p>
		<h2>前言 
</h2>
		<p>最近喜欢上了mootools(相见恨晚啊),在公开表示了对他的偏爱. <br />很多朋友都问我为什么要移情别恋,其实理由还是蛮多的. </p>
		<p>
				<span id="more-595">
				</span>
		</p>
		<p>今天在这里打算列举出一部分.让更多的朋友能够了解一下mootools,也希望有更多的朋友喜欢上他. </p>
		<p>文章的标题注定了我会更多的讲述 mootools比prototype好的地方, 
<br />希望大家不要被我的误导,以为mootools处处都比prototype好. <br />mootools还是有一些不足的. </p>
		<p>本次对比针对 mootools 1.11版 和 prototype 1.51版, <br />只比较了一些核心代码,其他的工具方法,辅助函数不再本文讨论之内. 
</p>
		<p>开始前,再次重申一遍:我曾经很爱prototype,而且我将永远都会用"伟大"来形容它. </p>
		<p>好 下面对比正式开始 ( <br />mootools以下简称moo. <br />本文所引用的代码, 只是起到说明作用,不保证他们都可以被正确的执行. 
<br />同时为了使本文简洁一些,引入的 一些 moo和prototype的代码也只是片段或是伪代码. <br />) </p>
		<h2>一. 类机制<br /></h2>
		<p>js里的类实际上就是function. <br />如果不使用任何框架和组件,那么想创建一个自己类也不是难事,方法如下: </p>
		<div style="padding-bottom: 0px;" class="wp_syntax">
				<table>
						<tbody>
								<tr>
										<td class="line_numbers">
												<pre>1<br />2<br />3<br />4<br />5<br />6<br /></pre>
										</td>
										<td class="code">
												<pre style="font-family: monospace;" class="javascript">
														<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> PersonClass<span style="color: rgb(51, 153, 51);">=</span><span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 0, 102);">name</span><span style="color: rgb(51, 153, 51);">,</span>gender<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span><br /><span style="color: rgb(0, 0, 102); font-weight: bold;">this</span>.<span style="color: rgb(0, 0, 102);">name</span><span style="color: rgb(51, 153, 51);">=</span><span style="color: rgb(0, 0, 102);">name</span><span style="color: rgb(51, 153, 51);">;</span><br /><span style="color: rgb(0, 0, 102); font-weight: bold;">this</span>.<span style="color: rgb(102, 0, 102);">gender</span><span style="color: rgb(51, 153, 51);">=</span>gender<span style="color: rgb(51, 153, 51);">;</span><br /><span style="color: rgb(0, 0, 102);">alert</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">"My name is "</span><span style="color: rgb(51, 153, 51);">+</span><span style="color: rgb(0, 0, 102); font-weight: bold;">this</span>.<span style="color: rgb(0, 0, 102);">name</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span><br /><span style="color: rgb(0, 153, 0);">}</span><br /><span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> myGirlFriend<span style="color: rgb(51, 153, 51);">=</span><span style="color: rgb(0, 51, 102); font-weight: bold;">new</span> PersonClass<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'Vickey'</span><span style="color: rgb(51, 153, 51);">,</span><span style="color: rgb(51, 102, 204);">'female'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
										</td>
								</tr>
						</tbody>
				</table>
		</div>
		<p>执行 后, 会创建一个PersonClass类的实例myGirlFriend, 并执行function内的语句. 
<br />那些语句可以理解为是类的构造函数. </p>
		<p>
				<strong>Prototype</strong>
				<br />现在来看看在prototype的帮助下如何去定义这个类: </p>
		<div style="padding-bottom: 15px;" class="wp_syntax">
				<table>
						<tbody>
								<tr>
										<td class="line_numbers">
												<pre>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br /></pre>
										</td>
										<td class="code">
												<pre style="font-family: monospace;" class="javascript">
														<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> PersonClass <span style="color: rgb(51, 153, 51);">=</span><span style="color: rgb(0, 51, 102); font-weight: bold;">Class</span>.<span style="color: rgb(102, 0, 102);">create</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span><br /> PersonClass.<span style="color: rgb(102, 0, 102);">prototype</span>.<span style="color: rgb(102, 0, 102);">initialize</span><span style="color: rgb(51, 153, 51);">=</span><span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 0, 102);">name</span><span style="color: rgb(51, 153, 51);">,</span>gender<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span><br /><span style="color: rgb(0, 0, 102); font-weight: bold;">this</span>.<span style="color: rgb(0, 0, 102);">name</span><span style="color: rgb(51, 153, 51);">=</span><span style="color: rgb(0, 0, 102);">name</span><span style="color: rgb(51, 153, 51);">;</span><br /><span style="color: rgb(0, 0, 102); font-weight: bold;">this</span>.<span style="color: rgb(102, 0, 102);">gender</span><span style="color: rgb(51, 153, 51);">=</span>gender<span style="color: rgb(51, 153, 51);">;</span><br /><span style="color: rgb(0, 0, 102);">alert</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">"My name is "</span><span style="color: rgb(51, 153, 51);">+</span><span style="color: rgb(0, 0, 102); font-weight: bold;">this</span>.<span style="color: rgb(0, 0, 102);">name</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span><br /><span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(51, 153, 51);">;</span><br /><span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> myGirlFriend<span style="color: rgb(51, 153, 51);">=</span><span style="color: rgb(0, 51, 102); font-weight: bold;">new</span> PersonClass<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'Vickey'</span><span style="color: rgb(51, 153, 51);">,</span><span style="color: rgb(51, 102, 204);">'female'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span><span style="font-style: italic; color: rgb(0, 102, 0);">//如果想给类增加属性和方法时使用   </span><br /> PersonClass.<span style="color: rgb(102, 0, 102);">prototype</span>.<span style="color: rgb(102, 0, 102);">XXX</span><span style="color: rgb(51, 153, 51);">=</span>...<span style="color: rgb(51, 153, 51);">;</span><span style="font-style: italic; color: rgb(0, 102, 0);">//或者是使用 prototype提供的   </span><br /> Object.<span style="color: rgb(102, 0, 102);">extend</span><span style="color: rgb(0, 153, 0);">(</span>PersonClass.<span style="color: rgb(102, 0, 102);">prototype</span><span style="color: rgb(51, 153, 51);">,</span><span style="color: rgb(0, 153, 0);">{</span>...<span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
										</td>
								</tr>
						</tbody>
				</table>
		</div>
		<p>(关于Object.extend稍后在对比继承机制时再细说.) </p>
		<p>再来看看prototype是实现类机制的核心代码. </p>
		<div style="padding-bottom: 0px;" class="wp_syntax">
				<table>
						<tbody>
								<tr>
										<td class="line_numbers">
												<pre>1<br />2<br />3<br />4<br />5<br />6<br />7<br /></pre>
										</td>
										<td class="code">
												<pre style="font-family: monospace;" class="javascript">
														<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span>
														<span style="color: rgb(0, 51, 102); font-weight: bold;">Class</span>
														<span style="color: rgb(51, 153, 51);">=</span>
														<span style="color: rgb(0, 153, 0);">{</span>
														<br />    create<span style="color: rgb(51, 153, 51);">:</span><span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span><br /><span style="color: rgb(0, 0, 102); font-weight: bold;">return</span><span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span><br /><span style="color: rgb(0, 0, 102); font-weight: bold;">this</span>.<span style="color: rgb(102, 0, 102);">initialize</span>.<span style="color: rgb(102, 0, 102);">apply</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 0, 102); font-weight: bold;">this</span><span style="color: rgb(51, 153, 51);">,</span> arguments<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span><br /><span style="color: rgb(0, 153, 0);">}</span><br /><span style="color: rgb(0, 153, 0);">}</span><br /><span style="color: rgb(0, 153, 0);">}</span></pre>
										</td>
								</tr>
						</tbody>
				</table>
		</div>
		<p>通过看代码不难看出,prototype的Class实际上只是帮助我们抽象出了"类的构造函数". 
<br />而当我们在prototype的这种机制下进行类的定义时,实际上带来的好处是非常有限的. 
<br />prototype的Class只是从结构对我们的类进行了重新规划. 而这样的规划意义并不是很大. <br />而且prototype带有强制性,即, 
initialize 是必须要定义的. <br />实际上这里存在一个缺陷, Class应该提供一个默认的initialize(一个空函数就好), 
<br />或者是在create返回的function里进行必要的判断. 
<br />(prototype1.6的类机制变化比较大,但是还没仔细研究过,所以不敢轻易评论). </p>
		<p>
				<strong>Mootools</strong>
		</p>
		<p>现在来看看在 moo的帮助下如何去定义一个类: </p>
		<div style="padding-bottom: 0px;" class="wp_syntax">
				<table>
						<tbody>
								<tr>
										<td class="line_numbers">
												<pre>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br /></pre>
										</td>
										<td class="code">
												<pre style="font-family: monospace;" class="javascript">
														<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> PersonClass <span style="color: rgb(51, 153, 51);">=</span><span style="color: rgb(0, 51, 102); font-weight: bold;">new</span><span style="color: rgb(0, 51, 102); font-weight: bold;">Class</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">{</span><br />    initialize<span style="color: rgb(51, 153, 51);">:</span><span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 0, 102);">name</span><span style="color: rgb(51, 153, 51);">,</span>gender<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span><br /><span style="color: rgb(0, 0, 102); font-weight: bold;">this</span>.<span style="color: rgb(0, 0, 102);">name</span><span style="color: rgb(51, 153, 51);">=</span><span style="color: rgb(0, 0, 102);">name</span><span style="color: rgb(51, 153, 51);">;</span><br /><span style="color: rgb(0, 0, 102); font-weight: bold;">this</span>.<span style="color: rgb(102, 0, 102);">gender</span><span style="color: rgb(51, 153, 51);">=</span>gender<span style="color: rgb(51, 153, 51);">;</span><br /><span style="color: rgb(0, 0, 102);">alert</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">"My name is "</span><span style="color: rgb(51, 153, 51);">+</span><span style="color: rgb(0, 0, 102); font-weight: bold;">this</span>.<span style="color: rgb(0, 0, 102);">name</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span><br /><span style="color: rgb(0, 153, 0);">}</span><br /><span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span><br /><span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> myGirlFriend<span style="color: rgb(51, 153, 51);">=</span><span style="color: rgb(0, 51, 102); font-weight: bold;">new</span> PersonClass<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'Vickey'</span><span style="color: rgb(51, 153, 51);">,</span><span style="color: rgb(51, 102, 204);">'female'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
										</td>
								</tr>
						</tbody>
				</table>
		</div>
		<p>其中类的 initialize 不是必须的. <br />如果你想给 PersonClass 增加属性和方法,你可以在new Class的参数里直接以 
json方式定义. <br />也可以使用 如下方式 </p>
		<div style="padding-bottom: 0px;" class="wp_syntax">
				<table>
						<tbody>
								<tr>
										<td class="line_numbers">
												<pre>1<br />2<br />3<br />4<br />5<br />6<br />7<br /></pre>
										</td>
										<td class="code">
												<pre style="font-family: monospace;" class="javascript">PersonClass.<span style="color: rgb(102, 0, 102);">implement</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">{</span><br />    age<span style="color: rgb(51, 153, 51);">:</span><span style="color: rgb(204, 0, 0);">0</span><span style="color: rgb(51, 153, 51);">,</span><br />    getName <span style="color: rgb(51, 153, 51);">:</span><span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span><br /><span style="color: rgb(0, 0, 102); font-weight: bold;">return</span><span style="color: rgb(0, 0, 102); font-weight: bold;">this</span>.<span style="color: rgb(0, 0, 102);">name</span><span style="color: rgb(51, 153, 51);">;</span><br /><span style="color: rgb(0, 153, 0);">}</span><br /><span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(51, 153, 51);">,</span><span style="color: rgb(0, 153, 0);">{</span>...<span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(51, 153, 51);">,</span> ..... <br /><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
										</td>
								</tr>
						</tbody>
				</table>
		</div>
		<p>implement支持多个{}.关于implement稍后在对比继承机制时再细说. </p>
		<p>在来看一下moo类机制的一些核心代码. </p>
		<div style="padding-bottom: 15px;" class="wp_syntax">
				<table>
						<tbody>
								<tr>
										<td class="line_numbers">
												<pre>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br /></pre>
										</td>
										<td class="code">
												<pre style="font-family: monospace;" class="javascript">
														<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span>
														<span style="color: rgb(0, 51, 102); font-weight: bold;">Class</span>
														<span style="color: rgb(51, 153, 51);">=</span>
														<span style="color: rgb(0, 51, 102); font-weight: bold;">function</span>
														<span style="color: rgb(0, 153, 0);">(</span>properties<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span><br /><span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> klass <span style="color: rgb(51, 153, 51);">=</span><span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span><br /><span style="color: rgb(0, 0, 102); font-weight: bold;">return</span><span style="color: rgb(0, 153, 0);">(</span>arguments<span style="color: rgb(0, 153, 0);">[</span><span style="color: rgb(204, 0, 0);">0</span><span style="color: rgb(0, 153, 0);">]</span><span style="color: rgb(51, 153, 51);">!==</span><span style="color: rgb(0, 51, 102); font-weight: bold;">null</span><span style="color: rgb(51, 153, 51);">&amp;</span>amp<span style="color: rgb(51, 153, 51);">;&amp;</span>amp<span style="color: rgb(51, 153, 51);">;</span><span style="color: rgb(0, 0, 102); font-weight: bold;">this</span>.<span style="color: rgb(102, 0, 102);">initialize</span><span style="color: rgb(51, 153, 51);">&amp;</span>amp<span style="color: rgb(51, 153, 51);">;&amp;</span>amp<span style="color: rgb(51, 153, 51);">;</span> $type<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 0, 102); font-weight: bold;">this</span>.<span style="color: rgb(102, 0, 102);">initialize</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">==</span><br /><span style="color: rgb(51, 102, 204);">'function'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">?</span><span style="color: rgb(0, 0, 102); font-weight: bold;">this</span>.<span style="color: rgb(102, 0, 102);">initialize</span>.<span style="color: rgb(102, 0, 102);">apply</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 0, 102); font-weight: bold;">this</span><span style="color: rgb(51, 153, 51);">,</span> arguments<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">:</span><span style="color: rgb(0, 0, 102); font-weight: bold;">this</span><span style="color: rgb(51, 153, 51);">;</span><br /><span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(51, 153, 51);">;</span><br />    $extend<span style="color: rgb(0, 153, 0);">(</span>klass<span style="color: rgb(51, 153, 51);">,</span><span style="color: rgb(0, 0, 102); font-weight: bold;">this</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span><br />    klass.<span style="color: rgb(102, 0, 102);">prototype</span><span style="color: rgb(51, 153, 51);">=</span> properties<span style="color: rgb(51, 153, 51);">;</span><br />    klass.<span style="color: rgb(102, 0, 102);">constructor</span><span style="color: rgb(51, 153, 51);">=</span><span style="color: rgb(0, 51, 102); font-weight: bold;">Class</span><span style="color: rgb(51, 153, 51);">;</span><span style="color: rgb(0, 0, 102); font-weight: bold;">return</span> klass<span style="color: rgb(51, 153, 51);">;</span><br /> <br /><span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(51, 153, 51);">;</span><br /><span style="color: rgb(0, 51, 102); font-weight: bold;">Class</span>.<span style="color: rgb(102, 0, 102);">prototype</span><span style="color: rgb(51, 153, 51);">=</span><span style="color: rgb(0, 153, 0);">{</span><br />    extend<span style="color: rgb(51, 153, 51);">:</span><span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span>properties<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span><br /><span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> proto <span style="color: rgb(51, 153, 51);">=</span><span style="color: rgb(0, 51, 102); font-weight: bold;">new</span><span style="color: rgb(0, 0, 102); font-weight: bold;">this</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 51, 102); font-weight: bold;">null</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span><br /><span style="color: rgb(0, 0, 102); font-weight: bold;">for</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> property <span style="color: rgb(0, 0, 102); font-weight: bold;">in</span> properties<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span><br /><span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> pp <span style="color: rgb(51, 153, 51);">=</span> proto<span style="color: rgb(0, 153, 0);">[</span>property<span style="color: rgb(0, 153, 0);">]</span><span style="color: rgb(51, 153, 51);">;</span><br />           proto<span style="color: rgb(0, 153, 0);">[</span>property<span style="color: rgb(0, 153, 0);">]</span><span style="color: rgb(51, 153, 51);">=</span><span style="color: rgb(0, 51, 102); font-weight: bold;">Class</span>.<span style="color: rgb(102, 0, 102);">Merge</span><span style="color: rgb(0, 153, 0);">(</span>pp<span style="color: rgb(51, 153, 51);">,</span> properties<span style="color: rgb(0, 153, 0);">[</span>property<span style="color: rgb(0, 153, 0);">]</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span><br /><span style="color: rgb(0, 153, 0);">}</span><br /><span style="color: rgb(0, 0, 102); font-weight: bold;">return</span><span style="color: rgb(0, 51, 102); font-weight: bold;">new</span><span style="color: rgb(0, 51, 102); font-weight: bold;">Class</span><span style="color: rgb(0, 153, 0);">(</span>proto<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span><br /><span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(51, 153, 51);">,</span><br />    implement<span style="color: rgb(51, 153, 51);">:</span><span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span><br /><span style="color: rgb(0, 0, 102); font-weight: bold;">for</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> i <span style="color: rgb(51, 153, 51);">=</span><span style="color: rgb(204, 0, 0);">0</span><span style="color: rgb(51, 153, 51);">,</span> l <span style="color: rgb(51, 153, 51);">=</span> arguments.<span style="color: rgb(102, 0, 102);">length</span><span style="color: rgb(51, 153, 51);">;</span> i <span style="color: rgb(51, 153, 51);">&amp;</span>lt<span style="color: rgb(51, 153, 51);">;</span> l<span style="color: rgb(51, 153, 51);">;</span> i<span style="color: rgb(51, 153, 51);">++</span><span style="color: rgb(0, 153, 0);">)</span><br />            $extend<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 0, 102); font-weight: bold;">this</span>.<span style="color: rgb(102, 0, 102);">prototype</span><span style="color: rgb(51, 153, 51);">,</span> arguments<span style="color: rgb(0, 153, 0);">[</span>i<span style="color: rgb(0, 153, 0);">]</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span><br /><span style="color: rgb(0, 153, 0);">}</span><br /><span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(51, 153, 51);">;</span></pre>
										</td>
								</tr>
						</tbody>
				</table>
		</div>
		<p>代码的具体原理就不细说了.大家在moo的Class里看到了 extend 和implement,那下面就来具体说一说moo和prototype的 
继承机制吧. </p>
		<h2>二. 继承机制<br /></h2>
		<p>
				<strong>Prototype</strong>
				<br />prototype提供的继承很简单. </p>
		<div style="padding-bottom: 0px;" class="wp_syntax">
				<table>
						<tbody>
								<tr>
										<td class="line_numbers">
												<pre>1<br />2<br />3<br />4<br />5<br />6<br /></pre>
										</td>
										<td class="code">
												<pre style="font-family: monospace;" class="javascript">Object.<span style="color: rgb(102, 0, 102);">extend</span><span style="color: rgb(51, 153, 51);">=</span><span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span>destination<span style="color: rgb(51, 153, 51);">,</span> source<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span><br /><span style="color: rgb(0, 0, 102); font-weight: bold;">for</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> property <span style="color: rgb(0, 0, 102); font-weight: bold;">in</span> source<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span><br />     destination<span style="color: rgb(0, 153, 0);">[</span>property<span style="color: rgb(0, 153, 0);">]</span><span style="color: rgb(51, 153, 51);">=</span> source<span style="color: rgb(0, 153, 0);">[</span>property<span style="color: rgb(0, 153, 0);">]</span><span style="color: rgb(51, 153, 51);">;</span><br /><span style="color: rgb(0, 153, 0);">}</span><br /><span style="color: rgb(0, 0, 102); font-weight: bold;">return</span> destination<span style="color: rgb(51, 153, 51);">;</span><br /><span style="color: rgb(0, 153, 0);">}</span></pre>
										</td>
								</tr>
						</tbody>
				</table>
		</div>
		<p>他只是把source里的属性赋给destination,同时会覆盖destination里的同名属性. 
<br />他可以用于对象,也可以用于类,当要实现类的继承时,destination要使用 MySubClass.prototype. </p>
		<p>prototype的继承机制可以说是非常薄弱的. </p>
		<p>
				<strong>Mootools</strong>
		</p>
		<p>moo提供了三种继承机制: </p>
		<p>首先他也提供了简单的继承机制: <br />Objcet.extend (注意,不是上面代码中 Class 里的 extend) <br />他的代码如下 
</p>
		<div style="padding-bottom: 0px;" class="wp_syntax">
				<table>
						<tbody>
								<tr>
										<td class="line_numbers">
												<pre>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br /></pre>
										</td>
										<td class="code">
												<pre style="font-family: monospace;" class="javascript">
														<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> $extend <span style="color: rgb(51, 153, 51);">=</span><span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span><br /><span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> args <span style="color: rgb(51, 153, 51);">=</span> arguments<span style="color: rgb(51, 153, 51);">;</span><br /><span style="color: rgb(0, 0, 102); font-weight: bold;">if</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 153, 51);">!</span>args<span style="color: rgb(0, 153, 0);">[</span><span style="color: rgb(204, 0, 0);">1</span><span style="color: rgb(0, 153, 0);">]</span><span style="color: rgb(0, 153, 0);">)</span> args <span style="color: rgb(51, 153, 51);">=</span><span style="color: rgb(0, 153, 0);">[</span><span style="color: rgb(0, 0, 102); font-weight: bold;">this</span><span style="color: rgb(51, 153, 51);">,</span> args<span style="color: rgb(0, 153, 0);">[</span><span style="color: rgb(204, 0, 0);">0</span><span style="color: rgb(0, 153, 0);">]</span><span style="color: rgb(0, 153, 0);">]</span><span style="color: rgb(51, 153, 51);">;</span><br /> <br /><span style="color: rgb(0, 0, 102); font-weight: bold;">for</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> property <span style="color: rgb(0, 0, 102); font-weight: bold;">in</span> args<span style="color: rgb(0, 153, 0);">[</span><span style="color: rgb(204, 0, 0);">1</span><span style="color: rgb(0, 153, 0);">]</span><span style="color: rgb(0, 153, 0);">)</span><br />      args<span style="color: rgb(0, 153, 0);">[</span><span style="color: rgb(204, 0, 0);">0</span><span style="color: rgb(0, 153, 0);">]</span><span style="color: rgb(0, 153, 0);">[</span>property<span style="color: rgb(0, 153, 0);">]</span><span style="color: rgb(51, 153, 51);">=</span> args<span style="color: rgb(0, 153, 0);">[</span><span style="color: rgb(204, 0, 0);">1</span><span style="color: rgb(0, 153, 0);">]</span><span style="color: rgb(0, 153, 0);">[</span>property<span style="color: rgb(0, 153, 0);">]</span><span style="color: rgb(51, 153, 51);">;</span><br /> <br /><span style="color: rgb(0, 0, 102); font-weight: bold;">return</span> args<span style="color: rgb(0, 153, 0);">[</span><span style="color: rgb(204, 0, 0);">0</span><span style="color: rgb(0, 153, 0);">]</span><span style="color: rgb(51, 153, 51);">;</span><br /><span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(51, 153, 51);">;</span><br />Object.<span style="color: rgb(102, 0, 102);">extend</span><span style="color: rgb(51, 153, 51);">=</span> $extend<span style="color: rgb(51, 153, 51);">;</span></pre>
										</td>
								</tr>
						</tbody>
				</table>
		</div>
		<p>他的使用方法和 prototype 完全一样. </p>
		<p>但是大家可能注意到了 这句 if (!args[1]) args = [this, args[0]]; 这句的纯在使得下面的代码写法成为可能. </p>
		<div style="padding-bottom: 0px;" class="wp_syntax">
				<table>
						<tbody>
								<tr>
										<td class="line_numbers">
												<pre>1<br />2<br />3<br />4<br />5<br /></pre>
										</td>
										<td class="code">
												<pre style="font-family: monospace;" class="javascript">
														<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> myObjcet<span style="color: rgb(51, 153, 51);">=</span><span style="color: rgb(0, 153, 0);">{</span>....<span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(51, 153, 51);">;</span><br /> myObjcet.<span style="color: rgb(102, 0, 102);">extend</span><span style="color: rgb(51, 153, 51);">=</span>$extend<span style="color: rgb(51, 153, 51);">;</span><br /> myObjcet.<span style="color: rgb(102, 0, 102);">extend</span><span style="color: rgb(0, 153, 0);">(</span>objA<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span><br /> myObjcet.<span style="color: rgb(102, 0, 102);">extend</span><span style="color: rgb(0, 153, 0);">(</span>objB<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span><br /> myObjcet.<span style="color: rgb(102, 0, 102);">extend</span><span style="color: rgb(0, 153, 0);">(</span>objC<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
										</td>
								</tr>
						</tbody>
				</table>
		</div>
		<p>简单的一句话,让extend的用法增加了更多的灵活性,不得不赞一个了!!! </p>
		<p>下面说说重点, moo的类里的extend和 implement <br />先说 implement,之前已经说了一些了 </p>
		<div style="padding-bottom: 0px;" class="wp_syntax">
				<table>
						<tbody>
								<tr>
										<td class="line_numbers">
												<pre>1<br />2<br />3<br />4<br /></pre>
										</td>
										<td class="code">
												<pre style="font-family: monospace;" class="javascript">
														<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> MyClassA <span style="color: rgb(51, 153, 51);">=</span><span style="color: rgb(0, 51, 102); font-weight: bold;">new</span><span style="color: rgb(0, 51, 102); font-weight: bold;">Class</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span><br />MyClassA.<span style="color: rgb(102, 0, 102);">implement</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">{</span><br />   methodA <span style="color: rgb(51, 153, 51);">:</span><span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span>... <span style="color: rgb(0, 153, 0);">}</span><br /><span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
										</td>
								</tr>
						</tbody>
				</table>
		</div>
		<p>执行后 MyClassA 将拥有 methodA. </p>
		<p>implement用来向类中添加属性和方法(会覆盖同名属性和方法),相当于 <br />Object.extend (MyClassA.prototype , 
{… } ) <br />但是Object.extend 不支持多个source,implement可以,示例如下: <br />MyClassA.implement( 
objA , objB, objC … ); </p>
		<p>下面来看看moo的Class.extend. <br />moo的Class.extend才是我们期待的真正的"类继承",看一下官方的示例 </p>
		<div style="padding-bottom: 15px;" class="wp_syntax">
				<table>
						<tbody>
								<tr>
										<td class="line_numbers">
												<pre>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br /></pre>
										</td>
										<td class="code">
												<pre style="font-family: monospace;" class="javascript">
														<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> Animal <span style="color: rgb(51, 153, 51);">=</span><span style="color: rgb(0, 51, 102); font-weight: bold;">new</span><span style="color: rgb(0, 51, 102); font-weight: bold;">Class</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">{</span><br />    initialize<span style="color: rgb(51, 153, 51);">:</span><span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span>age<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span><br /><span style="color: rgb(0, 0, 102); font-weight: bold;">this</span>.<span style="color: rgb(102, 0, 102);">age</span><span style="color: rgb(51, 153, 51);">=</span> age<span style="color: rgb(51, 153, 51);">;</span><br /><span style="color: rgb(0, 153, 0);">}</span><br /><span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span><br /><span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> Cat <span style="color: rgb(51, 153, 51);">=</span> Animal.<span style="color: rgb(102, 0, 102);">extend</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">{</span><br />    initialize<span style="color: rgb(51, 153, 51);">:</span><span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 0, 102);">name</span><span style="color: rgb(51, 153, 51);">,</span> age<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span><br /><span style="color: rgb(0, 0, 102); font-weight: bold;">this</span>.<span style="color: rgb(102, 0, 102);">parent</span><span style="color: rgb(0, 153, 0);">(</span>age<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span><span style="font-style: italic; color: rgb(0, 102, 0);">//will call the previous initialize;  			</span><br /><span style="color: rgb(0, 0, 102); font-weight: bold;">this</span>.<span style="color: rgb(0, 0, 102);">name</span><span style="color: rgb(51, 153, 51);">=</span><span style="color: rgb(0, 0, 102);">name</span><span style="color: rgb(51, 153, 51);">;</span><br /><span style="color: rgb(0, 153, 0);">}</span><br /><span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
										</td>
								</tr>
						</tbody>
				</table>
		</div>
		<p>看那个<strong>parent()</strong> !!!! <br />通过moo的Class.extend实现的继承提供一个关键的方法 
parent(). <br />使用他你可以调用父类中的同名方法,好像java里的super一样. <br />这个示例已经可以说明一切了. </p>
		<p>关于prototype和moo的类机制和继承机制的对比就到这里,孰优孰劣大家心里应该有数了吧. </p>
		<h2>三.抽象对象<br /></h2>
		<p>再来看一看"抽象对象". 这个虽然对于开发人员来说用处不大,但还是对比一下吧,小细节也能看出作者的用心. </p>
		<p>
				<strong>Prototype</strong>
				<br />prototype的抽象对象很简单 <br />var Abstract = new 
Object(); <br />具体的意义不大. </p>
		<p>
				<strong>Mootools</strong>
				<br />moo的的抽象对象相对更完善一些. </p>
		<div style="padding-bottom: 0px;" class="wp_syntax">
				<table>
						<tbody>
								<tr>
										<td class="line_numbers">
												<pre>1<br />2<br />3<br />4<br />5<br /></pre>
										</td>
										<td class="code">
												<pre style="font-family: monospace;" class="javascript">
														<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> Abstract <span style="color: rgb(51, 153, 51);">=</span><span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span>obj<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span><br />    obj <span style="color: rgb(51, 153, 51);">=</span> obj <span style="color: rgb(51, 153, 51);">||</span><span style="color: rgb(0, 153, 0);">{</span><span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(51, 153, 51);">;</span><br />    obj.<span style="color: rgb(102, 0, 102);">extend</span><span style="color: rgb(51, 153, 51);">=</span> $extend<span style="color: rgb(51, 153, 51);">;</span><br /><span style="color: rgb(0, 0, 102); font-weight: bold;">return</span> obj<span style="color: rgb(51, 153, 51);">;</span><br /><span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(51, 153, 51);">;</span></pre>
										</td>
								</tr>
						</tbody>
				</table>
		</div>
		<p>支持自定义抽象(以参数形式传入),同时会为抽象对象自动添加extend方法. </p>
		<h2>四. 关于 $()<br /></h2>
		<p>
				<strong>Prototype</strong>
				<br />prototype的$大家都比较熟悉了, 工作原理就是 
<br />通过id取得一个页面元素(或者直接传入一个页面元素对象),然后给他增加一些prototype提供的方法和属性,来方便开发人员对页面元素的使用. </p>
		<p>
				<strong>Mootools</strong>
				<br />moo在这方面做的差不多. <br />不同的主要有两点, 
首先moo为页面元素增加的方法和属性与prototype的不同(这个稍后会介绍),另外一个不同是moo的$兼具了对象管理的一个功能. <br />他引入了一个  
Garbage 类, 来对页面元素进行一个统一的管理和回收(主要是回收). <br />可以更好的减少js(或浏览器)造成的内存泄露等问题. </p>
		<p>具体的大家可以看一下代码,在这里就不详细说明了. </p>
		<h2>五.关于 Array Enumerable Hash 
</h2>
		<p>prototype 和 moo 都提供了集合迭代方法 (each) <br />这个网上已经有一篇不错的对比文章,我就不在这里重复了 
<br />http://blog.fackweb.cn/?p=50. </p>
		<p>moo的 forEach/each方法: function(fn, bind){..} <br />那个bind 结合代码 和 上面那篇文章, 
大家应该可以很好的看出来prototype和moo的不同与优劣. </p>
		<p>prototype里面有 Enumerable 的概念,moo没有. <br />但是我个人一直觉得 Enumerable 比较鸡肋. 
<br />在实际开发中,很少使用. <br />Enumerable的功能完全可以 用普通json对象 或者是 Hash来实现. 
<br />moo的作者也许同样这么认为.所以 不再 设置一个 鸡肋的 Enumerable类. <br />但是请大家放心, Enumerable 能做的事情, 
在moo里也能完成. </p>
		<p>可以理解为 </p>
		<p>moo的 Array +  Hash +{} 完全可以接替 prototype的 Array + Enumerable + Hash +{} 
<br />当然对于一些工具方法两者提供的都不太一样,不好比较,但是那些方法都是附属品. <br />我们完全可以自己来实现,所以不在这次的比较范畴之内. </p>
		<h2>六. 关于 Element<br /></h2>
		<p>两者的 Element 从作用上看类似.都是一种对页面元素的包装,为页面元素添加了一些诸如 addEvent remove style之类的方法. 
<br />但是大家通过看代码可以发现 moo的实现明显更简洁 更OO. </p>
		<p>同时还有一个关键的不同,prototype又提取出了一个Form对象,里面包含了很多表单相关的方法. <br />同时还衍生出了 
serializeElements Method 等等很多类和方法,代码瞬间变得异常复杂和难以琢磨. </p>
		<p>而moo中没有Form对象,在moo中,Form本身就是一个Element 他没什么特别的,这样的思想类似components模式 
<br />普通Element具备的方法 Form 都应该具备, Form具备的方法 Element也都应该包含.form 和 其他页面元素没什么不同. 
<br />form元素只是一个包含了 input select textarea等子元素,同时拥有action target等属性而已. <br />一个div 
一个span 一个td… 同样可以包含input select textarea子元素,同样可以拥有.action target属性. 
<br />浏览器处理他们的方式可能不同,但是在moo面前,大家完全平等. </p>
		<p>其实prototype里 form和普通页面元素几乎也是平等的,但是问题就是,既然是平等的,又何必硬生生的造出Form以及那么多的衍生物呢? </p>
		<h2>七.Ajax<br /></h2>
		<p>
				<strong>Prototype</strong>
				<br />prototype的ajax实现主要是靠一个 Ajax类 
来实现.(但是这个类形同虚设,大家更多的是和 Ajax.Request 类打交道. </p>
		<p>先来看一个prototype下一个简单的ajax提交实例: </p>
		<div style="padding-bottom: 0px;" class="wp_syntax">
				<table>
						<tbody>
								<tr>
										<td class="line_numbers">
												<pre>1<br />2<br />3<br />4<br />5<br />6<br />7<br /></pre>
										</td>
										<td class="code">
												<pre style="font-family: monospace;" class="javascript">
														<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> myAjax <span style="color: rgb(51, 153, 51);">=</span><span style="color: rgb(0, 51, 102); font-weight: bold;">new</span> Ajax.<span style="color: rgb(102, 0, 102);">Request</span><span style="color: rgb(0, 153, 0);">(</span><br />     url<span style="color: rgb(51, 153, 51);">,</span><br /><span style="color: rgb(0, 153, 0);">{</span><br />     parameters<span style="color: rgb(51, 153, 51);">:</span> myData <span style="color: rgb(51, 153, 51);">,</span><br />     onComplete<span style="color: rgb(51, 153, 51);">:</span> callBackFunction <br /><span style="color: rgb(0, 153, 0);">}</span><br /><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
										</td>
								</tr>
						</tbody>
				</table>
		</div>
		<p>其中 myData 可以是字符 : "name=Vickey&amp;gender=female"; <br />也可以是对象 { name : 
Vickey, gender : female } </p>
		<p>
				<strong>Mootools</strong>
				<br />moo首先在将ajax机制分层.提取出了一个基类:XHR. <br />目前XHR有两个子类, 
一个是 Ajax ,另一个是Json.Remote. </p>
		<p>在moo下一个简单的ajax提交实例: </p>
		<div style="padding-bottom: 0px;" class="wp_syntax">
				<table>
						<tbody>
								<tr>
										<td class="line_numbers">
												<pre>1<br />2<br />3<br />4<br />5<br />6<br />7<br /></pre>
										</td>
										<td class="code">
												<pre style="font-family: monospace;" class="javascript">
														<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> myAjax <span style="color: rgb(51, 153, 51);">=</span><span style="color: rgb(0, 51, 102); font-weight: bold;">new</span> Ajax<span style="color: rgb(0, 153, 0);">(</span><br />    url<span style="color: rgb(51, 153, 51);">,</span><br /><span style="color: rgb(0, 153, 0);">{</span><br />     data <span style="color: rgb(51, 153, 51);">:</span> myData <span style="color: rgb(51, 153, 51);">,</span><br />     onComplete<span style="color: rgb(51, 153, 51);">:</span> callBackFunction  <br /><span style="color: rgb(0, 153, 0);">}</span><br /><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">request</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
										</td>
								</tr>
						</tbody>
				</table>
		</div>
		<p>大家可以看到request成为了Ajax对象的一个方法,这样的设计显然是更合理更自然 也更OO的. </p>
		<p>而且关键的一点是,你可以提前创建好你需要的ajax对象.在需要发出请求时再发出请求. </p>
		<div style="padding-bottom: 0px;" class="wp_syntax">
				<table>
						<tbody>
								<tr>
										<td class="line_numbers">
												<pre>1<br />2<br />3<br /></pre>
										</td>
										<td class="code">
												<pre style="font-family: monospace;" class="javascript">
														<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> myAjax <span style="color: rgb(51, 153, 51);">=</span><span style="color: rgb(0, 51, 102); font-weight: bold;">new</span> Ajax<span style="color: rgb(0, 153, 0);">(</span>...<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span><br />.....   <br /><span style="color: rgb(102, 0, 102);">myAjax</span>.<span style="color: rgb(102, 0, 102);">request</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
										</td>
								</tr>
						</tbody>
				</table>
		</div>
		<p>同时还有一个重要特性, request是支持参数的,这个参数就是你要提交的数据. </p>
		<p>也就是说,你可以在new Ajax时不指定数据或者指定一个默认数据. <br />在提交的时候可以提交另一个data.如. </p>
		<p>myAjax.request(yourData); </p>
		<p>其中data可以是字符串,可以是对象, 也可以是一个页面元素. </p>
		<p>要用ajax提交一个form 或者一个 div下的所有表单元素,只是改变一下 myData. <br />var myData= $("formID");  
// var myData= $("divID"); <br />然后就和普通的ajax提交完全一样了. </p>
		<p>myAjax.request(myData); </p>
		<p>当然还有更oo的方式 : <br />myData.send({onComplete: callBackFunction }); </p>
		<p>用后一种方式的时候要保证提交的元素有action属性,没有你就赋一个 myData.action=url. 
<br />prototype里如何实现这一功能呢?? </p>
		<p>
				<strong>Prototype</strong>
				<br />Form.request($("formID") ,{ onComplete: 
callBackFunction }); </p>
		<p>当然prototype里也可以类似moo的做法 , 只要让myData=$("formID").serialize(true) 就可以了. 
<br />但是这一个小小的不同,反映出了设计上的差距. </p>
		<p>
				<strong>Mootools</strong>
				<br />moo的Json.Remote类,简单,但是很实用: </p>
		<div style="padding-bottom: 0px;" class="wp_syntax">
				<table>
						<tbody>
								<tr>
										<td class="line_numbers">
												<pre>1<br />2<br />3<br />4<br />5<br />6<br /></pre>
										</td>
										<td class="code">
												<pre style="font-family: monospace;" class="javascript">
														<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> jSonRemoteRequest <span style="color: rgb(51, 153, 51);">=</span><span style="color: rgb(0, 51, 102); font-weight: bold;">new</span> Json.<span style="color: rgb(102, 0, 102);">Remote</span><span style="color: rgb(0, 153, 0);">(</span><br />  url <span style="color: rgb(51, 153, 51);">,</span><br /><span style="color: rgb(0, 153, 0);">{</span><br />   onComplete<span style="color: rgb(51, 153, 51);">:</span>callBackFunction <br /><span style="color: rgb(0, 153, 0);">}</span><br /><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">send</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">{</span><span style="color: rgb(0, 0, 102);">name</span><span style="color: rgb(51, 153, 51);">:</span><span style="color: rgb(51, 102, 204);">'Vickey'</span><span style="color: rgb(51, 153, 51);">,</span>gender<span style="color: rgb(51, 153, 51);">:</span><span style="color: rgb(51, 102, 204);">'female'</span><span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
										</td>
								</tr>
						</tbody>
				</table>
		</div>
		<p>这个类和Ajax类的本质区别是, <br />他提交的是一个序列化后的 json字符串("{name: ‘Vickey’,gender: ‘female’ } 
"),而不是把 json对象转化成QueryString ("name=Vickey&amp;gender=female"); </p>
		<h2>结束语<br /></h2>
		<p>写这篇文章不是要批评prototype,以我现在的水平还没那个资格. <br />只是和mootools对比后, 
prototype在设计上的不足立刻就显现了出来. </p>
		<p>虽然prototype新版本变化很多,很多我上面提到的一些不足都改正了,而且也加入了很多以前不具备的新的特性. 
<br />但是prototype现在的发展停留在:"修补不足,增加功能"的阶段,而没有从设计上进行深层次的重构,所以我不认为他在mootools面前有足够的底气. 
</p>
		<p>至于jquery我没有深入研究过,但是它的设计觉得完全是prototype风格的, 注意,我说的是设计风格,而不是代码风格. 
<br />代码上他可能写的更精妙,更有趣,但是设计上依然是prototype风格:薄弱的类机制,靠简单的extend支撑起整个系统. 
<br />JQuery在很多方面很出色,但是归根结底他和prototype走在一条路上,只是在有些方面他走的更快. </p>
		<p>mootools并非完美无缺,但是至少现在他美的地方比prototype更多,缺的地方比prototype更少. </p>
		<p>所以,我选择mootools. 你呢?? </p>
		<p>不要听评论,不要看介绍, 只要看看他们的源代码, 同时动手用他们写些东西, 你的答案自然会浮现出来. </p>
<img src ="http://www.blogjava.net/jasmine214--love/aggbug/326620.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jasmine214--love/" target="_blank">幻海蓝梦</a> 2010-07-20 11:44 <a href="http://www.blogjava.net/jasmine214--love/archive/2010/07/20/326620.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JS --Hash/Array--（遍历）each方法</title><link>http://www.blogjava.net/jasmine214--love/archive/2010/07/20/326608.html</link><dc:creator>幻海蓝梦</dc:creator><author>幻海蓝梦</author><pubDate>Tue, 20 Jul 2010 02:37:00 GMT</pubDate><guid>http://www.blogjava.net/jasmine214--love/archive/2010/07/20/326608.html</guid><wfw:comment>http://www.blogjava.net/jasmine214--love/comments/326608.html</wfw:comment><comments>http://www.blogjava.net/jasmine214--love/archive/2010/07/20/326608.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jasmine214--love/comments/commentRss/326608.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jasmine214--love/services/trackbacks/326608.html</trackback:ping><description><![CDATA[
		<p>原文：http://www.02web.com/hublog/article.asp?id=344<br /></p>
		<p>数组在平时越用越多，可惜它自身没有一个遍历的方法</p>
		<p>下面这样是最简单的一个简历方法，直接设置数组对象的</p>
		<div class="codeText">
				<div class="codeHead">JavaScript代码</div>
				<ol class="dp-c">
						<li class="alt">
								<span>
										<span>Array.prototype.each = </span>
										<span class="keyword">function</span>
										<span>( callback ){  </span>
								</span>
						</li>
						<li>
								<span>
										<span class="keyword">for</span>
										<span>( </span>
										<span class="keyword">var</span>
										<span> i = 0 ,j = </span>
										<span class="keyword">this</span>
										<span>.length ; i &lt; j ; i++ ){  </span>
								</span>
						</li>
						<li class="alt">
								<span>    callback.call(<span class="keyword"> this</span><span>, 
</span><span class="keyword">this</span><span>[i], i );  </span></span>
						</li>
						<li>
								<span>    }     </span>
						</li>
						<li class="alt">
								<span> }  </span>
						</li>
				</ol>
		</div>
		<p>上面的可以这样使用</p>
		<div class="codeText">
				<div class="codeHead">JavaScript代码</div>
				<ol class="dp-c">
						<li class="alt">
								<span>
										<span class="comment">//遍历一个数组如果是它是数组，就把它乘以10再输出</span>
										<span>  </span>
								</span>
						</li>
						<li>
								<span>
										<span class="keyword">var</span>
										<span> testArray = [1,2,</span>
										<span class="string">'我'</span>
										<span>,</span>
										<span class="string">'不'</span>
										<span>,3,5];  </span>
								</span>
						</li>
						<li class="alt">
								<span>testArray.each(<span class="keyword"> function</span><span>( 
value ){  </span></span>
						</li>
						<li>
								<span>    <span class="keyword">typeof</span><span> value == </span><span class="string">'number'</span><span> ? alert( value *10 ):</span><span class="keyword">null</span><span>;  </span></span>
						</li>
						<li class="alt">
								<span>})  </span>
						</li>
				</ol>
		</div>
		<p>改变一个数组的内容</p>
		<div class="codeText">
				<div class="codeHead">JavaScript代码</div>
				<ol class="dp-c">
						<li class="alt">
								<span>
										<span class="comment">//遍历每个元素并且在它的前面加上chinese</span>
										<span>  </span>
								</span>
						</li>
						<li>
								<span>
										<span class="keyword">var</span>
										<span> testArray = [1,2,</span>
										<span class="string">'我'</span>
										<span>,</span>
										<span class="string">'不'</span>
										<span>,3,5];  </span>
								</span>
						</li>
						<li class="alt">
								<span>    testArray.each(<span class="keyword"> 
function</span><span>( value, index ){  </span></span>
						</li>
						<li>
								<span>        <span class="keyword">this</span><span>[index] = </span><span class="string">'chinese'</span><span> + value;  </span></span>
						</li>
						<li class="alt">
								<span>})  </span>
						</li>
						<li>
								<span>  </span>
						</li>
						<li class="alt">
								<span>testArray.each(<span class="keyword"> function</span><span>( v 
){  </span></span>
						</li>
						<li>
								<span>    alert(v);  </span>
						</li>
						<li class="alt">
								<span>})  </span>
						</li>
				</ol>
		</div>
		<p>如果是一个多维数组呢？不停地调each就行了，下面修改each方法</p>
		<div class="codeText">
				<div class="codeHead">JavaScript代码</div>
				<ol class="dp-c">
						<li class="alt">
								<span>
										<span class="comment">//首先引入一个isArray函数，这个函数非常有用，必备~</span>
										<span>  </span>
								</span>
						</li>
						<li>
								<span>isArray = <span class="keyword">function</span><span>( arrayObj 
){  </span></span>
						</li>
						<li class="alt">
								<span>    <span class="keyword">return</span><span> arrayObj &amp;&amp;  </span></span>
						</li>
						<li>
								<span>       <span class="keyword">typeof</span><span> arrayObj === </span><span class="string">'object'</span><span> &amp;&amp;  </span></span>
						</li>
						<li class="alt">
								<span>       <span class="keyword">typeof</span><span> arrayObj.length === </span><span class="string">'number'</span><span> &amp;&amp;  </span></span>
						</li>
						<li>
								<span>       <span class="keyword">typeof</span><span> arrayObj.splice === </span><span class="string">'function'</span><span>   </span></span>
						</li>
						<li class="alt">
								<span>    }  </span>
						</li>
						<li>
								<span>  </span>
						</li>
						<li class="alt">
								<span>Array.prototype.each = <span class="keyword">function</span><span>( callback){  </span></span>
						</li>
						<li>
								<span>  <span class="keyword">for</span><span>( </span><span class="keyword">var</span><span> i = 0 ,j = </span><span class="keyword">this</span><span>.length ; i &lt; j ; i++){   </span></span>
						</li>
						<li>
								<span>
										<span>   isArray( </span>
										<span class="keyword">this</span>
										<span>[i] 
)?</span>
										<span class="keyword">this</span>
										<span>[i].each( callback ):  
<br /></span>
								</span>
								<span>       callback.call( <span class="keyword">this</span><span>, </span><span class="keyword">this</span><span>[i], i );  </span></span>
						</li>
						<li>
								<span>   }      </span>
						</li>
						<li class="alt">
								<span>}  </span>
						</li>
				</ol>
		</div>
		<p>下面可以试验一下</p>
		<div class="codeText">
				<div class="codeHead">JavaScript代码</div>
				<ol class="dp-c">
						<li class="alt">
								<span>
										<span class="keyword">var</span>
										<span> testArray = [1,2,[</span>
										<span class="string">'sdf'</span>
										<span>,</span>
										<span class="string">'2sdf'</span>
										<span>],[12313,[[34,45]]]];  </span>
								</span>
						</li>
						<li>
								<span>testArray.each(<span class="keyword">function</span><span>(v){  </span></span>
						</li>
						<li class="alt">
								<span>    alert(v); <span class="comment">//输出1,2,sdf,2sdf,12313,34,45</span><span>  </span></span>
						</li>
						<li>
								<span>})  </span>
						</li>
				</ol>
		</div>
<img src ="http://www.blogjava.net/jasmine214--love/aggbug/326608.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jasmine214--love/" target="_blank">幻海蓝梦</a> 2010-07-20 10:37 <a href="http://www.blogjava.net/jasmine214--love/archive/2010/07/20/326608.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Mootools ---DOM操作</title><link>http://www.blogjava.net/jasmine214--love/archive/2010/07/19/326562.html</link><dc:creator>幻海蓝梦</dc:creator><author>幻海蓝梦</author><pubDate>Mon, 19 Jul 2010 11:47:00 GMT</pubDate><guid>http://www.blogjava.net/jasmine214--love/archive/2010/07/19/326562.html</guid><wfw:comment>http://www.blogjava.net/jasmine214--love/comments/326562.html</wfw:comment><comments>http://www.blogjava.net/jasmine214--love/archive/2010/07/19/326562.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jasmine214--love/comments/commentRss/326562.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jasmine214--love/services/trackbacks/326562.html</trackback:ping><description><![CDATA[
		<font size="2">原文：http://www.bianceng.cn/webkf/mootools/201007/18103_2.htm</font>
		<br />Mootools DOM操作<br />Ajax开发中，做的最多的就是对DOM的操作， 增删节点，设置样式等等等等，如果按照常规的javascript开发的话，工作量大的足以搞的人头晕目眩。所以基本上每个javascript框架都会在DOM操作上花比较大的功夫，对我们使用频率最频繁的功能操作进行封装(其中包括修正各个浏览器之间的方法差异问题)，让我们的开发事半功倍。<br /><br />mootools也提供了一套非常出色的解决方案，并且更OO。<br /><br />首先，之前，通常我们创建DOM节点，都使用document.createElement()方法，而我们看mootools式的创建方法：<br /><br />js 代码<br /><br />1.var myInput = new Element('input');<br />非常的优雅啊。<br /><br />方法： $<br /><br />美元，又见美元！<br /><br />$基本上成了javascript框架中的标志性建筑了，短小精悍的语法使我们的代码看起来舒服不少，也使我们的js文件瘦了下身。<br /><br />时下，各大javascript框架中都会提供$这个方法，基本上它都有按照id来获取DOM元素的功能，但各个框架在具体诠释它的时候各有不同的手法，功能的强弱上也不一样。比如prototype.js中的$可以根据给出的一个或多个id来获取这些DOM元素，而jQuery里的$更是非常强，可以按照CSS选择器的语法来获取DOM元素(其实mootools和prototype也是可以的，只不过是$$这个方法)。<br /><br />这是mootools中的$()的最常用用法，它返回id为my_div的元素，并且这个元素被加上了所有mootools所进行的扩展。<br /><br />js 代码<br /><br />1.var mydiv = $('my_div');<br />如果你使用document.getElmentById来获取的元素，则此时这个元素将没有包含mootools的任何扩展，你可以把这个元素对象作为参数调用$方法，之后返回的元素将被加上mootools的扩展。<br /><br />js 代码<br /><br />1.var mydiv_noextend = document.getElementById('my_div');<br />2.var mydiv_extended = $(mydiv_noextend);<br />方法： $$<br /><br />功能：通过CSS选择器语法来获取DOM元素(需要mootools的Dom.js模块的支持)<br /><br />js 代码<br /><br />1.$$('a'); //获取页面上所有超链接标签对象<br />2.$$('a','b'); //获取页面上所有超链接标签和粗体标签<br />3.$$('#my_div'); //获取id为my_div的元素<br />4.$$('#my_div a.myClass'); //获取id为my_div的元素子元素，并且这些自元素是的所有class="myClass"的标签<br /><br />=================================Element扩展方法=====================================<br /><br />方法： inject<br /><br />作用：可以用来把当前元素插入到指定元素之前(before)，之中(inside)，之后(after)。<br /><br />java 代码<br /><br />1.$('myDiv3').inject($('myDiv1'),'before'); //把myDiv3插入到myDiv1之前<br /><br />方法： injectBefore<br /><br />作用：可以用来把当前元素插入到指定元素之前 (即相当于参数为'before'的inject方法)<br /><br />js 代码<br /><br />1.$('myDiv3').injectBefore($('myDiv1'));<br /><br />方法：injectAfter<br /><br />作用：可以用来把当前元素插入到指定元素之后 (即相当于参数为'after'的inject方法)<br /><br />js 代码<br /><br />1.$('myDiv3').injectAfter($('myDiv1'));<br /><br />方法：injectInside<br /><br />作用：可以用来把当前元素插入到指定元素之中 (即相当于参数为'inside'的inject方法)<br /><br />js 代码<br /><br />1.$('myDiv3').injectInside($('myDiv1'));<br /><br />方法：adopt<br /><br />作用：可以在当前元素中插入指定元素(参数可以是元素id，元素引用，html元素tag名)<br /><br />js 代码<br /><br />1.$('myDiv').adopt($('myDiv1'));<br />2.$('myDiv').adopt('myDiv1');<br />3.$('myDiv').adopt('button');<br /><br />方法：remove<br /><br />作用：删除元素<br /><br />js 代码<br /><br />1.$('myDiv').remove();<br /><br />方法：clone<br /><br />参数列表：<br /><br />contents - 是否连带节点的内容进行复制(deep clone)，如果不指定，则连带。<br /><br />作用：复制元素<br /><br />js 代码<br /><br />1.$('myDiv').clone();<br />2.$('myDiv').clone(false); //只复制myDiv本身，不复制其content和子元素<br /><br />方法：replaceWith<br /><br />作用：用其他元素替换当前元素<br /><br />js 代码<br /><br />1.var a = new Element('button');<br />2.a.value = 'test';<br />3.$('myDiv1').replaceWith($(a));<br /><br /><br /><br /><img src ="http://www.blogjava.net/jasmine214--love/aggbug/326562.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jasmine214--love/" target="_blank">幻海蓝梦</a> 2010-07-19 19:47 <a href="http://www.blogjava.net/jasmine214--love/archive/2010/07/19/326562.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SVG --介绍</title><link>http://www.blogjava.net/jasmine214--love/archive/2010/07/19/326557.html</link><dc:creator>幻海蓝梦</dc:creator><author>幻海蓝梦</author><pubDate>Mon, 19 Jul 2010 11:20:00 GMT</pubDate><guid>http://www.blogjava.net/jasmine214--love/archive/2010/07/19/326557.html</guid><wfw:comment>http://www.blogjava.net/jasmine214--love/comments/326557.html</wfw:comment><comments>http://www.blogjava.net/jasmine214--love/archive/2010/07/19/326557.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jasmine214--love/comments/commentRss/326557.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jasmine214--love/services/trackbacks/326557.html</trackback:ping><description><![CDATA[http://baike.baidu.com/view/85022.htm<br /><img src ="http://www.blogjava.net/jasmine214--love/aggbug/326557.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jasmine214--love/" target="_blank">幻海蓝梦</a> 2010-07-19 19:20 <a href="http://www.blogjava.net/jasmine214--love/archive/2010/07/19/326557.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>DOM--Document详细的方法list</title><link>http://www.blogjava.net/jasmine214--love/archive/2010/07/19/326556.html</link><dc:creator>幻海蓝梦</dc:creator><author>幻海蓝梦</author><pubDate>Mon, 19 Jul 2010 11:15:00 GMT</pubDate><guid>http://www.blogjava.net/jasmine214--love/archive/2010/07/19/326556.html</guid><wfw:comment>http://www.blogjava.net/jasmine214--love/comments/326556.html</wfw:comment><comments>http://www.blogjava.net/jasmine214--love/archive/2010/07/19/326556.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jasmine214--love/comments/commentRss/326556.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jasmine214--love/services/trackbacks/326556.html</trackback:ping><description><![CDATA[
		<br />http://opensource.csdn.net/uploads/doc/javase-6-doc-api-zh_CN/org/w3c/dom/Document.html<br /><br /><p style="text-align: left; text-indent: 21pt; margin: 0cm 0cm 0pt;" class="MsoNormal" align="left"><font size="2">原文：<span style=""><font color="#008080">http://hi.baidu.com/fly_with_the_wind/blog/item/6762a22d090939e58b1399f7.html</font></span></font></p><p style="text-align: left; text-indent: 21pt; margin: 0cm 0cm 0pt;" class="MsoNormal" align="left"><span style=""><font color="#008080" size="3">createElementNS() </font></span><span style=""><font color="#008080" size="3">方法可创建带有指定命名空间的元素节点。</font><font size="3"><font color="#008080">此方法可返回一个<span> 
Element </span>对象。</font></font><font size="3"><font color="#008080"><span>createElementNS() </span>方法与<span> createElement() 
</span>方法相似，只是它创建的<span> Element </span>节点除了具有指定的名称外，</font></font><font size="3"><font color="#008080">还具有指定的命名空间。只有使用命名空间的<span> XML 
</span>文档才会使用该方法。</font></font><font size="3"><font color="#008080">所以<span>document.createElementNS()</span>方法创建的是<span>XML 
Element</span></font></font></span></p><p style="text-align: left; text-indent: 21pt; margin: 0cm 0cm 0pt;" class="MsoNormal" align="left"><span style=""></span></p><p style="text-align: left; text-indent: 21pt; margin: 0cm 0cm 0pt;" class="MsoNormal" align="left"><span style=""><font size="3"><font color="#008080">setAttributeNS</font></font></span></p><p style="text-align: left; text-indent: 21pt; margin: 0cm 0cm 0pt;" class="MsoNormal" align="left"><span style=""><font size="3"><font color="#008080">void <strong>setAttributeNS</strong>(String 
namespaceURI,</font></font></span><span style=""><font size="3"><font color="#008080">String qualifiedName,</font></font></span><span style=""><font size="3"><font color="#008080">String value)</font></font></span></p><p style="text-align: left; text-indent: 21pt; margin: 0cm 0cm 0pt;" class="MsoNormal" align="left"><span style=""><font size="3"><font color="#008080">throws DOMException</font></font></span></p><p style="text-align: left; text-indent: 21pt; margin: 0cm 0cm 0pt;" class="MsoNormal" align="left"><span style=""><font color="#008080" size="3">添加新属性。如果具有相同本地名称和名称空间<span> URI </span>的属性已经出现在元素上，则将其前缀更改为<span> 
qualifiedName </span>的前缀部分，并将其值更改为<span> value 
</span>参数。此值为简单的字符串；在设置它时没有对它进行解析。因此，将任何标记（如作为实体引用识别的语法）视为字面值文本，并且需要在写出时由实现适当转义。为了分配包含实体引用的属性值，用户必须创建一个<span> 
Attr </span>节点，加上所有<span> Text </span>和<span> EntityReference 
</span>节点，构建适当的子树，并使用<span> setAttributeNodeNS </span>或<span> setAttributeNode 
</span>作为属性的值分配它。</font><span><br /></span><font size="3"><font color="#008080">按照<span> [XML Namespaces]</span>，如果应用程序希望没有名称空间，则它们必须将值<span> null 
</span>用作方法的<span> namespaceURI </span>参数。<span></span></font></font></span></p><p style="text-align: left; text-indent: 21.1pt; margin: 0cm 0cm 0pt;" class="MsoNormal" align="left"><font size="3"><font color="#008080"><strong><span style="">参数：</span></strong><span style=""></span></font></font></p><p style="text-align: left; text-indent: 21pt; margin: 0cm 0cm 0pt;" class="MsoNormal" align="left"><font size="3"><font color="#008080"><span style="">namespaceURI - 
</span><span style="">要创建或更改的属性的名称空间<span> 
URI</span>。<span></span></span></font></font></p><p style="text-align: left; text-indent: 21pt; margin: 0cm 0cm 0pt;" class="MsoNormal" align="left"><font size="3"><font color="#008080"><span style="">qualifiedName - 
</span><span style="">要创建或更改的属性的限定名称。<span></span></span></font></font></p><p style="text-align: left; text-indent: 21pt; margin: 0cm 0cm 0pt;" class="MsoNormal" align="left"><font size="3"><font color="#008080"><span style="">value - </span><span style="">以字符串形式设置的值。<span></span></span></font></font></p><p style="text-align: left; text-indent: 21.1pt; margin: 0cm 0cm 0pt;" class="MsoNormal" align="left"><font size="3"><font color="#008080"><strong><span style="">抛出：</span></strong><span style=""></span></font></font></p><p style="text-align: left; text-indent: 21pt; margin: 0cm 0cm 0pt;" class="MsoNormal" align="left"><span style=""><font color="#008080" size="3">DOMException - INVALID_CHARACTER_ERR: </font></span><span style=""><font color="#008080" size="3">根据在<span> Document.xmlVersion </span>属性中指定的正在使用的<span> XML 
</span>版本<span>,</span>如果指定名称不是<span> XML 
</span>名称，则引发此异常。</font><span><br /><font color="#008080" size="3">NO_MODIFICATION_ALLOWED_ERR:</font></span><font color="#008080" size="3">如果此节点为只读的，则引发此异常。</font><span><br /><font color="#008080" size="3">NAMESPACE_ERR: </font></span><font color="#008080" size="3">在以下情况下引发此异常：如果根据<span> XML </span>规范中的名称空间，<span>qualifiedName 
</span>是错误格式的；如果<span> qualifiedName </span>有前缀且<span> namespaceURI 
</span>为<span> null</span>；如果<span> qualifiedName </span>有名为<span> "xml" 
</span>的前缀且<span> namespaceURI </span>不同于<span> 
"http://www.w3.org/XML/1998/namespace"</span>；如果<span> qualifiedName 
</span>或其前缀为<span> "xmlns" </span>且<span> namespaceURI </span>不同于<span> 
"http://www.w3.org/2000/xmlns/"</span>；或者如果<span> namespaceURI </span>为<span> 
"http://www.w3.org/2000/xmlns/" </span>且<span> qualifiedName 
</span>及其前缀都不是<span> "xmlns"</span>。</font><font size="3"><font color="#008080"><span><br />NOT_SUPPORTED_ERR:</span>如果实现不支持功能<span> "XML" 
</span>且文档中公开的语言不支持<span> XML </span>名称空间（例如<span> [HTML 
4.01]</span>），则可能引发此异常。</font></font></span></p><p style="text-align: left; text-indent: 21pt; margin: 0cm 0cm 0pt;" class="MsoNormal" align="left"><span style=""><span><font color="#008080" size="3">getAttributeNS() 
方法的作用是：通过命名空间URI和名称获取属性值。</font></span></span></p><pre><font color="#008080" size="3"><font face="宋体"><strong>  方法：</strong>getAttributeNS(ns,name) </font></font></pre><pre><font color="#008080" size="3"><font face="宋体"><strong>  参数：</strong>ns：必要参数。指定命名空间的URI（对应需要获取的属性值）；</font></font></pre><pre><font color="#008080" size="3"><font face="宋体">        name：必要参数。指定需要获取的属性名称。</font></font></pre><pre><font color="#008080" size="3"><font face="宋体"><strong>  例子：</strong>下面的代码片断将获取“books_ns.xml”文件中第一个&lt;book&gt;元素“lang”属性值：</font></font></pre><pre><font color="#008080" size="3">     xmlDoc=loadXMLDoc("books_ns.xml");</font></pre><pre><font color="#008080" size="3">     var x=xmlDoc.getElementsByTagName("title")[0];<br />     var ns=<a href="http://www.w3schools.com/children/">http://www.w3schools.com/children/</a></font></pre><pre><font color="#008080" size="3">     document.write(x.getAttributeNS(ns,"lang"));</font></pre><br /><img src ="http://www.blogjava.net/jasmine214--love/aggbug/326556.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jasmine214--love/" target="_blank">幻海蓝梦</a> 2010-07-19 19:15 <a href="http://www.blogjava.net/jasmine214--love/archive/2010/07/19/326556.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Thinking in VML---第一部分 VML入门</title><link>http://www.blogjava.net/jasmine214--love/archive/2010/07/19/326542.html</link><dc:creator>幻海蓝梦</dc:creator><author>幻海蓝梦</author><pubDate>Mon, 19 Jul 2010 09:45:00 GMT</pubDate><guid>http://www.blogjava.net/jasmine214--love/archive/2010/07/19/326542.html</guid><wfw:comment>http://www.blogjava.net/jasmine214--love/comments/326542.html</wfw:comment><comments>http://www.blogjava.net/jasmine214--love/archive/2010/07/19/326542.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jasmine214--love/comments/commentRss/326542.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jasmine214--love/services/trackbacks/326542.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 原文：http://dlstone.blogchina.com/control/2107979.html																																		第一部分														 VML												入门																										 									...&nbsp;&nbsp;<a href='http://www.blogjava.net/jasmine214--love/archive/2010/07/19/326542.html'>阅读全文</a><img src ="http://www.blogjava.net/jasmine214--love/aggbug/326542.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jasmine214--love/" target="_blank">幻海蓝梦</a> 2010-07-19 17:45 <a href="http://www.blogjava.net/jasmine214--love/archive/2010/07/19/326542.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>不为人知的JS调用样式的方法---document.createElement().addRule(..)</title><link>http://www.blogjava.net/jasmine214--love/archive/2010/07/19/326536.html</link><dc:creator>幻海蓝梦</dc:creator><author>幻海蓝梦</author><pubDate>Mon, 19 Jul 2010 09:20:00 GMT</pubDate><guid>http://www.blogjava.net/jasmine214--love/archive/2010/07/19/326536.html</guid><wfw:comment>http://www.blogjava.net/jasmine214--love/comments/326536.html</wfw:comment><comments>http://www.blogjava.net/jasmine214--love/archive/2010/07/19/326536.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jasmine214--love/comments/commentRss/326536.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jasmine214--love/services/trackbacks/326536.html</trackback:ping><description><![CDATA[
		<p>
				<font size="2">原文：http://www.10000it.net/javascript/20090808/731.html</font>
				<br />
		</p>
		<p>很多人可能在<a href="http://www.10000it.net/wangyesheji/" target="_blank">调用css</a>样式都是使用传统的方式调用其实有很多方法可以进行调用，如使用内嵌样式，在html直接加入样式，给定外部样式文件，在外部样式文件中使用 
@import</p>
		<p>url(样式文件路径)，这些都是大家常用的，其实还有就是使用<a href="http://www.10000it.net/javascript/">javascript</a>进行样式的定义。</p>
		<p>第一种：</p>
		<p>var style = document.createElement(’link’);<br />style.href = 
’style.css’;<br />style.rel = ’stylesheet’;<br />style.type = 
‘text/css’;<br />document.getElementsByTagName(’HEAD’).item(0).appendChild(style);</p>
		<p>第二种简单：</p>
		<p>document.createStyleSheet(style.css);</p>
		<p>动态的 style 节点，使用程序生成的字符串：</p>
		<p>var style = document.createElement(’style’);<br />style.type = 
‘text/css’;<br />style.innerHTML=”body{ background-color:blue; 
}”;<br />document.getElementsByTagName(’HEAD’).item(0).appendChild(style);</p>
		<p>但是在上面只能在<a href="http://www.10000it.net/wangyesheji/" target="_blank">Firefox兼容</a>，在IE里却不支持。</p>
		<p>var sheet = 
document.createStyleSheet();<br />sheet.addRule(’body’,'background-color:red’);</p>
		<p>如果按照上面的话就能成功，但是很麻烦，要把字符串拆开写。</p>
		<p>我一直在搜索着用<a href="http://www.10000it.net/" target="_blank">javascript</a>定义样式的代码，终于找到了，代码如下。</p>
		<p>document.createStyleSheet(”javascript:’body{background-color:blue;’”);</p>
		<p>但用上面的<a href="http://www.10000it.net/photoshop/" target="_blank">javascript</a>代码唯一的缺点就是url 最大 255 个字符，长一点的就不行了，经过 SXPCrazy 
提示，将代码进行修改成如下：</p>
		<p>window.style=”body{background-color:blue;”;<br />document.createStyleSheet(”javascript:style”);</p>
		<p>完美解决！！代码:</p>
		<p>&lt;script&gt; <br />function blue(){ <br />if(document.all){ 
<br />window.style="body{background-color:blue;"; 
<br />document.createStyleSheet("javascript:style"); <br />}else{ <br />var style = 
document.createElement('style'); <br />style.type = 'text/css'; 
<br />style.innerHTML="body{ background-color:blue }"; 
<br />document.getElementsByTagName('HEAD').item(0).appendChild(style); <br />} 
<br />} <br />&lt;/script&gt;</p>
		<p>以上是完整代码！<br />本文关键字 <a href="http://www.10000it.net/javascript/">javascript</a>,<a href="http://www.10000it.net/wangyesheji/" target="_blank">网页设计</a>,<a href="http://www.10000it.net/javascript/20090808/731.html" target="_blank">javascript调用样式</a>,<a href="http://www.10000it.net/" target="_blank">疯狂IT</a><br /></p>
<img src ="http://www.blogjava.net/jasmine214--love/aggbug/326536.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jasmine214--love/" target="_blank">幻海蓝梦</a> 2010-07-19 17:20 <a href="http://www.blogjava.net/jasmine214--love/archive/2010/07/19/326536.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JS--命名空间的理解（namespace）</title><link>http://www.blogjava.net/jasmine214--love/archive/2010/07/19/326535.html</link><dc:creator>幻海蓝梦</dc:creator><author>幻海蓝梦</author><pubDate>Mon, 19 Jul 2010 09:12:00 GMT</pubDate><guid>http://www.blogjava.net/jasmine214--love/archive/2010/07/19/326535.html</guid><wfw:comment>http://www.blogjava.net/jasmine214--love/comments/326535.html</wfw:comment><comments>http://www.blogjava.net/jasmine214--love/archive/2010/07/19/326535.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jasmine214--love/comments/commentRss/326535.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jasmine214--love/services/trackbacks/326535.html</trackback:ping><description><![CDATA[
		<font size="2">原文：http://dev.firnow.com/course/3_program/java/javashl/20081128/152797.html</font>
		<br />     <br />引入命名空间之前，一个令开发人员头疼的问题就是如何防止函数名/类名和其他人的冲突，在一个公司内部项目组之间可以通过命名预定（比如加前缀等）解决这个问题，但是把视线放到整个软件开发领域，在当今协作开发相当盛行的时代，这个问题却依然存在。在使用多个第三方框架或类库的时候，你唯一能作的就是祈祷它们的命名不要冲突，如果真正发生这种灾难的话，你唯一能作的就是放弃其中一个（注：可能是我孤陋寡闻，呵呵）。命名空间的引入相当程度上解决了这个问题，当然，如果你使用的命名空间和其他公司不幸一样，而对方又是微软、SUN等大佬，那恭喜你，呵呵@_@! <br />从事Web开发不可避免要接触JavaScript，目前最新版本的JavaScript还是不支持命名空间，所以命名冲突的问题凸显无疑，想象一下你引用了两个js文件，却发现由于命名问题导致你不得不放弃其中一个，从而导致多写了许多代码，无疑是十分令人沮丧的。在JavaScript新版本引入命名空间概念之前，发扬自立更生精神和创造性是我们程序员的基本义务;-) <br />实现前提：与Delphi、C#等语言不同，JavaScript中的类并不是对象的定义，事实上JavaScript中并不存在真正的类，这里的类实际上是用函数模拟实现的，而JavaScript中的函数实际上是一个对象，因此在JavaScript中：一个类就是一个对象。这和传统概念概念极为不同，在JavaScript中，创建某个类的实例实际上就是将类（=对象，记住）复制了一份。看到这里，有点设计模式概念的应该就可以看出来了，在JavaScript中，类机制使用了原型（prototype）模式。 <br />实现原理：既然看清楚了类的本质，那么问题就简单了，如果将GEA项目组所有JS类和函数作为属性放在名为GEA的对象里面，然后将GEA对象以属性的方式放在名为Grandsoft对象里面不就可以达到我们的目的，比如Grandsoft.GEA.Person实际上是在Grandsoft对象的属性GEA（也是一个对象）中的类Person（还是一个对象）。 <br />实现非常简单，整个命名空间机制的实现不超过20行代码，分析如下： <br />// 声明一个全局对象Namespace，用来注册命名空间<br />Namespace = new Object(); <br />// 全局对象仅仅存在register函数，参数为名称空间全路径，如"Grandsoft.GEA"<br />Namespace.register = function(fullNS)<br />{<br />    // 将命名空间切成N部分, 比如Grandsoft、GEA等<br />    var nsArray = fullNS.split('.');<br />    var sEval = "";<br />    var sNS = "";<br />    for (var i = 0; i &lt; nsArray.length; i++)<br />    {<br />        if (i != 0) sNS += ".";<br />        sNS += nsArray[i];<br />        // 依次创建构造命名空间对象（假如不存在的话）的语句<br />        // 比如先创建Grandsoft，然后创建Grandsoft.GEA，依次下去<br />        sEval += "if (typeof(" + sNS + ") == 'undefined') " + sNS + " = new Object();"<br />    }<br />    if (sEval != "") eval(sEval);<br />}<br />上面就是在JavaScript中模拟命名空间机制的完整实现，使用方式如下： <br /><br />// 注册命名空间Grandsoft.GEA, Grandsoft.GCM<br />Namespace.register("Grandsoft.GEA");<br />Namespace.register("Grandsoft.GCM"); <br />// 在Grandsoft.GEA命名空间里面声明类Person<br />Grandsoft.GEA.Person = function(name, age)<br />{<br />    this.name = name;<br />    this.age = age;<br />} <br />// 给类Person添加一个公共方法show()<br />Grandsoft.GEA.Person.prototype.show = function()<br />{<br />    alert(this.name + " is " + this.age + " years old!");<br />} <br />// 演示如何使用类Person<br />var p = new Grandsoft.GEA.Person("yanglf", 25);<br />p.show();<br />哈哈，简单吧，这么简单的代码我就不多说了，大家自己看着玩吧，其实我有点懒，呵呵@_@!!! <br /><br /><img src ="http://www.blogjava.net/jasmine214--love/aggbug/326535.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jasmine214--love/" target="_blank">幻海蓝梦</a> 2010-07-19 17:12 <a href="http://www.blogjava.net/jasmine214--love/archive/2010/07/19/326535.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>namespace(命名空间)与VML---解释很易懂</title><link>http://www.blogjava.net/jasmine214--love/archive/2010/07/19/326532.html</link><dc:creator>幻海蓝梦</dc:creator><author>幻海蓝梦</author><pubDate>Mon, 19 Jul 2010 09:00:00 GMT</pubDate><guid>http://www.blogjava.net/jasmine214--love/archive/2010/07/19/326532.html</guid><wfw:comment>http://www.blogjava.net/jasmine214--love/comments/326532.html</wfw:comment><comments>http://www.blogjava.net/jasmine214--love/archive/2010/07/19/326532.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jasmine214--love/comments/commentRss/326532.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jasmine214--love/services/trackbacks/326532.html</trackback:ping><description><![CDATA[原文：http://my.oschina.net/hcom/blog/4373<br />以下是网上找的关于VML的解释：<br /><br /> VML相当于IE里面的画笔，能实现你所想要的图形，而且结合脚本，可以让图形产生动态的效果。VML是微软1999年9月附带IE5.0发布的，在我认为， 
VML其实是Word和HTML结合的产物。可以将Word文档另存为HTML，其中的文本和图片可以很容易的转换，但如果是手绘制的图形在以往的IE里面就无法解释了，如果都转换成图形文件又不太现实。于是微软把Word里面的图形控件结合到IE里面，使IE也具备了绘图功能。<br />    VML的全称是Vector 
Markup 
Language(矢量可标记语言)，矢量的图形，意味着图形可以任意放大缩小而不损失图形的质量，这在制作地图上有很大用途。为了显示它的强大，和增加你学习VML的信心，先给你看看一个VML例子:<br /><br /><center><v:roundrect style="z-index: 9; position: relative; width: 100px; height: 40px; top: 5px; left: 20px;" arcsize="4321f" coordsize="21600,21600" fillcolor="white" strokecolor="black"><v:shadow on="t" type="single" color="silver" offset="3pt,3pt"></v:shadow><v:textbox style="line-height: 18px; margin-top: 2.468pt; width: 73.062pt; height: 28.062pt; color: blue; margin-left: 2.468pt; font-size: 10pt; top: auto; left: auto;" id="memo" inset="1emu,1emu,1emu,1emu">Hello world!<br />Hello VML!</v:textbox></v:roundrect><v:oval style="z-index: 8; position: relative; width: 14px; height: 10px; top: 20px; left: 9px;" coordsize="21600,21600" fillcolor="white" strokecolor="black"><v:shadow on="t" type="single" color="silver" offset="3pt,3pt"></v:shadow></v:oval><v:oval style="z-index: 7; position: relative; width: 10px; height: 8px; top: 35px; left: 0px;" coordsize="21600,21600" fillcolor="white" strokecolor="black"><v:shadow on="t" type="single" color="silver" offset="3pt,3pt"></v:shadow></v:oval></center><br /><br />    在VML里面，标记使用的是XML扩张，需要一个namespace(命名空间)，你可以使用惯用的“v”作为命名空间，使用IE5.0到IE6.0通用的定义如下:<br /><br />&lt;html 
<font color="red">xmlns:v="urn:schemas-microsoft-com:vml"</font>&gt;<br />&lt;STYLE&gt;<br /><font color="red">v\:* { Behavior: url(#default#VML) 
}</font><br />&lt;/STYLE&gt;<br /><br />    xmlns 全称就是XML NameSpace 
也就是命名空间。Behavior(行为)也是IE5.0新推出的东西，它的功能非常强大，结合样式表，可以给任何HTML对象增加行为（新的属性、方法、事件），而在这里，它的用处是把命名空间“v”和系统预定义的行为VML连接。这样定义以后，你就可以使用下面的标记了，和普通的HTML标记有所区别，每个标记都增加了一个命名空间:<br /><br />&lt;v:shape&gt;&lt;/v:shape&gt;<br /><br />    和其他HTML元素一样，VML标记里面可以定义DHTML大部分属性和事件，比如说id,name,title,onmouseover等等。在写法上VML比较灵活，很多属性既可以写在标记里面，又可以独立出一个新的标记来表示:<br /><br />&lt;v:shape 
id=shape1 name=shape1 onmouseover="alert(this.id)" <font color="red">StrokeColor=red Path="m 0,0 l 10,10 x 
e"</font>&gt;&lt;/v:shape&gt;<br />等同于下面的写法:<br />&lt;v:shape id=shape1 name=shape1 
onmouseover="alert(this.id)"&gt;<br /><font color="red">&lt;v:Stroke 
StrokeColor=red/&gt;<br />&lt;v:Path v="m 0,0 l 10,10 x 
e"/&gt;<br /></font>&lt;/v:shape&gt;<br /><br />    当然不是所有的属性都可以写成独立的标记，常用的比如说上面的 
Stroke(按我的理解可以翻译成线性)，Path，Shadow，Fill(填充)等，VML这样的方式可以理解为 shape 
的属性分类，使属性更直观。<br />    Shape 对象派生出来的一些对象，更加直接的图象，比如说 
Rect(矩形)，RoundRect(圆边的矩形)，Oval(圆)，Line(线)，PolyLine(不规则折线)，Image(图形文件)等等，以后将对这些对象细细描述。<img src ="http://www.blogjava.net/jasmine214--love/aggbug/326532.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jasmine214--love/" target="_blank">幻海蓝梦</a> 2010-07-19 17:00 <a href="http://www.blogjava.net/jasmine214--love/archive/2010/07/19/326532.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>CSS--Z-index属性详解</title><link>http://www.blogjava.net/jasmine214--love/archive/2010/07/19/326525.html</link><dc:creator>幻海蓝梦</dc:creator><author>幻海蓝梦</author><pubDate>Mon, 19 Jul 2010 06:59:00 GMT</pubDate><guid>http://www.blogjava.net/jasmine214--love/archive/2010/07/19/326525.html</guid><wfw:comment>http://www.blogjava.net/jasmine214--love/comments/326525.html</wfw:comment><comments>http://www.blogjava.net/jasmine214--love/archive/2010/07/19/326525.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jasmine214--love/comments/commentRss/326525.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jasmine214--love/services/trackbacks/326525.html</trackback:ping><description><![CDATA[
		<p align="left">原文：http://www.csschina.net/a/jc/2010/0203/824.html<br /></p>
		<p align="left">大多数的CSS属性都很容易使用。常常，当您对标记语言的元素使用CSS属性时，产生的结果会随着您刷新页面而立即呈现。而另一些CSS属性，却会有一些复杂，且只能在给定的环境下才会工作。</p>
		<p align="left">Z-index属性便属于上面所说的后面的那一组。Z-index无疑的比其他任何属性都会频繁的导致（兼容性）上的混乱和（开发者心理上）的挫败感。但滑稽的是，一旦你真正理解了Z-index，你会发现它却是一个非常容易使用的属性，并且会为解决很多layout方面的挑战提供强有力的帮助。</p>
		<p align="left">在这篇文章里，我们会准确的说明究竟什么是Z-index，它为什么会这么不为人所了解，并一起讨论一些关于它的实际使用中的问题。我们同时会描述一些会遇到的浏览器间的差异，那些存在于已有版本的IE及Firefox浏览器中的独特问题。这篇关于Z-index属性的全透视文章将会为那些有着良好基础的开发者在使用Z-index属性时提供强大的自信心及强有力的帮助。</p>
		<p align="left">
				<strong>这是什么？</strong>
		</p>
		<p align="left">Z-index属性决定了一个HTML元素的层叠级别。元素层叠级别是相对于元素在Z轴上（与X轴Y轴相对照）的位置而言。一个更高的Z-index值意味着这个元素在叠层顺序中会更靠近顶部。这个层叠顺序沿着垂直的线轴被呈现。</p>
		<p align="center">
				<img alt="" src="/uploads/allimg/100203/22461531K-0.gif" width="500" border="0" height="443" />
		</p>
		<p align="left">为了更清晰的描述Z-index是如何工作的，上面的这张图片夸大展示了层叠元素在视觉位置上的关系。</p>
		<p>
				<strong>自然的层叠顺序</strong>
		</p>
		<p>在一个HTML页面中，自然的层叠顺序（也就是元素在Z轴上的顺序）是由很多因素决定的。下面的是一个列表，它展示的列表项是处于一个层叠环境（stacking 
context，暂时未找到合适的汉语翻译，应该是指层叠的元素所处的那个层叠的环境）中，这些项是处于这个层叠环境的底部的。这个列表中的项都没有被赋予Z-index属性。</p>
		<p>元素的背景和边框会创建一个stacking context</p>
		<p>引用:<br />具有负值的stacking contexts元素，按照出现的先后顺序排列（越靠后层级越靠上） 
<br />没有被定位，没有浮动的块级元素，按照出现的先后顺序排列 <br />没有被定位，浮动的元素，按照出现的先后顺序排列 
<br />内联元素，按照出现的先后顺序排列排列 <br />被定位的元素，按照出现的先后顺序排列</p>
		<p>Z-index 属性，当被正确使用的时候，会改变自然的层叠顺序。</p>
		<p>当然，除非元素已经被定位按照互相交叠的形式展现，否则元素的层叠顺序并不会特别的明显。下面的，负边距的BOX被拿来展示，用以说明自然的层叠顺序。</p>
		<p align="center">
				<img alt="" src="/uploads/allimg/100203/2246152G6-1.gif" width="319" border="0" height="526" />
		</p>
		<p>上面的BOX被定义了不同的背景和边框色，并且后两个是交错的并且定义了负值的顶部边距，所以我们可以看到自然的层叠顺序。灰色的BOX在标记中位于第一位，蓝色的BOX位于第二位，金色的排在第三。应用的负边距明确的表明这个事实：这些元素未被设置Z-index 
属性；它们的层叠顺序是自然的，或者是默认的，复合规则的。产生交错的现象都是因为负值的边距。</p>
		<p>
				<strong>为什么它会产生混乱？</strong>
		</p>
		<p>即使Z-index并不是一个难以理解的属性，但它却会因错误的假设而使很多初级的开发人员陷入混乱。混乱发生的原因是因为Z-index只能工作在被明确定义了absolute，fixed或relative 
这三个定位属性的元素中。</p>
		<p>为了证明Z-index只能工作于被定位了的元素中，这里有同样的三个BOX，它们应用了Z-index属性来尝试打破他们自然的层叠顺序。</p>
		<p align="center">
				<img alt="" src="/uploads/allimg/100203/2246152G6-1.gif" width="319" border="0" height="526" />
		</p>
		<p>灰色的BOX具有“9999”的Z-index值，蓝色的BOX有“500”的Z-index值，金色的有“1”的Z-index值。合乎逻辑的，你会认为这三个BOX的层叠顺序会倒过来。但事实却不是这样，因为这些元素都没被设定position属性。</p>
		<p>下面是同样的三个BOX，分别都被设置了position: relative，他们的Z-index值还是按照上面那段设定。</p>
		<p align="center">
				<img alt="" src="/uploads/allimg/100203/22461523a-3.gif" width="324" border="0" height="529" />
		</p>
		<p>现在的结果是我们所期待的了：这些元素的层叠顺序实现了反向；灰色的BOX覆盖在蓝色之上，蓝色的覆盖在金色之上。</p>
		<p>
				<strong>语法</strong>
		</p>
		<pre>
				<ol class="dp-css">
						<li class="alt">
								<span>
										<span class="value">#grey</span>
										<span>_box {    </span>
								</span>
						</li>
						<li>
								<span>    </span>
								<span class="keyword">width</span>
								<span>: </span>
								<span class="value">200px</span>
								<span>;    </span>
						</li>
						<li class="alt">
								<span>    </span>
								<span class="keyword">height</span>
								<span>: </span>
								<span class="value">200px</span>
								<span>;    </span>
						</li>
						<li>
								<span>    </span>
								<span class="keyword">border</span>
								<span>: </span>
								<span class="value">solid</span>
								<span> </span>
								<span class="value">1px</span>
								<span> </span>
								<span class="value">#ccc</span>
								<span>;    </span>
						</li>
						<li class="alt">
								<span>    </span>
								<span class="keyword">background</span>
								<span>: </span>
								<span class="value">#ddd</span>
								<span>;    </span>
						</li>
						<li>
								<span>    </span>
								<span class="keyword">position</span>
								<span>: </span>
								<span class="value">relative</span>
								<span>;    </span>
						</li>
						<li class="alt">
								<span>    </span>
								<span class="keyword">z-index</span>
								<span>: </span>
								<span class="value">9999</span>
								<span>;    </span>
						</li>
						<li>
								<span>}    </span>
						</li>
						<li class="alt">
								<span> </span>
						</li>
						<li>
								<span class="value">#blue</span>
								<span>_box {    </span>
						</li>
						<li class="alt">
								<span>    </span>
								<span class="keyword">width</span>
								<span>: </span>
								<span class="value">200px</span>
								<span>;    </span>
						</li>
						<li>
								<span>    </span>
								<span class="keyword">height</span>
								<span>: </span>
								<span class="value">200px</span>
								<span>;    </span>
						</li>
						<li class="alt">
								<span>    </span>
								<span class="keyword">border</span>
								<span>: </span>
								<span class="value">solid</span>
								<span> </span>
								<span class="value">1px</span>
								<span> </span>
								<span class="value">#4a7497</span>
								<span>;    </span>
						</li>
						<li>
								<span>    </span>
								<span class="keyword">background</span>
								<span>: </span>
								<span class="value">#8daac3</span>
								<span>;    </span>
						</li>
						<li class="alt">
								<span>    </span>
								<span class="keyword">position</span>
								<span>: </span>
								<span class="value">relative</span>
								<span>;    </span>
						</li>
						<li>
								<span>    </span>
								<span class="keyword">z-index</span>
								<span>: </span>
								<span class="value">500</span>
								<span>;    </span>
						</li>
						<li class="alt">
								<span>}    </span>
						</li>
						<li>
								<span> </span>
						</li>
						<li class="alt">
								<span class="value">#gold</span>
								<span>_box {    </span>
						</li>
						<li>
								<span>    </span>
								<span class="keyword">width</span>
								<span>: </span>
								<span class="value">200px</span>
								<span>;    </span>
						</li>
						<li class="alt">
								<span>    </span>
								<span class="keyword">height</span>
								<span>: </span>
								<span class="value">200px</span>
								<span>;    </span>
						</li>
						<li>
								<span>    </span>
								<span class="keyword">border</span>
								<span>: </span>
								<span class="value">solid</span>
								<span> </span>
								<span class="value">1px</span>
								<span> </span>
								<span class="value">#8b6125</span>
								<span>;    </span>
						</li>
						<li class="alt">
								<span>    </span>
								<span class="keyword">background</span>
								<span>: </span>
								<span class="value">#ba945d</span>
								<span>;    </span>
						</li>
						<li>
								<span>    </span>
								<span class="keyword">position</span>
								<span>: </span>
								<span class="value">relative</span>
								<span>;    </span>
						</li>
						<li class="alt">
								<span>    </span>
								<span class="keyword">z-index</span>
								<span>: </span>
								<span class="value">1</span>
								<span>;    </span>
						</li>
						<li>
								<span>} </span>
						</li>
				</ol>
		</pre>
		<p>重复一下，Z-index属性只能工作于那些被定义了position属性的元素中。这并没有被足够的重视，尤其是对于那些新手。</p>
<img src ="http://www.blogjava.net/jasmine214--love/aggbug/326525.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jasmine214--love/" target="_blank">幻海蓝梦</a> 2010-07-19 14:59 <a href="http://www.blogjava.net/jasmine214--love/archive/2010/07/19/326525.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Javascript--document对象详解</title><link>http://www.blogjava.net/jasmine214--love/archive/2010/07/19/326521.html</link><dc:creator>幻海蓝梦</dc:creator><author>幻海蓝梦</author><pubDate>Mon, 19 Jul 2010 06:14:00 GMT</pubDate><guid>http://www.blogjava.net/jasmine214--love/archive/2010/07/19/326521.html</guid><wfw:comment>http://www.blogjava.net/jasmine214--love/comments/326521.html</wfw:comment><comments>http://www.blogjava.net/jasmine214--love/archive/2010/07/19/326521.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jasmine214--love/comments/commentRss/326521.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jasmine214--love/services/trackbacks/326521.html</trackback:ping><description><![CDATA[
		<p>原文：http://www.lao8.org/html/8/2008-3-13/2008313112602.html<br /></p>
		<p>document 文挡对象 - 
JavaScript脚本语言描述<br />———————————————————————<br />注:页面上元素name属性和JavaScript引用的名称必须一致包括大小写<br />否则会提示你一个错误信息 
“引用的元素为空或者不是对象<a>\\\\\</a>”<br />———————————————————————</p>
		<p>
				<strong>对象属性</strong>
		</p>
		<p>document.title //设置文档标题等价于HTML的title标签<br />document.bgColor 
//设置页面背景色<br />document.fgColor //设置前景色(文本颜色)<br />document.linkColor 
//未点击过的链接颜色<br />document.alinkColor //激活链接(焦点在此链接上)的颜色<br />document.vlinkColor 
//已点击过的链接颜色<br />document.URL //设置URL属性从而在同一窗口打开另一网页<br />document.fileCreatedDate 
//文件建立日期，只读属性<br />document.fileModifiedDate //文件修改日期，只读属性<br />document.charset 
//设置字符集 简体中文:gb2312<br />document.fileSize //文件大小，只读属性<br />document.cookie 
//设置和读出cookie</p>
		<p>———————————————————————<br /><strong>常用对象方法</strong></p>
		<p>document.write() //动态向页面写入内容<br />document.createElement(Tag) 
//创建一个html标签对象<br />document.getElementById(ID) 
//获得指定ID值的对象<br />document.getElementsByName(Name) 
//获得指定Name值的对象<br />document.body.appendChild(oTag)<br />———————————————————————</p>
		<p>
				<strong>body-主体子对象</strong>
		</p>
		<p>document.body //指定文档主体的开始和结束等价于body&gt;/body&gt;<br />document.body.bgColor 
//设置或获取对象后面的背景颜色<br />document.body.link //未点击过的链接颜色<br />document.body.alink 
//激活链接(焦点在此链接上)的颜色<br />document.body.vlink //已点击过的链接颜色<br />document.body.text 
//文本色<br />document.body.innerText 
//设置body&gt;…/body&gt;之间的文本<br />document.body.innerHTML 
//设置body&gt;…/body&gt;之间的HTML代码<br />document.body.topMargin 
//页面上边距<br />document.body.leftMargin //页面左边距<br />document.body.rightMargin 
//页面右边距<br />document.body.bottomMargin //页面下边距<br />document.body.background 
//背景图片<br />document.body.appendChild(oTag) //动态生成一个HTML对象</p>
		<p>
				<strong>常用对象事件</strong>
		</p>
		<p>document.body.onclick=”func()” 
//鼠标指针单击对象是触发<br />document.body.onmouseover=”func()” 
//鼠标指针移到对象时触发<br />document.body.onmouseout=”func()” 
//鼠标指针移出对象时触发<br />———————————————————————<br /><strong>location-位置子对象</strong></p>
		<p>document.location.hash // #号后的部分<br />document.location.host // 
域名+端口号//好像返回的是主机名localhost,没有返回端口号<br />document.location.hostname // 
域名<br />document.location.href // 完整URL<br />document.location.pathname // 
目录部分<br />document.location.port // 端口号<br />document.location.protocol // 
网络协议(http:)<br />document.location.search // ?号后的部分<br />documeny.location.reload() 
//刷新网页<br />document.location.reload(URL) 
//打开新的网页<br />document.location.assign(URL) 
//打开新的网页<br />document.location.replace(URL) 
//打开新的网页<br />———————————————————————<br /><strong>selection-选区子对象</strong><br />document.selection</p>
		<p>例如：</p>
		<p>
				<font color="#006666">&lt;div&gt;请选中这里的部分文字。&lt;/div&gt;<br />&lt;div&gt;&lt;input 
type="button" value="请选中部分文字，然后点击这里执行 empty" onclick="javascript:Foo();" 
/&gt;&lt;/div&gt;<br />&lt;script type="text/javascript" 
language="javascript"&gt;<br />&lt;!--<br />function Foo()<br />{<br />    
document.selection.empty();<br />}<br />--&gt;<br />&lt;/script&gt;</font>
		</p>
		<p>
				<br />
				<strong>selection的createRange方法</strong>
		</p>
		<p>document.selection.createRange() 根据当前文字选择返回 TextRange 对象，或根据控件选择返回 
ControlRange 对象。</p>
		<p>配合 execCommand，在 HTML 编辑器中很有用，比如：文字加粗、斜体、复制、粘贴、创建超链接等。</p>
		<p>这些好像都是只有在IE下才能实现。。</p>
		<p>———————————————————————</p>
		<p>
				<strong>images集合(页面中的图象)</strong>
		</p>
		<p>
				<strong>a)通过集合引用</strong>
				<br />document.images 
//对应页面上的img标签<br />document.images.length //对应页面上img标签的个数<br />document.images[0] 
//第1个img标签<br />document.images[i] //第i-1个img标签</p>
		<p>
				<strong>b)通过name属性直接引用</strong>
				<br />img 
name=”oImage”<br />document.images.oImage //document.images.name属性</p>
		<p>
				<strong>c)引用图片的src属性</strong>
				<br />document.images.oImage.src 
//document.images.name属性.src</p>
		<p>
				<strong>d)创建一个图象<br /></strong>var oImage<br />oImage = new 
Image()<br />document.images.oImage.src=”1.jpg”<br />同时在页面上建立一个img /标签与之对应就可以显示</p>
		<p>———————————————————————-</p>
		<p>
				<strong>forms集合(页面中的表单)</strong>
		</p>
		<p>
				<strong>a)通过集合引用</strong>
				<br />document.forms 
//对应页面上的form标签<br />document.forms.length 
//对应页面上/formform标签的个数<br />document.forms[0] //第1个/formform标签<br />document.forms[i] 
//第i-1个/formform标签<br />document.forms[i].length 
//第i-1个/formform中的控件数<br />document.forms[i].elements[j] 
//第i-1个/formform中第j-1个控件</p>
		<p>
				<strong>b)通过标签name属性直接引用</strong>
				<br />/formform name=”Myform”&gt;input 
name=”myctrl”/&gt;/form<br />document.Myform.myctrl //document.表单名.控件名</p>
		<p>
				<strong>c)访问表单的属性</strong>
				<br />document.forms[i].name //对应form 
name&gt;属性<br />document.forms[i].action //对应/formform 
action&gt;属性<br />document.forms[i].encoding //对应/formform 
enctype&gt;属性<br />document.forms[i].target //对应/formform target&gt;属性</p>
		<p>document.forms[i].appendChild(oTag) //动态插入一个控件<br />document.all.oDiv 
//引用图层oDiv<br />document.all.oDiv.style.display=”" 
//图层设置为可视<br />document.all.oDiv.style.display=”none” 
//图层设置为隐藏<br />document.getElementId(”oDiv”) 
//通过getElementId引用对象<br />document.getElementId(”oDiv”).style=”"<br />document.getElementId(”oDiv”).display=”none”<br />/*document.all表示document中所有对象的集合<br />只有ie支持此属性，因此也用来判断浏览器的种类*/</p>
		<p>
				<strong>图层对象的4个属性</strong>
				<br />document.getElementById(”ID”).innerText 
//动态输出文本<br />document.getElementById(”ID”).innerHTML 
//动态输出HTML<br />document.getElementById(”ID”).outerText 
//同innerText<br />document.getElementById(”ID”).outerHTML //同innerHTML<br /></p>
<img src ="http://www.blogjava.net/jasmine214--love/aggbug/326521.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jasmine214--love/" target="_blank">幻海蓝梦</a> 2010-07-19 14:14 <a href="http://www.blogjava.net/jasmine214--love/archive/2010/07/19/326521.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Javascript---Hash类详解</title><link>http://www.blogjava.net/jasmine214--love/archive/2010/07/19/326520.html</link><dc:creator>幻海蓝梦</dc:creator><author>幻海蓝梦</author><pubDate>Mon, 19 Jul 2010 05:55:00 GMT</pubDate><guid>http://www.blogjava.net/jasmine214--love/archive/2010/07/19/326520.html</guid><wfw:comment>http://www.blogjava.net/jasmine214--love/comments/326520.html</wfw:comment><comments>http://www.blogjava.net/jasmine214--love/archive/2010/07/19/326520.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jasmine214--love/comments/commentRss/326520.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jasmine214--love/services/trackbacks/326520.html</trackback:ping><description><![CDATA[
		<h2>
				<font size="2">原文：http://www.phpfans.net/manu/Prototype/prototype/api/hash.htm</font>
				<br />
		</h2>
		<h2>Hash</h2>
		<div id="method-list">
				<ul>
						<li>
								<a href="#method-clone">clone</a>
						</li>
						<li>
								<a href="#method-each">each</a>
						</li>
						<li>
								<a href="#method-get">get</a>
						</li>
						<li>
								<a href="#method-inspect">inspect</a>
						</li>
						<li>
								<a href="#method-keys">keys</a>
						</li>
						<li>
								<a href="#method-merge">merge</a>
						</li>
						<li>
								<a href="#method-remove">remove</a>
						</li>
						<li>
								<a href="#method-set">set</a>
						</li>
						<li>
								<a href="#method-tojson">toJSON</a>
						</li>
						<li>
								<a href="#method-toobject">toObject</a>
						</li>
						<li>
								<a href="#method-toquerystring">toQueryString</a>
						</li>
						<li>
								<a href="#method-unset">unset</a>
						</li>
						<li>
								<a href="#method-update">update</a>
						</li>
						<li>
								<a href="#method-values">values</a>
						</li>
				</ul>
		</div>
		<div id="abody">
				<p>Hash 可以看作是一个 <em>关联数组</em>，它对每一个值都绑定了一个唯一的键（值并不必须是唯一的）， 
然而，它不能保证迭代时元素的顺序始终一致。因为 JavaScript 程序语言的特性，每个对象实际上都是一个 hash，但是，本篇所述的 
<code>Hash</code> 增加了许多方法，让你能够轻松地枚举键和值、迭代“键/值”对、 合并两个 hash、将 hash 编码成为一个查询字符串等等。 
</p>
				<h3>创建一个 hash</h3>
				<p>构造一个 <code>Hash</code> 实例有两种方法：第一种是使用 <code>new</code> 关键字实例化一个 JavaScript 
对象（<code>new Hash(obj)</code>）。第二种是使用 <a href="utility/dollar-h.htm">$H</a> 
函数。传递一个 JavaScript 对象或是一个 Hash 给 <code>$H</code>，<code>$H</code> 
函数会克隆它们，并不会对原始对象造成任何影响。 </p>
				<p>对于上述两种构造方法，你也可以不传递任何参数而调用它们。它们将返回一个空的 hash。</p>
				<h3>在 Prototype 1.6 中的后向兼容性变更</h3>
				<p class="notice">
						<strong>后向兼容性变更</strong> - 虽然新版本的 Hash 与之前的版本具有相同的目标，但是新版本的 Hash 
不再兼容先前版本的 Hash 类型。 </p>
				<p>现在，不能再通过 <code>Hash</code> 实例的属性来访问“键/值”对，它们是私有的，这是为了防止在 <code>Hash</code> 
实例上定义的属性和混入的方法引起键的冲突。这意味着你必须使用 <a href="hash/get.htm">Hash#get(key)</a>、 <a href="hash/set.htm">Hash#set(key, value)</a> 和 <a href="hash/unset.htm">Hash#unset(key)</a> 实例方法来访问、设置或删除“键/值”对。例如： </p>
				<pre>
						<code class="javascript">var myhash = new Hash(); <br />// 老的 API --&gt; 新的 API <br />myhash.name = "Bob";	--&gt;	myhash.set('name', 'Bob'); <br />myhash.name;		--&gt;	myhash.get('name'); <br />delete myhash.name;	--&gt;	myhash.unset('name');</code>
				</pre>
				<p>你也应该了解关于 Hash API 的其它变更：</p>
				<ul>
						<li>
								<code>$H(object)</code> 快捷方法现在完全等同于 <code>new 
Hash(object)</code>。无论参数是一个对象还是另一个 <code>Hash</code>，它们都返回一个新的对象。 
</li>
						<li>
								<code>Hash#merge</code> 返回一个新的 <code>Hash</code>，而不再是对调用该方法的实例对象进行修改。 
</li>
						<li>
								<code>Hash#update</code> 是 <code>Hash#merge</code> 的一个破坏性版本，它会修改调用该方法的实例对象。 
</li>
						<li>
								<code>Hash#clone</code> 返回一个新的当前 Hash 对象的克隆实例。 
</li>
						<li>
								<code>Hash#toObject</code> 返回一个当前 Hash 
内部对象的复本。<br /><strong>译注：</strong>Prototype 使用了一个单独的内部对象来存储“键/值”对。 
</li>
						<li>
								<code>Hash.toQueryString</code> 现在是 <code>Object.toQueryString</code> 
的一个别名。（<code>Hash.toQueryString</code> 已不推荐使用，在将来的 Prototype 版本中，这个方法将会被移除。） 
</li>
						<li>
								<code>Hash#remove</code> 已经被 <code>Hash#unset</code> 取代。 
</li>
						<li>
								<code>Hash.toJSON</code> 已经被 <code>Object.toJSON</code> 或 
<code>Hash#toJSON</code> 实例方法取代。 </li>
				</ul>
				<h3>注意，对于 Prototype 的早期版本（&lt; 1.6）</h3>
				<p>传递一个 hash 到 <code>$H</code> 并不会克隆它。</p>
				<p>因为混入了 <a href="enumerable.htm">Enumerable</a>，同时，它还有自己的方法，所以 
<code>Hash</code> 不是所有的名称都可以用作“键”的。如果新增的键的名称与 <code>Hash</code> 
的任何一个方法同名，则那个方法不能再被调用。 即使因为你不需要调用那个方法而侥幸获得成功，但仍然会有问题： </p>
				<pre>
						<code class="javascript">var h = new Hash({ ... }); <br />h['each'] = 'my own stuff';<br />h.map(); <br />// -&gt; 错误，因为 'each' 不再是一个函数</code>
				</pre>
				<p>在 <a href="enumerable.htm">Enumerable</a> 中，最重要的方法是 <a href="enumerable/each.htm">each</a>， 因为几乎每一个其它的方法都需要它——覆盖它将导致我们的 hash 
实例成为一个废物。你也不能抱着侥幸心理使用 <code>_each</code>，因为它也是 <code>Enumerable</code> 
内部的一个重要方法。 </p>
		</div>
		<div id="method-excerpts">
				<h3>方法</h3>
				<div id="method-clone" class="mexcerpt">
						<h4>
								<a href="hash/clone.htm">clone</a>
								<div class="box">1.6</div>
						</h4>
						<div class="mexcerpt-cnt">
								<pre>
										<code class="ebnf">clone() -&gt; newHash</code>
								</pre>
								<p>返回一个 hash 的克隆。</p>
						</div>
				</div>
				<div id="method-each" class="mexcerpt">
						<h4>
								<a href="hash/each.htm">each</a>
						</h4>
						<div class="mexcerpt-cnt">
								<pre>
										<code class="ebnf">each(iterator) -&gt; Hash</code>
								</pre>
								<p>迭代处理 hash 中的“键/值”对。</p>
						</div>
				</div>
				<div id="method-get" class="mexcerpt">
						<h4>
								<a href="hash/get.htm">get</a>
								<div class="box">1.6</div>
						</h4>
						<div class="mexcerpt-cnt">
								<pre>
										<code class="ebnf">get(key) -&gt; value</code>
								</pre>
								<p>返回 hash 指定键对应的值。</p>
						</div>
				</div>
				<div id="method-inspect" class="mexcerpt">
						<h4>
								<a href="hash/inspect.htm">inspect</a>
						</h4>
						<div class="mexcerpt-cnt">
								<pre>
										<code class="ebnf">inspect() -&gt; String</code>
								</pre>
								<p>返回 hash 针对调试的字符串表现形式。</p>
						</div>
				</div>
				<div id="method-keys" class="mexcerpt">
						<h4>
								<a href="hash/keys.htm">keys</a>
						</h4>
						<div class="mexcerpt-cnt">
								<pre>
										<code class="ebnf">keys() -&gt; [String...]</code>
								</pre>
								<p>返回一个数组，该数组包括 hash 中所有的键的名称。</p>
						</div>
				</div>
				<div id="method-merge" class="mexcerpt">
						<h4>
								<a href="hash/merge.htm">merge</a>
								<div class="box">1.6 改进</div>
						</h4>
						<div class="mexcerpt-cnt">
								<pre>
										<code class="ebnf">merge(object) -&gt; newHash</code>
								</pre>
								<p>将 <code>object</code> 和当前的 hash 实例合并，返回合并后的结果。<em>在 v1.6.0 之前：</em> 
这是一个破坏性的方法（对象的值将会被增加到当前 hash 中）。<em>从 v1.6.0 开始：</em> 这不再是一个破坏性的方法（在合并之前，hash 
已被克隆）。 </p>
						</div>
				</div>
				<div id="method-remove" class="mexcerpt">
						<h4>
								<a href="hash/remove.htm">remove</a>
								<div class="box">不推荐</div>
						</h4>
						<div class="mexcerpt-cnt">
								<pre>
										<code class="ebnf">remove(key) -&gt; value<br />remove(key1, key2...) -&gt; Array</code>
								</pre>
								<p>从 hash 中移除指定的键，并返回被移除的键对应的值。<em>从 v1.6.0 开始，该方法不可用</em>。</p>
						</div>
				</div>
				<div id="method-set" class="mexcerpt">
						<h4>
								<a href="hash/set.htm">set</a>
								<div class="box">1.6</div>
						</h4>
						<div class="mexcerpt-cnt">
								<pre>
										<code class="ebnf">set(key, value) -&gt; value</code>
								</pre>
								<p>将 hash 中 <code>key</code> 指定的键的值设置为 
<code>value</code>，返回所设置的值（<code>value</code>）。 
<strong>译注：</strong>如果不存在指定的键，则新增。 </p>
						</div>
				</div>
				<div id="method-tojson" class="mexcerpt">
						<h4>
								<a href="hash/tojson.htm">toJSON</a>
								<div class="box">1.5.1</div>
						</h4>
						<div class="mexcerpt-cnt">
								<pre>
										<code class="ebnf">toJSON() -&gt; String</code>
								</pre>
								<p>返回一个 JSON 字符串。</p>
						</div>
				</div>
				<div id="method-toobject" class="mexcerpt">
						<h4>
								<a href="hash/toobject.htm">toObject</a>
								<div class="box">1.6</div>
						</h4>
						<div class="mexcerpt-cnt">
								<pre>
										<code class="ebnf">toObject() -&gt; Object</code>
								</pre>
								<p>克隆 hash 內部的 <code>Object</code> 并返回。<strong>译注：</strong><code>Hash</code> 
在内部使用一个单独的 <code>Object</code> 保存“键/值”对。 </p>
						</div>
				</div>
				<div id="method-toquerystring" class="mexcerpt">
						<h4>
								<a href="hash/toQueryString.htm">toQueryString</a>
								<div class="box">1.6 改进</div>
						</h4>
						<div class="mexcerpt-cnt">
								<pre>
										<code class="ebnf">toQueryString() -&gt; String</code>
								</pre>
								<p>将一个 hash 转换为 URL 编码字符串形式。</p>
						</div>
				</div>
				<div id="method-unset" class="mexcerpt">
						<h4>
								<a href="hash/unset.htm">unset</a>
								<div class="box">1.6</div>
						</h4>
						<div class="mexcerpt-cnt">
								<pre>
										<code class="ebnf">unset(key) -&gt; value</code>
								</pre>
								<p>删除 hash 中的键，并返回键对应的值。</p>
						</div>
				</div>
				<div id="method-update" class="mexcerpt">
						<h4>
								<a href="hash/update.htm">update</a>
								<div class="box">1.6</div>
						</h4>
						<div class="mexcerpt-cnt">
								<pre>
										<code class="ebnf">update(object) -&gt; Hash</code>
								</pre>
								<p>使用参数 <code>object</code> 包含的“键/值”对更新当前 hash。原始的 hash 对象将会被修改。 
</p>
						</div>
				</div>
				<div id="method-values" class="mexcerpt">
						<h4>
								<a href="hash/values.htm">values</a>
						</h4>
						<div class="mexcerpt-cnt">
								<pre>
										<code class="ebnf">values() -&gt; Array</code>
								</pre>
								<p>返回一个数组，该数组是 hash 中所有的值的集合。</p>
						</div>
				</div>
		</div>
<img src ="http://www.blogjava.net/jasmine214--love/aggbug/326520.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jasmine214--love/" target="_blank">幻海蓝梦</a> 2010-07-19 13:55 <a href="http://www.blogjava.net/jasmine214--love/archive/2010/07/19/326520.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Javascript 定时器---------工作原理</title><link>http://www.blogjava.net/jasmine214--love/archive/2010/07/15/326226.html</link><dc:creator>幻海蓝梦</dc:creator><author>幻海蓝梦</author><pubDate>Thu, 15 Jul 2010 12:41:00 GMT</pubDate><guid>http://www.blogjava.net/jasmine214--love/archive/2010/07/15/326226.html</guid><wfw:comment>http://www.blogjava.net/jasmine214--love/comments/326226.html</wfw:comment><comments>http://www.blogjava.net/jasmine214--love/archive/2010/07/15/326226.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jasmine214--love/comments/commentRss/326226.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jasmine214--love/services/trackbacks/326226.html</trackback:ping><description><![CDATA[原文：http://blog.anbutu.com/javascript/how-javascript-timers-work<br />对于一个编写基础代码的程序员来说，理解Javascript定时器的工作原理是很重要的。由于Javascript的定时器工作在一个单线程的环
境中，因此它们常常表现出一些违反直觉的行为。下面我们就首先从三个被用来创建和操作定时器函数入手来分析定时器的工作原理。
<ul><li>var id = setTimeout(fn, delay); 该函数初始化一个延迟为 delay 
的定时器并返回该定时器的id，在定时器触发前，我们可以通过返回的定时器id来取消这个定时器。当该定时器触发时将调用 fn 这个函数。</li><li>var id = setInterval(fn, delay); 该函数和 setTimeout 类似，但它会每隔 delay 
的时间间隔调用 fn 函数直到该定时器被取消。</li><li>clearInterval(id);, clearTimeout(id); 
这两个函数都接受一个定时器id（前面两个函数的返回值）作为参数，用来取消相应的定时器。</li></ul><p>为了搞清楚定时器的内部是如何工作的，我们需要证实这样一个事实：定时器的延迟时间是不能够被保证的。这是因为所有在浏览器环境中的 
Javascript 都是在一个 
单线程中执行的，只有在遇到两个“执行窗口”的缝隙的时候那些异步的事件（用户点击鼠标、定时器触发）才能被执行。下面这个图例很好的演示了这一点：</p><div id="attachment_139" class="wp-caption aligncenter" style="width: 310px;"><a href="http://blog.anbutu.com/wp-content/uploads/2009/09/timers.png"><img class="size-medium wp-image-139" title="timers" src="http://blog.anbutu.com/wp-content/uploads/2009/09/timers-300x225.png" alt="javascript timers" width="300" height="225" /></a><p class="wp-caption-text">javascript timers</p></div><p>上面的图中包含了很多需要理解的信息，一旦完全理解了这些，你会对 Javascript 
的异步时间的执行有更加清晰的认识。在上面的这个一维的图示中，竖直方向是以微妙 为单位的时间，蓝色框代表 Javascript 
执行的代码块。例如，上图中第一个代码块执行时间约为18毫秒，鼠标点击（Mouse Click）事件的回调函数执行了大约11毫秒。</p><p>因为 Javascript 
在同一时间只能执行某个代码块（这是由它单线程的本质决定的），当这个代码块执行的时候，异步事件的响应就被“阻塞”了，这意味着这时候产生 
的异步事件（鼠标点击、定时器触发、XMLHttpRequest请求完成）被加入到一个队列中（不同的浏览器处理事件缓存的方式有很大的差异，这里我们
只需要认为事件被放入了 一个队列就可以了）等待着下次机会执行。</p><p>在上图中，在第一个代码块执行期间初始化了两个定时器：一个10毫秒的 setTimeout 和一个10毫秒的 
setInterval。由于在定时器触发的时候，第一个代码块还没有执行完成， 
因此定时器设定的回调函数不会被立即执行，相反它会被加入队列等待下次机会执行。</p><p>另外，在第一个代码块执行过程中发生了一次鼠标点击事件，与这个异步事件（因为我们不能确定鼠标点击事件什么时候会发生，因此也认为它是异步的）相
关联的回调函数也 不会立即执行，它同样被加入队列等待下次机会执行。</p><p>当第一个代码块执行完，浏览器会查询是否有等待执行的任务？而当前情况下，鼠标点击事件和定时器的回调函数都等待执行，于是浏览器按照顺序先取出鼠
标点击事件的回调函数并立即执行它，而定时器的回调函数仍需要等待下次机会执行。</p><p>我们注意到，在鼠标点击事件的回调函数执行过程中，“间隔定时器”（interval）被触发，和普通定时器一样，它的回调函数也被加入队列等待机
会执行。但是，当“间隔定时器”再次被触发（在普通定时器的回调函数的执行期间）的时候，它的回调函数被丢弃而不是被加入等待队列。假设所有的“间隔定时
器”的回调函数无论如何都被加入等待队列的话，那么在执行一个非常大的代码块的时候就会有大批的回调函数被加入等待队列，等到代码块执行结束，这一批回调
函数就会无间隔的执行。与此相反，浏览器更倾向于在把“间隔定时器”的回调函数加入等待队列之前简单的等待直到等待队列中没有其他的“间隔定时器”的回调
函数。</p><p>实际上我们可以看到，这正是“间隔定时器”的回调函数正在执行的时候另一个个“间隔定时器”被触发的情形。这向我们揭示了一个重要的事实：“间隔定
时器”不关心当前正在运行的回调函数是什么，只是简单的把回调函数加入等待队列即使这意味着这两个回调函数将会无间隔的被执行。</p><p>最后，当第二个“间隔定时器”的回调函数执行结束，我们看到已经没有等待处理的回调函数了，这时候浏览器等待新的异步事件发生。当到达 50ms 
标记的时候，“间隔定时器”再次被触发，这时候已经没有等待执行的任务，因此回调函数立即被执行。</p><p>下面让我们看一个更加能够说明 setTimeout 和 setInterval 之间区别的例子：</p><pre class="javascript">setTimeout(function(){<br />/* Some long block of code... */<br />setTimeout(arguments.callee, 10);<br />}, 10);<br /><br />setInterval(function(){<br />/* Some long block of code... */<br />}, 10);</pre><p>当第一眼看上去的时候也许你会觉得这两个函数功能是完全一样的，但实际上它们并不相同。使用 setTimeout 
的函数会保证它们执行的间隔至少为 10 毫秒（只可能多不可能少），而使用 setInterval 的代码会尝试每隔 10 
毫秒执行一次，它不会在乎上一次执行到现在的间隔有多少。</p><p>在上面我们学到了很多东西，让我们总结一下：</p><ul><li>Javascript 引擎是单线程的，致使异步事件的回调函数会被加入队列等待机会执行。</li><li>setTimeout 和 setInterval 在如何执行异步代码上有根本的区别</li><li>如果定时器（的回调函数）不能够被立即执行，那么它将被推迟到下次机会执行（这将大于它预期的延迟）</li><li>如果回调函数执行时间过长（长于定时器的延迟时间），“间隔定时器”有可能会一个接一个无间隔的执行</li></ul><p>All of this is incredibly important knowledge to build off of. 
Knowing how a JavaScript engine works, especially with the large number 
of asynchronous events that typically occur, makes for a great 
foundation when building an advanced piece of application code.</p><img src ="http://www.blogjava.net/jasmine214--love/aggbug/326226.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jasmine214--love/" target="_blank">幻海蓝梦</a> 2010-07-15 20:41 <a href="http://www.blogjava.net/jasmine214--love/archive/2010/07/15/326226.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>悟透 JavaScript--（非常诗意的文章）</title><link>http://www.blogjava.net/jasmine214--love/archive/2010/07/15/326224.html</link><dc:creator>幻海蓝梦</dc:creator><author>幻海蓝梦</author><pubDate>Thu, 15 Jul 2010 12:07:00 GMT</pubDate><guid>http://www.blogjava.net/jasmine214--love/archive/2010/07/15/326224.html</guid><wfw:comment>http://www.blogjava.net/jasmine214--love/comments/326224.html</wfw:comment><comments>http://www.blogjava.net/jasmine214--love/archive/2010/07/15/326224.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/jasmine214--love/comments/commentRss/326224.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jasmine214--love/services/trackbacks/326224.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 原文：http://www.cnblogs.com/leadzen/archive/2008/02/25/1073404.html								引子								    编程世界里只存在两种基本元素，一个是数据，一个是代码。编程世界就是在数据和代码千丝万缕的纠缠中呈现出无限的生机和活力。    数据天生就是文静的，总想保持自己固有的本色；而代码却天生活泼，总...&nbsp;&nbsp;<a href='http://www.blogjava.net/jasmine214--love/archive/2010/07/15/326224.html'>阅读全文</a><img src ="http://www.blogjava.net/jasmine214--love/aggbug/326224.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jasmine214--love/" target="_blank">幻海蓝梦</a> 2010-07-15 20:07 <a href="http://www.blogjava.net/jasmine214--love/archive/2010/07/15/326224.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用wz_jsgraphics.js（javascript图形库）进行画矢量图,兼容多浏览器</title><link>http://www.blogjava.net/jasmine214--love/archive/2010/07/14/326067.html</link><dc:creator>幻海蓝梦</dc:creator><author>幻海蓝梦</author><pubDate>Wed, 14 Jul 2010 03:22:00 GMT</pubDate><guid>http://www.blogjava.net/jasmine214--love/archive/2010/07/14/326067.html</guid><wfw:comment>http://www.blogjava.net/jasmine214--love/comments/326067.html</wfw:comment><comments>http://www.blogjava.net/jasmine214--love/archive/2010/07/14/326067.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jasmine214--love/comments/commentRss/326067.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jasmine214--love/services/trackbacks/326067.html</trackback:ping><description><![CDATA[
		<p>
				<span id="ArticleContent1_ArticleContent1_lblContent">
						<font size="2">原文：</font>
						<a href="http://squll.blogbus.com/logs/3932957.html">
								<font size="2">http://squll.blogbus.com/logs/3932957.html</font>
						</a>
						<br />
						<font size="2">序：在 </font>
						<a href="http://www.sitepoint.com/">
								<font color="#0000ff" size="2">www.sitepoint.com </font>
						</a>
						<font size="2">上看了 Simon 的一篇 BLOG ，引导我去了一个很棒的 Web 开发站点 </font>
						<a href="http://www.walterzorn.com/">
								<font color="#0000ff" size="2">http://www.walterzorn.com/ </font>
						</a>
						<font size="2">，并在那里获得了一个仅用 DHTML 和 Javscript 技术开发的一个高性能的矢量图形库 wz_jsgraphics.js （感谢 Walter Zorn 开发了这个图形库），使用它就可以在你的网页上画出漂亮的矢量图形了。进入这个图形库的介绍页面 </font>
						<a href="http://www.walterzorn.com/jsgraphics/jsgraphics_e.htm">
								<font color="#0000ff" size="2">http://www.walterzorn.com/jsgraphics/jsgraphics_e.htm </font>
						</a>
						<font size="2">，映入眼帘的是折线、多边形、圆等常见的一些几何图形，起初我以为不过是一些图片罢了，当我看到这行小字 These are not image files. Shapes &amp; text have been dynamically drawn with wz_jsgraphics.js 后，并细细阅读了关于它的说明后，才意识到除了VML 和 SVG可以在 网页上绘制显示矢量图形，仅用DHTML 和 Javascript 同样可以做到这一切！是不是觉得很吃惊呢？(双击一下这个文档，看看放大后的矢量图形吧)，ok!废话少说，下面我将详细介绍一下这个图形库。</font>
				</span>
		</p>
		<span>
				<span id="ArticleContent1_ArticleContent1_lblContent">
						<p>
								<strong>
										<font size="2">
												<span style="FONT-FAMILY: 宋体; COLOR: black; FONT-SIZE: 10.5pt">★ </span>总览 (overview) </font>
								</strong>
						</p>
						<p>
								<font size="2">该图形库使用了 DHTML 和 Javascript 技术，它可以画线，圆，椭圆，折线，多边形，矩形。对于一个不太了解 Javascript 的人来说使用这个图形库也是非常容易的，另外，使用这个图形库画出的图形是完全被优化到像素级的！ </font>
						</p>
						<span id="ArticleContent1_ArticleContent1_lblContent">
								<p>
										<strong>
												<font size="2">
														<span style="FONT-FAMILY: 宋体; COLOR: black; FONT-SIZE: 10.5pt">★ </span>浏览器的兼容性 </font>
										</strong>
								</p>
								<p>
										<font size="2">Linux 系统 : <br />Browsers with Gecko-Engine (Mozilla, Netscape 6+, Galeon), Konqueror 3.0.3 ( 非常慢 ), Netscape 4, Opera 5 and 6. <br /><br />Windows 系统 : <br />Gecko-Browsers, IE 4, 5 and 6, Netscape 4, Opera 5, 6 and 7. <br /></font>
								</p>
								<p>
										<font size="2">说明：如果在网页全部加载完成后，使用这个矢量图形库进行绘制，在 Opera 版本 7 以前的浏览器中不会执行， Netscape 版本 4 也不会执行。相反，当 HTML 页面正在被解析时， 使用这个图形库进行绘制是全部浏览器均能做到的。 <br /><br /></font>
								</p>
								<p>
										<strong>
												<font size="2">
														<span style="FONT-FAMILY: 宋体; COLOR: black; FONT-SIZE: 10.5pt">★ </span>怎样使用这个矢量图形库？ </font>
										</strong>
								</p>
								<p>
								</p>
								<table bordercolor="#ffffff" cellpadding="0" bgcolor="#e6e6e6">
										<tbody>
												<tr>
														<td>
																<p>
																		<font size="2">1 ．包含这个库 </font>
																</p>
																<p>
																		<font size="2">插入下面的代码到你的 html 文件的开头部分（在 &lt;head&gt; 和 &lt;/head&gt; 之间）： </font>
																</p>
														</td>
														<td>
																<font size="2">
																</font>
														</td>
												</tr>
												<tr>
														<td>
																<table cellspacing="0" cellpadding="0">
																		<tbody>
																				<tr>
																						<td>
																								<table cellspacing="1" cellpadding="0">
																										<tbody>
																												<tr>
																														<td>
																																<p>
																																		<font size="2">&lt;script type="text/javascript" src="wz_jsgraphics.js"&gt;&lt;/script&gt; </font>
																																</p>
																														</td>
																												</tr>
																										</tbody>
																								</table>
																						</td>
																				</tr>
																		</tbody>
																</table>
														</td>
														<td>
																<font size="2">
																</font>
														</td>
												</tr>
												<tr>
														<td>
																<p>
																		<font size="2">2 ．使用层（ div 或 layer ）作为画布（ canvases ） <br />如果是当页面正被载入时，直接在 html 页面中绘制，那么这个步骤不是必须的。 </font>
																</p>
																<p>
																		<font size="2">如果在页面加载完成后绘制，应该设置几个具有绝对坐标的层，作为你的画布，每一个层应该有一个唯一的 id: <br />&lt;div id="myCanvas" style="position:relative;height:250px;width:100%;"&gt;&lt;/div&gt; <br />... <br />&lt;div id="anotherCanvas" style="position:relative;height:100px;width:300px;"&gt;&lt;/div&gt; </font>
																</p>
														</td>
														<td>
																<font size="2">
																</font>
														</td>
												</tr>
												<tr>
														<td>
																<p>
																		<font size="2">3 ．下载并保存这个图形库 </font>
																</p>
																<p>
																		<font size="2">到这个地址 </font>
																		<a href="http://www.walterzorn.com/scripts/wz_jsgraphics.zip">
																				<font color="#0000ff" size="2">http://www.walterzorn.com/scripts/wz_jsgraphics.zip </font>
																		</a>
																		<font size="2">下载，将解压后的 wz_jagraphics.js 与你的 html 文件放至相同的目录中，如果你的 wz_jagraphics.js 与 html 文件处于不同的目录下，记得在 src=”wz_jsgraphics.js” 中指示 wz_jagraphics.js 的相对路径。 </font>
																</p>
														</td>
														<td>
																<font size="2">
																</font>
														</td>
												</tr>
										</tbody>
								</table>
								<p>
										<strong>
												<font size="2">
												</font>
										</strong>
								</p>
								<p align="left">
										<font size="2">
												<strong>
														<span style="FONT-FAMILY: 宋体; COLOR: black; FONT-SIZE: 10.5pt">★ </span>怎样使用这个矢量图形库中的绘制函数？ </strong>
												<strong>
												</strong>
										</font>
								</p>
								<p align="left">
										<font size="2">
												<strong>1 </strong>
												<strong>． </strong>
												<strong>创建一个 </strong>
												<strong>jsGraphics </strong>
												<strong>对象 </strong>
												<strong>
												</strong>
										</font>
								</p>
								<p>
								</p>
								<table cellpadding="0">
										<tbody>
												<tr>
														<td>
																<p align="left">
																		<font size="2">
																				<strong>a) </strong>
																				<strong>在页面完全载入后绘制： </strong>
																				<strong>
																				</strong>
																		</font>
																</p>
																<p align="left">
																		<font size="2">（这种方式不会在 Netscape 版本 4 和 Opera 版本小于 7 的浏览器中执行） </font>
																</p>
																<p align="left">
																		<font size="2">还记得前面用 div 元素创建的画布吗？看下面的示例， 需要为 div 创建相应的 jsGraphics 对象，这些代码必须插入到相关的 div 元素结束标志 &lt;/div&gt; 后面， 但必须在 &lt;/body&gt; 的前面， div 元素的 id 作为 new jsGraphics(); 的构造参数，像下面这样： </font>
																</p>
														</td>
												</tr>
												<tr>
														<td>
																<table cellspacing="0" cellpadding="0">
																		<tbody>
																				<tr>
																						<td>
																								<table cellspacing="1" cellpadding="0">
																										<tbody>
																												<tr>
																														<td bgcolor="#e6e6e6">
																																<p align="left">
																																		<font size="2">&lt;script type="text/javascript"&gt; <br />&lt;!-- <br /><br />var jg = new jsGraphics("myCanvas"); <br /><br />//--&gt; <br />&lt;/script&gt; </font>
																																</p>
																														</td>
																												</tr>
																										</tbody>
																								</table>
																						</td>
																				</tr>
																		</tbody>
																</table>
														</td>
												</tr>
												<tr>
														<td>
																<p align="left">
																		<font size="2">如果有多个 div 元素，每一个 div 都需要有它自已的 jsGraphics 对象： </font>
																</p>
														</td>
												</tr>
												<tr>
														<td>
																<table cellspacing="0" cellpadding="0">
																		<tbody>
																				<tr>
																						<td>
																								<table cellspacing="1" cellpadding="0">
																										<tbody>
																												<tr>
																														<td bgcolor="#e6e6e6">
																																<p align="left">
																																		<font size="2">&lt;script type="text/javascript"&gt; <br />&lt;!-- <br /><br />var jg = new jsGraphics("myCanvas"); <br />var jg2 = new jsGraphics("anotherCanvas"); <br /><br />//--&gt; <br />&lt;/script&gt; </font>
																																</p>
																														</td>
																												</tr>
																										</tbody>
																								</table>
																						</td>
																				</tr>
																		</tbody>
																</table>
														</td>
														<td>
																<font size="2">
																</font>
														</td>
												</tr>
												<tr>
														<td>
																<p align="left">
																		<font size="2">
																				<strong>b ）在页面载入的时候绘制 </strong>
																				<br />（在 Netscape 4 和 Opera 5/6 可以执行） </font>
																</p>
																<p align="left">
																		<font size="2">只需要将构造参数设为空： </font>
																</p>
														</td>
														<td>
																<font size="2">
																</font>
														</td>
												</tr>
												<tr>
														<td>
																<table cellspacing="0" cellpadding="0">
																		<tbody>
																				<tr>
																						<td>
																								<table cellspacing="1" cellpadding="0">
																										<tbody>
																												<tr>
																														<td bgcolor="#e6e6e6">
																																<p align="left">
																																		<font size="2">&lt;script type="text/javascript"&gt; <br />&lt;!-- <br /><br />var jg_doc = new jsGraphics(); <br /><br />//--&gt; <br />&lt;/script&gt; </font>
																																</p>
																														</td>
																												</tr>
																										</tbody>
																								</table>
																						</td>
																				</tr>
																		</tbody>
																</table>
																<p align="left">
																		<font size="2">你可以选择 jg,jg2 或 jg_doc 其它的变量名，只要不违反 Javascript 的命名规则就可以。 </font>
																</p>
														</td>
														<td>
																<font size="2">
																</font>
														</td>
												</tr>
												<tr>
														<td>
																<font size="2">
																</font>
														</td>
														<td>
																<font size="2">
																</font>
														</td>
												</tr>
										</tbody>
								</table>
								<p>
										<strong>
												<font size="2">
												</font>
										</strong>
								</p>
								<p align="left">
										<font size="2">
												<strong>2. </strong>
												<strong>图形绘制函数 </strong>
												<strong>
												</strong>
										</font>
								</p>
								<p>
								</p>
								<table cellpadding="0">
										<tbody>
												<tr>
														<td>
																<p align="left">
																		<font size="2">为确保所有浏览器能正确执行， 这里选择页面载入时进行绘制，即上文的 b 方式 </font>
																</p>
																<p align="left">
																		<font size="2">一旦产生这些图形对象（在这个示例中 jg, jg2 或 jg_doc ），就可以使用它来调用绘制图形的方法。由图形对象所绘制的图形将会在相关的 div 元素上显示（采用上文 a 方式构造图形对象）： </font>
																</p>
														</td>
														<td>
																<font size="2">
																</font>
														</td>
												</tr>
												<tr>
														<td>
																<table cellspacing="0" cellpadding="0">
																		<tbody>
																				<tr>
																						<td>
																								<table cellspacing="1" cellpadding="0">
																										<tbody>
																												<tr>
																														<td bgcolor="#e6e6e6">
																																<p align="left">
																																		<font size="2">&lt;script type="text/javascript"&gt; <br />&lt;!-- <br />function myDrawFunction() <br />{ <br />jg_doc.setColor("#00ff00"); <em>// </em><em>选择绿色 </em><br />jg_doc.fillEllipse(100, 200, 100, 180); <em>// </em><em>坐标点相对于文档 </em><em>(document) </em><br />jg_doc.setColor("maroon"); <br />jg_doc.drawPolyline(new Array(50, 10, 120), new Array(10, 50, 70)); <br />jg_doc.paint(); <em>// </em><em>注意：直接在文档上绘制，而不与某个 </em><em>div </em><em>关联 </em><em>, </em><br /><br />jg.setColor("#ff0000"); <em>// </em><em>选择红色 </em><br />jg.drawLine(10, 113, 220, 55); <em>// </em><em>坐标点相对于 </em><em>div </em><em>元素 </em><em>"myCanvas" </em><br />jg.setColor("#0000ff"); <em>// </em><em>选择蓝色 </em><br />jg.fillRect(110, 120, 30, 60); <br />jg.paint(); <br /><br />jg2.setColor("#0000ff"); <em>// </em><em>选择蓝色 </em><br />jg2.drawEllipse(10, 50, 30, 100); <br />jg2.drawRect(400, 10, 100, 50); <br />jg2.paint(); <br />} <br /><br />var jg_doc = new jsGraphics(); <em>// </em><em>直接在文档上绘制 </em><br />var jg = new jsGraphics("myCanvas"); <br />var jg2 = new jsGraphics("anotherCanvas"); <br /><br />myDrawFunction(); <br /><br />//--&gt; <br />&lt;/script&gt; </font>
																																</p>
																														</td>
																												</tr>
																										</tbody>
																								</table>
																						</td>
																				</tr>
																		</tbody>
																</table>
														</td>
														<td>
																<font size="2">
																</font>
														</td>
												</tr>
												<tr>
														<td>
																<p align="left">
																		<font size="2">开始画时应首先选择画笔颜色，否则，画笔的颜色取默认值－黑色。坐标值作为绘制图形方法的参数，如果采用上文的 a 方式构造图形对象，那么坐标值是相对于 div 元素的左上角的。每一个画布（图形对象），它的 paint 方法必须被显示的调用以产生 html 格式的图形，否则，在你的屏幕上什么都不会发生。 </font>
																</p>
														</td>
														<td>
																<font size="2">
																</font>
														</td>
												</tr>
										</tbody>
								</table>
								<br />
								<br />
								<table class="mytab" cellspacing="0" cellpadding="0">
										<tbody>
												<tr class="mytd">
														<td class="mytd" bgcolor="#e6e6e6" align="middle">
																<strong>
																		<font size="2">函数名（方法） </font>
																</strong>
														</td>
														<td class="mytd" bgcolor="#e6e6e6" align="middle">
																<font size="2">
																		<strong>示例代码（用 </strong>
																		<strong>jg </strong>
																		<strong>图形对象） </strong>
																</font>
														</td>
												</tr>
												<tr class="mytd">
														<td class="mytd" valign="top">
																<p align="left">
																		<font size="2">
																				<strong>setColor( </strong>"#HexColor" <strong>); </strong><br />指定画笔颜色，一旦设置后，这个颜色会一直保留，直到下一次再重新指定画笔颜色，这个颜色值可以类似于 html 中的 #rrggbb 颜色表示，用名称表示颜色也可以，例如：“ maroon ” </font>
																</p>
														</td>
														<td class="mytd" valign="top">
																<p align="left">
																		<font size="2">jg.setColor("#ff0000"); <br /><br />or with identical result <br /><br />jg.setColor("red"); </font>
																</p>
														</td>
												</tr>
												<tr class="mytd">
														<td class="mytd" valign="top">
																<p align="left">
																		<font size="2">
																				<strong>setStroke( </strong>Number <strong>); </strong><br />指定画笔采用的线厚度，这个厚度一旦被设置，会一直保留，直到下一次重新指定一，默认厚度是 1px. <br />要设置点划线型，需要传 Stroke.DOTTED 参数，点划线型同样适用于矩形，多边型，折线和椭圆。 <br /><br /></font>
																</p>
														</td>
														<td class="mytd" valign="top">
																<p align="left">
																		<font size="2">jg.setStroke(3); <br /><br />or <br /><br />jg.setStroke(Stroke.DOTTED); </font>
																</p>
														</td>
												</tr>
												<tr class="mytd">
														<td class="mytd" valign="top">
																<p align="left">
																		<font size="2">
																				<strong>drawLine( </strong>X1, Y1, X2, Y2 <strong>); </strong><br />画线。从第一个坐标点到第二个坐标点，线的厚度由 setStroke 设置。 </font>
																</p>
														</td>
														<td class="mytd" valign="top">
																<p align="left">
																		<font size="2">jg.drawLine(20,50,453,40); </font>
																</p>
														</td>
												</tr>
												<tr class="mytd">
														<td class="mytd" valign="top">
																<p align="left">
																		<font size="2">
																				<strong>drawPolyline( </strong>Xpoints, Ypoints <strong>); </strong><br />一条折线是一系列线段的集合， Xpoints 和 Ypoints 是每个点的 x 坐标和 y 坐标的数组集合，必须像下面这样声明： </font>
																</p>
																<p align="left">
																		<font size="2">var Xpoints = new Array(x1,x2,x3,x4,x5); <br />var YPoints = new Array(y1,y2,y3,y4,y5); </font>
																</p>
														</td>
														<td class="mytd" valign="top">
																<p align="left">
																		<font size="2">var Xpoints = new Array(10,85,93,60); <br />var YPoints = new Array(50,10,105,87); <br />jg.drawPolyline(Xpoints,Ypoints); </font>
																</p>
														</td>
												</tr>
												<tr class="mytd">
														<td class="mytd" valign="top">
																<p align="left">
																		<font size="2">
																				<strong>drawRect( </strong>X, Y, width, height <strong>); </strong></font>
																</p>
																<p align="left">
																		<font size="2">一个矩形的外边线。参照左上角的坐标点，并指定矩形的宽度和高度。 </font>
																</p>
														</td>
														<td class="mytd" valign="top">
																<p align="left">
																		<font size="2">jg.drawRect(20,50,70,140); </font>
																</p>
														</td>
												</tr>
												<tr class="mytd">
														<td class="mytd" valign="top">
																<p align="left">
																		<font size="2">
																				<strong>fillRect( </strong>X, Y, width, height <strong>); </strong></font>
																</p>
																<p align="left">
																		<font size="2">填充矩形，参照左上角的坐标点，并指定矩形的宽度和高度。 </font>
																</p>
														</td>
														<td class="mytd" valign="top">
																<p align="left">
																		<font size="2">jg.fillRect(20,50,453,40); </font>
																</p>
														</td>
												</tr>
												<tr class="mytd">
														<td class="mytd" valign="top">
																<p align="left">
																		<font size="2">
																				<strong>drawPolygon( </strong>Xpoints, Ypoints <strong>); </strong><br />多边形。 Xpoints 和 Ypoints 是每个点的 x 坐标和 y 坐标的数组集合，必须像下面这样声明： </font>
																</p>
																<p align="left">
																		<font size="2">var Xpoints = new Array(x1,x2,x3,x4,x5); <br />var YPoints = new Array(y1,y2,y3,y4,y5); </font>
																</p>
																<p align="left">
																		<font size="2">如果始点和终点末被指定，多边线将会自动闭合。 </font>
																</p>
														</td>
														<td class="mytd" valign="top">
																<p align="left">
																		<font size="2">var Xpoints = new Array(10,85,93,60); <br />var Ypoints = new Array(50,10,105,87); <br />jg.drawPolygon(Xpoints, Ypoints); <br /><br />Instead of Xpoints and Ypoints you may use another name provided it follows the rules for variable names. </font>
																</p>
														</td>
												</tr>
												<tr class="mytd">
														<td class="mytd" valign="top">
																<p align="left">
																		<font size="2">
																				<strong>fillPolygon( </strong>Xpoints, Ypoints <strong>); </strong></font>
																</p>
																<p align="left">
																		<font size="2">填充矩形。参数作用见 drawPolygon() </font>
																</p>
														</td>
														<td class="mytd" valign="top">
																<p align="left">
																		<font size="2">jg.fillPolygon(new Array(10,85,93,60), new Array(50,10,105,87)); </font>
																</p>
														</td>
												</tr>
												<tr class="mytd">
														<td class="mytd" valign="top">
																<p align="left">
																		<font size="2">
																				<strong>drawEllipse( </strong>X, Y, width, height <strong>); </strong></font>
																</p>
																<p align="left">
																		<font size="2">画椭圆边线。参照椭圆的外接矩形， x 和 y 是这个外接矩形的左上角坐标 </font>
																</p>
														</td>
														<td class="mytd" valign="top">
																<p align="left">
																		<font size="2">jg.drawEllipse(20,50,70,140); <br />or <br />jg.drawOval(20,50,70,140); </font>
																</p>
														</td>
												</tr>
												<tr class="mytd">
														<td class="mytd" valign="top">
																<p align="left">
																		<font size="2">
																				<strong>fillEllipse( </strong>X, Y, width, height <strong>); </strong><br />填充椭圆。参数见 drawEllipse() </font>
																</p>
														</td>
														<td class="mytd" valign="top">
																<p align="left">
																		<font size="2">jg.fillEllipse(20,50,71,141); <br />or <br />jg.fillOval(20,50,71,141); </font>
																</p>
														</td>
												</tr>
												<tr class="mytd">
														<td class="mytd" valign="top">
																<p align="left">
																		<font size="2">
																				<strong>drawString( </strong>"Text", X, Y <strong>); </strong></font>
																</p>
																<p align="left">
																		<font size="2">写文本至由 x 和 y 坐标指定的位置。不同于 Java ，坐标值是第一行文本的左上角坐标值。如果文本中包含有 HTML 标记将被转义，举个例子： </font>
																</p>
																<p align="left">
																		<font size="2">"Some Text&lt;br&gt;more Text" 会被转义为两行 </font>
																</p>
																<p align="left">
																		<br />
																		<font size="2">
																				<strong>setFont( </strong>"font-family", "size+unit", Style <strong>); </strong><br />在 drawString() 之前调用。指定字体，大小，样式，字体和大小可以是与 HTML 中指示的一样，至于样式，可以使用的有： <br />Font.PLAIN 默认样式，非粗体和斜体 <br />Font.BOLD 粗体 <br />Font.ITALIC 斜体 </font>
																</p>
																<p align="left">
																		<font size="2">它们可以结合使用 </font>
																</p>
														</td>
														<td class="mytd" valign="top">
																<p align="left">
																		<font size="2">jg.setFont("arial","15px",Font.BOLD); <br />jg.drawString("Some Text",20,50); </font>
																</p>
														</td>
												</tr>
												<tr class="mytd">
														<td class="mytd" valign="top">
																<p align="left">
																		<font size="2">
																				<strong>drawImage( </strong>"src", X, Y, width, height <strong>); </strong><br />在指定的位置画图像， ”src” 参数指定图像所在路径， width 和 height 参数允许调整图像宽高。 </font>
																</p>
														</td>
														<td class="mytd" valign="top">
																<p align="left">
																		<font size="2">jg.drawImage("friendlyDog.jpg", 20,50,100,150); </font>
																</p>
														</td>
												</tr>
												<tr class="mytd">
														<td class="mytd" valign="top">
																<p align="left">
																		<font size="2">
																				<strong>paint(); </strong>
																				<br />必须显示调用，才能真正在 html 页面上画图形，不推荐每隔一段（每画一个图形）就调用一次。 </font>
																</p>
																<p align="left">
																		<font size="2">像下面这样的调用应该避免 : <br />jg.drawEllipse(0, 0, 100, 100); <br />jg.paint(); <br />jg.drawLine(200, 10, 400, 40); <br />jg.paint(); <br />... <br /></font>
																</p>
																<p align="left">
																		<font size="2">像下面这样的调用性能会很高 : <br />jg.drawEllipse(0, 0, 100, 100); <br />jg.drawLine(200, 10, 400, 40); <br />/*... 还有其它画的方法 ... */ <br />jg.paint(); // 最后调用 paint() </font>
																</p>
														</td>
														<td class="mytd" valign="top">
																<p align="left">
																		<font size="2">jg.paint(); </font>
																</p>
														</td>
												</tr>
												<tr class="mytd">
														<td class="mytd" valign="top">
																<p align="left">
																		<strong>
																				<font size="2">clear(); </font>
																		</strong>
																</p>
																<p align="left">
																		<font size="2">与图形对象关联的 div 画布中的图形被清除（在 div 中不是由这个图形对象创建的内容是不会被改变的） </font>
																</p>
														</td>
														<td class="mytd" valign="top">
																<p align="left">
																		<font size="2">jg.clear(); <br /></font>
																</p>
														</td>
												</tr>
												<tr class="mytd">
														<td class="mytd" valign="top">
																<p align="left">
																		<font size="2">
																				<strong>setPrintable( </strong>true <strong>); </strong></font>
																</p>
																<p align="left">
																		<font size="2">默认情况下，打印这些图形是不太可行的，因为浏览器的默认打印设置中会关闭打印背景，调用 setPrintable() ，并设置参数为 true ，将重置图形为可打印的（至少在 Mozilla/Netscape 6+ and IE 中） </font>
																</p>
														</td>
												</tr>
										</tbody>
								</table>
						</span>
				</span>
		</span>
<img src ="http://www.blogjava.net/jasmine214--love/aggbug/326067.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jasmine214--love/" target="_blank">幻海蓝梦</a> 2010-07-14 11:22 <a href="http://www.blogjava.net/jasmine214--love/archive/2010/07/14/326067.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>让DIV不换行 &amp;   多div重叠</title><link>http://www.blogjava.net/jasmine214--love/archive/2010/07/04/325224.html</link><dc:creator>幻海蓝梦</dc:creator><author>幻海蓝梦</author><pubDate>Sun, 04 Jul 2010 14:23:00 GMT</pubDate><guid>http://www.blogjava.net/jasmine214--love/archive/2010/07/04/325224.html</guid><wfw:comment>http://www.blogjava.net/jasmine214--love/comments/325224.html</wfw:comment><comments>http://www.blogjava.net/jasmine214--love/archive/2010/07/04/325224.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jasmine214--love/comments/commentRss/325224.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jasmine214--love/services/trackbacks/325224.html</trackback:ping><description><![CDATA[原文：<a href="http://www.okajax.com/a/200807/0G0N442008.html">http://www.okajax.com/a/200807/0G0N442008.html</a><br />一，单个DIV：<br />1.用nobr元素<br /><div style="BORDER-BOTTOM: #ccf 1px dotted; BORDER-LEFT: #ccf 1px dotted; PADDING-BOTTOM: 5px; MARGIN: 5px; PADDING-LEFT: 5px; WIDTH: 90%; PADDING-RIGHT: 5px; BORDER-TOP: #ccf 1px dotted; BORDER-RIGHT: #ccf 1px dotted; PADDING-TOP: 5px">&lt;html&gt;<br />&lt;head&gt;<br />&lt;/head&gt;<br />&lt;body&gt;<br />&lt;div&gt;&lt;nobr&gt;不换行不换行&lt;nobr&gt;&lt;/div&gt;<br />&lt;/body&gt;<br />&lt;/html&gt;</div><br /><br />2.用nowrap元素<br />Code: <br /><div style="BORDER-BOTTOM: #ccf 1px dotted; BORDER-LEFT: #ccf 1px dotted; PADDING-BOTTOM: 5px; MARGIN: 5px; PADDING-LEFT: 5px; WIDTH: 90%; PADDING-RIGHT: 5px; BORDER-TOP: #ccf 1px dotted; BORDER-RIGHT: #ccf 1px dotted; PADDING-TOP: 5px">&lt;html&gt;<br />&lt;head&gt;<br />&lt;/head&gt;<br />&lt;body&gt;<br />&lt;div nowrap&gt;div不换行div不换行div不换行&lt;/div&gt;<br />&lt;/body&gt;<br />&lt;/html&gt;</div><br /><br />二，两个DIV<br />1. 用CSS里的float属性<br /><div style="BORDER-BOTTOM: #ccf 1px dotted; BORDER-LEFT: #ccf 1px dotted; PADDING-BOTTOM: 5px; MARGIN: 5px; PADDING-LEFT: 5px; WIDTH: 90%; PADDING-RIGHT: 5px; BORDER-TOP: #ccf 1px dotted; BORDER-RIGHT: #ccf 1px dotted; PADDING-TOP: 5px">&lt;html&gt;<br />&lt;head&gt;<br />&lt;style type="text/css"&gt;<br />div#row1 { float: left; color: blue; }<br />div#row2 { color: red }<br />&lt;/style&gt;<br />&lt;/head&gt;<br />&lt;body&gt;<br />&lt;div id="row1"&gt;第一个div&lt;/div&gt;<br />&lt;div id="row2"&gt;第二个div不换行&lt;/div&gt;<br />&lt;/body&gt;<br />&lt;/html&gt;</div><br /><br />2. 用CSS里的diplay属性<br /><div style="BORDER-BOTTOM: #ccf 1px dotted; BORDER-LEFT: #ccf 1px dotted; PADDING-BOTTOM: 5px; MARGIN: 5px; PADDING-LEFT: 5px; WIDTH: 90%; PADDING-RIGHT: 5px; BORDER-TOP: #ccf 1px dotted; BORDER-RIGHT: #ccf 1px dotted; PADDING-TOP: 5px">&lt;html&gt;<br />&lt;head&gt;<br />&lt;title&gt;CSS中的不换行&lt;/title&gt;<br />&lt;style type="text/css"&gt;<br />div#row1 { color: blue;display: inline }<br />div#row2 { color: red;display: inline }<br />&lt;/style&gt;<br />&lt;/head&gt;<br />&lt;body&gt;<br />&lt;div id="row1"&gt;第一个div&lt;/div&gt;<br />&lt;div id="row2"&gt;第二个div不要换行&lt;/div&gt;<br />&lt;/body&gt;<br />&lt;/html&gt;</div><p> 多DIV重叠</p><p>1.</p><div style="BORDER-BOTTOM: #ccf 1px dotted; BORDER-LEFT: #ccf 1px dotted; PADDING-BOTTOM: 5px; MARGIN: 5px; PADDING-LEFT: 5px; WIDTH: 90%; PADDING-RIGHT: 5px; BORDER-TOP: #ccf 1px dotted; BORDER-RIGHT: #ccf 1px dotted; PADDING-TOP: 5px">&lt;div id="left_bot_list1" style="height:448px;width:228px;overflow:auto"&gt;    <br />      &lt;/div&gt;<br />   &lt;div id="left_bot_list2" style="VISIBILITY:hidden;POSITION: relative;Top:expression(0-document.getElementById('left_bot_list1').offsetHeight);"&gt;<br />  <br />   &lt;/div&gt;   <br />   &lt;div id="left_bot_list3" style="VISIBILITY:hidden;POSITION: relative;Top:expression(0-document.getElementById('left_bot_list1').offsetHeight-document.getElementById('left_bot_list2').offsetHeight);"&gt;<br />   <br />   &lt;/div&gt; 
<p>&lt;script type="text/javascript" language="Javascript"&gt;<br />function changeDivleft_bot(num){<br />if(num == 1){  <br /><br />   left_bot_list1.style.visibility = "visible";<br />   left_bot_list2.style.visibility = "hidden";<br />   left_bot_list3.style.visibility = "hidden";<br />}<br />if(num == 2){  <br />  <br />   left_bot_list1.style.visibility = "hidden";<br />   left_bot_list2.style.visibility = "visible";<br />   left_bot_list3.style.visibility = "hidden";<br />  <br />}<br />if(num == 3){<br />   left_bot_list1.style.visibility = "hidden";<br />   left_bot_list2.style.visibility = "hidden";<br />   left_bot_list3.style.visibility = "visible";<br /><br />}</p><p>}</p><p>//alert(tree.loaded);<br />&lt;/script&gt;</p></div><p><br />2.</p><div style="BORDER-BOTTOM: #ccf 1px dotted; BORDER-LEFT: #ccf 1px dotted; PADDING-BOTTOM: 5px; MARGIN: 5px; PADDING-LEFT: 5px; WIDTH: 90%; PADDING-RIGHT: 5px; BORDER-TOP: #ccf 1px dotted; BORDER-RIGHT: #ccf 1px dotted; PADDING-TOP: 5px"><p>&lt;div id="left_bot_list1" style="display:inline;height:448px;width:222px;overflow:auto"&gt;    <br />      &lt;/div&gt;<br />   &lt;div id="left_bot_list2" style="display:none;height:448px;width:222px;overflow:auto"&gt;<br />   <br />   &lt;/div&gt;   <br />   &lt;div id="left_bot_list3" style="display:none;height:448px;width:222px;overflow:auto" &gt;<br />     <br />   &lt;/div&gt;</p><p>&lt;script type="text/javascript" language="Javascript"&gt;<br />function changeDivleft_bot(num){<br />if(num == 1){  <br />  <br />   left_bot_list1.style.display = 'inline';<br />   left_bot_list2.style.display = 'none';<br />   left_bot_list3.style.display = 'none'; <br />}<br />if(num == 2){  <br />  <br />   left_bot_list1.style.display = 'none';<br />   left_bot_list2.style.display = 'inline';<br />   left_bot_list3.style.display = 'none';<br />  <br />}<br />if(num == 3){<br />   left_bot_list1.style.display = 'none';<br />   left_bot_list2.style.display = 'none';<br />   left_bot_list3.style.display = 'inline';<br /><br />}</p><p>}</p><p>&lt;/script&gt;<br /></p></div><p>注意:此写法有一个问题</p><div style="BORDER-BOTTOM: #ccf 1px dotted; BORDER-LEFT: #ccf 1px dotted; PADDING-BOTTOM: 5px; MARGIN: 5px; PADDING-LEFT: 5px; WIDTH: 90%; PADDING-RIGHT: 5px; BORDER-TOP: #ccf 1px dotted; BORDER-RIGHT: #ccf 1px dotted; PADDING-TOP: 5px"><p>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;</p></div><p>若页面头部有以上这句话则无法实现滚动条的功能</p><img src ="http://www.blogjava.net/jasmine214--love/aggbug/325224.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jasmine214--love/" target="_blank">幻海蓝梦</a> 2010-07-04 22:23 <a href="http://www.blogjava.net/jasmine214--love/archive/2010/07/04/325224.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>DIV--重叠</title><link>http://www.blogjava.net/jasmine214--love/archive/2010/07/04/325223.html</link><dc:creator>幻海蓝梦</dc:creator><author>幻海蓝梦</author><pubDate>Sun, 04 Jul 2010 14:19:00 GMT</pubDate><guid>http://www.blogjava.net/jasmine214--love/archive/2010/07/04/325223.html</guid><wfw:comment>http://www.blogjava.net/jasmine214--love/comments/325223.html</wfw:comment><comments>http://www.blogjava.net/jasmine214--love/archive/2010/07/04/325223.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jasmine214--love/comments/commentRss/325223.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jasmine214--love/services/trackbacks/325223.html</trackback:ping><description><![CDATA[
		<div style="BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; FONT-SIZE: 13px; WORD-BREAK: break-all; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px">
				<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />
				<span style="COLOR: #000000">&lt;</span>
				<span style="COLOR: #000000">div id</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">id1</span>
				<span style="COLOR: #000000">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />
				</span>
				<span style="COLOR: #000000">&lt;</span>
				<span style="COLOR: #000000">div id</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">id2</span>
				<span style="COLOR: #000000">&gt;&lt;</span>
				<span style="COLOR: #000000">table width</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">180</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000"> border</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">0</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000"> cellspacing</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">0</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000"> cellpadding</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">0</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />  </span>
				<span style="COLOR: #000000">&lt;</span>
				<span style="COLOR: #000000">tr</span>
				<span style="COLOR: #000000">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />    </span>
				<span style="COLOR: #000000">&lt;</span>
				<span style="COLOR: #000000">td height</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">10</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">&gt;</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #000000">&lt;/</span>
				<span style="COLOR: #000000">td</span>
				<span style="COLOR: #000000">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />  </span>
				<span style="COLOR: #000000">&lt;/</span>
				<span style="COLOR: #000000">tr</span>
				<span style="COLOR: #000000">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />  </span>
				<span style="COLOR: #000000">&lt;</span>
				<span style="COLOR: #000000">tr</span>
				<span style="COLOR: #000000">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />    </span>
				<span style="COLOR: #000000">&lt;</span>
				<span style="COLOR: #000000">td height</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">30</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000"> style</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">font-size:14px; font-weight:bold;</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">&gt;</span>
				<span style="COLOR: #000000">Product Type</span>
				<span style="COLOR: #000000">&lt;/</span>
				<span style="COLOR: #000000">td</span>
				<span style="COLOR: #000000">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />  </span>
				<span style="COLOR: #000000">&lt;/</span>
				<span style="COLOR: #000000">tr</span>
				<span style="COLOR: #000000">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />  </span>
				<span style="COLOR: #000000">&lt;%</span>
				<span style="COLOR: #000000">set rec</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">conn.execute(</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">select * from Class where PartID='0' order by Classorder</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">)<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />       i</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">1</span>
				<span style="COLOR: #000000"> <br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />  </span>
				<span style="COLOR: #0000ff">while</span>
				<span style="COLOR: #000000"> not rec.eof</span>
				<span style="COLOR: #000000">%&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />  </span>
				<span style="COLOR: #000000">&lt;</span>
				<span style="COLOR: #000000">tr</span>
				<span style="COLOR: #000000">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />    </span>
				<span style="COLOR: #000000">&lt;</span>
				<span style="COLOR: #000000">td height</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">30</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000"> onmousemove</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">kk(&lt;%=40+(i-1)*30%&gt;,'&lt;%=rec(</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">ok</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">)%&gt;')</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000"> onmouseout</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">ll()</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">&gt;&lt;</span>
				<span style="COLOR: #000000">a href</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">products.asp?ClassID=&lt;%=rec(</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">NumberID</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">)%&gt;</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #0000ff">class</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">a3</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000"> target</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">_blank</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #000000">&gt;&lt;%=</span>
				<span style="COLOR: #000000">rec(</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">Class</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">)</span>
				<span style="COLOR: #000000">%&gt;&lt;/</span>
				<span style="COLOR: #000000">a</span>
				<span style="COLOR: #000000">&gt;&lt;/</span>
				<span style="COLOR: #000000">td</span>
				<span style="COLOR: #000000">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />  </span>
				<span style="COLOR: #000000">&lt;/</span>
				<span style="COLOR: #000000">tr</span>
				<span style="COLOR: #000000">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />   </span>
				<span style="COLOR: #000000">&lt;%</span>
				<span style="COLOR: #000000">rec.movenext<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />   i</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">i</span>
				<span style="COLOR: #000000">+</span>
				<span style="COLOR: #000000">1</span>
				<span style="COLOR: #000000">
						<br />
						<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />   wend<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />   rec.close<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />   set rec</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">nothing</span>
				<span style="COLOR: #000000">%&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />
				</span>
				<span style="COLOR: #000000">&lt;/</span>
				<span style="COLOR: #000000">table</span>
				<span style="COLOR: #000000">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />
				</span>
				<span style="COLOR: #000000">&lt;/</span>
				<span style="COLOR: #000000">div</span>
				<span style="COLOR: #000000">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />
				</span>
				<span style="COLOR: #000000">&lt;</span>
				<span style="COLOR: #000000">div id</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">img1 style</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">display:none; position:relative; float:left; left:0px; width:200px;</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />
				</span>
				<span style="COLOR: #000000">&lt;</span>
				<span style="COLOR: #000000">img src</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">""</span>
				<span style="COLOR: #000000"> width</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">100</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000"> height</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">100</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000"> id</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">img2</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000"> name</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">img2</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #000000">/&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />
				</span>
				<span style="COLOR: #000000">&lt;/</span>
				<span style="COLOR: #000000">div</span>
				<span style="COLOR: #000000">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />
						<br />
						<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />
				</span>
				<span style="COLOR: #000000">&lt;</span>
				<span style="COLOR: #000000">script language</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">javascript</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />
				</span>
				<span style="COLOR: #000000">&lt;!--</span>
				<span style="COLOR: #000000">
						<br />
						<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />function kk(x,image)<br /><img id="Codehighlighter1_858_920_Open_Image" onclick="this.style.display='none'; Codehighlighter1_858_920_Open_Text.style.display='none'; Codehighlighter1_858_920_Closed_Image.style.display='inline'; Codehighlighter1_858_920_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" /><img style="DISPLAY: none" id="Codehighlighter1_858_920_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_858_920_Closed_Text.style.display='none'; Codehighlighter1_858_920_Open_Image.style.display='inline'; Codehighlighter1_858_920_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" /></span>
				<span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id="Codehighlighter1_858_920_Closed_Text">
						<img src="http://www.blogjava.net/images/dot.gif" />
				</span>
				<span id="Codehighlighter1_858_920_Open_Text">
						<span style="COLOR: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" /> img1.style.display</span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000">''</span>
						<span style="COLOR: #000000">;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" /> img1.style.top</span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000">x;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" /> img2.src</span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000">image;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" />}</span>
				</span>
				<span style="COLOR: #000000">
						<br />
						<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />function ll()<br /><img id="Codehighlighter1_936_966_Open_Image" onclick="this.style.display='none'; Codehighlighter1_936_966_Open_Text.style.display='none'; Codehighlighter1_936_966_Closed_Image.style.display='inline'; Codehighlighter1_936_966_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" /><img style="DISPLAY: none" id="Codehighlighter1_936_966_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_936_966_Closed_Text.style.display='none'; Codehighlighter1_936_966_Open_Image.style.display='inline'; Codehighlighter1_936_966_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" /></span>
				<span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id="Codehighlighter1_936_966_Closed_Text">
						<img src="http://www.blogjava.net/images/dot.gif" />
				</span>
				<span id="Codehighlighter1_936_966_Open_Text">
						<span style="COLOR: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" /> img1.style.display</span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000">'</span>
						<span style="COLOR: #000000">none</span>
						<span style="COLOR: #000000">'</span>
						<span style="COLOR: #000000">;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" />}</span>
				</span>
				<span style="COLOR: #000000">
						<br />
						<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />
				</span>
				<span style="COLOR: #000000">--&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />
				</span>
				<span style="COLOR: #000000">&lt;/</span>
				<span style="COLOR: #000000">script</span>
				<span style="COLOR: #000000">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />
				</span>
				<span style="COLOR: #000000">&lt;/</span>
				<span style="COLOR: #000000">div</span>
				<span style="COLOR: #000000">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />我想img1显示在id2的上面，遮掩id2的内容，但在id1有范围内，怎么设CSS </span>
		</div>
		<div style="BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; FONT-SIZE: 13px; WORD-BREAK: break-all; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px">
				<img id="Codehighlighter1_4_23_Open_Image" onclick="this.style.display='none'; Codehighlighter1_4_23_Open_Text.style.display='none'; Codehighlighter1_4_23_Closed_Image.style.display='inline'; Codehighlighter1_4_23_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" />
				<img style="DISPLAY: none" id="Codehighlighter1_4_23_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_4_23_Closed_Text.style.display='none'; Codehighlighter1_4_23_Open_Image.style.display='inline'; Codehighlighter1_4_23_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" />
				<span style="COLOR: #000000">#id1</span>
				<span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id="Codehighlighter1_4_23_Closed_Text">
						<img src="http://www.blogjava.net/images/dot.gif" />
				</span>
				<span id="Codehighlighter1_4_23_Open_Text">
						<span style="COLOR: #000000">{position:relative;}</span>
				</span>
				<span style="COLOR: #000000">
						<br />
						<img id="Codehighlighter1_30_66_Open_Image" onclick="this.style.display='none'; Codehighlighter1_30_66_Open_Text.style.display='none'; Codehighlighter1_30_66_Closed_Image.style.display='inline'; Codehighlighter1_30_66_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" />
						<img style="DISPLAY: none" id="Codehighlighter1_30_66_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_30_66_Closed_Text.style.display='none'; Codehighlighter1_30_66_Open_Image.style.display='inline'; Codehighlighter1_30_66_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" />#img1</span>
				<span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id="Codehighlighter1_30_66_Closed_Text">
						<img src="http://www.blogjava.net/images/dot.gif" />
				</span>
				<span id="Codehighlighter1_30_66_Open_Text">
						<span style="COLOR: #000000">{position:absolute;top:0px;left:0px;}</span>
				</span>
				<span style="COLOR: #000000">
						<br />
						<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />
						<br />
						<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />
				</span>
				<span style="COLOR: #000000">&lt;</span>
				<span style="COLOR: #000000">div id</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">id1</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /> </span>
				<span style="COLOR: #000000">&lt;</span>
				<span style="COLOR: #000000">div id</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">img1</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">&gt;&lt;/</span>
				<span style="COLOR: #000000">div</span>
				<span style="COLOR: #000000">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /> </span>
				<span style="COLOR: #000000">&lt;</span>
				<span style="COLOR: #000000">div id</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">id2</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">&gt;&lt;/</span>
				<span style="COLOR: #000000">div</span>
				<span style="COLOR: #000000">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />
				</span>
				<span style="COLOR: #000000">&lt;/</span>
				<span style="COLOR: #000000">div</span>
				<span style="COLOR: #000000">&gt;</span>
				<span style="COLOR: #000000"> </span>
		</div>补充; 我想让div1和div2的重叠部分div1的盖在div2的上面，如何实现。<br />加样式 position:relative;<br />div1的加 z-index:2;<br />div2的加 z-index:1; <img src ="http://www.blogjava.net/jasmine214--love/aggbug/325223.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jasmine214--love/" target="_blank">幻海蓝梦</a> 2010-07-04 22:19 <a href="http://www.blogjava.net/jasmine214--love/archive/2010/07/04/325223.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>javascript-- select option对象总结</title><link>http://www.blogjava.net/jasmine214--love/archive/2010/07/04/325214.html</link><dc:creator>幻海蓝梦</dc:creator><author>幻海蓝梦</author><pubDate>Sun, 04 Jul 2010 11:18:00 GMT</pubDate><guid>http://www.blogjava.net/jasmine214--love/archive/2010/07/04/325214.html</guid><wfw:comment>http://www.blogjava.net/jasmine214--love/comments/325214.html</wfw:comment><comments>http://www.blogjava.net/jasmine214--love/archive/2010/07/04/325214.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jasmine214--love/comments/commentRss/325214.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jasmine214--love/services/trackbacks/325214.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 1								一基础理解: 				  2																								  3										var e 				=				 document.getElementById(				"				selectId				"				); 				  4																				...&nbsp;&nbsp;<a href='http://www.blogjava.net/jasmine214--love/archive/2010/07/04/325214.html'>阅读全文</a><img src ="http://www.blogjava.net/jasmine214--love/aggbug/325214.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jasmine214--love/" target="_blank">幻海蓝梦</a> 2010-07-04 19:18 <a href="http://www.blogjava.net/jasmine214--love/archive/2010/07/04/325214.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>动态生成select选项-全接触</title><link>http://www.blogjava.net/jasmine214--love/archive/2010/07/04/325213.html</link><dc:creator>幻海蓝梦</dc:creator><author>幻海蓝梦</author><pubDate>Sun, 04 Jul 2010 11:11:00 GMT</pubDate><guid>http://www.blogjava.net/jasmine214--love/archive/2010/07/04/325213.html</guid><wfw:comment>http://www.blogjava.net/jasmine214--love/comments/325213.html</wfw:comment><comments>http://www.blogjava.net/jasmine214--love/archive/2010/07/04/325213.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jasmine214--love/comments/commentRss/325213.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jasmine214--love/services/trackbacks/325213.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 1								[著者]zosatapo				  2										[联系]dertyang@				263				.net				  3										[文章简单说明]本文提供在不刷新页面的前提下，动态生成select选项的				  4										目前比较主流的三种方案。并且提供简单效率测试，网页制作人员可以				 ...&nbsp;&nbsp;<a href='http://www.blogjava.net/jasmine214--love/archive/2010/07/04/325213.html'>阅读全文</a><img src ="http://www.blogjava.net/jasmine214--love/aggbug/325213.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jasmine214--love/" target="_blank">幻海蓝梦</a> 2010-07-04 19:11 <a href="http://www.blogjava.net/jasmine214--love/archive/2010/07/04/325213.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JS--联动几个表单</title><link>http://www.blogjava.net/jasmine214--love/archive/2010/07/04/325212.html</link><dc:creator>幻海蓝梦</dc:creator><author>幻海蓝梦</author><pubDate>Sun, 04 Jul 2010 10:51:00 GMT</pubDate><guid>http://www.blogjava.net/jasmine214--love/archive/2010/07/04/325212.html</guid><wfw:comment>http://www.blogjava.net/jasmine214--love/comments/325212.html</wfw:comment><comments>http://www.blogjava.net/jasmine214--love/archive/2010/07/04/325212.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jasmine214--love/comments/commentRss/325212.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jasmine214--love/services/trackbacks/325212.html</trackback:ping><description><![CDATA[原文：<a href="http://zhidao.baidu.com/question/91138063.html?fr=qrl&amp;cid=93&amp;index=2&amp;fr2=query">http://zhidao.baidu.com/question/91138063.html?fr=qrl&amp;cid=93&amp;index=2&amp;fr2=query</a><br /><div style="BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; FONT-SIZE: 13px; WORD-BREAK: break-all; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><span style="COLOR: #000000">问题补充：我要在同一网页内用select联动几个form表单，不跳转页面的 <br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />我建了一个select菜单，想联动几个表单，代码是： <br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">select name</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">s1</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"> <br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">option value</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">week</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">一周＜／option</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"> <br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">option value</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">month</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">一月＜／option</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"> <br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">option value</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">year</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">一年＜／option</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"> <br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">select</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"> <br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />我建了三个表单form，代码如下： <br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />表单一： <br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">form name</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">formWeek</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"> <br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">table</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"> <br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">tr</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"> <br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">td</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">请输入一周的次数：＜／td</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"> <br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">td</span><span style="COLOR: #000000">&gt;&lt;</span><span style="COLOR: #000000">input type</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">text size</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">&gt;&lt;/</span><span style="COLOR: #000000">td</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"> <br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">tr</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"> <br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">table</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"> <br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">form</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"> <br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />表单二： <br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">form name</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">formMonth</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"> <br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">table</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"> <br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">tr</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"> <br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">td</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">请输入一月的次数：＜／td</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"> <br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">td</span><span style="COLOR: #000000">&gt;&lt;</span><span style="COLOR: #000000">input type</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">text size</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">&gt;&lt;/</span><span style="COLOR: #000000">td</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"> <br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">tr</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"> <br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">table</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"> <br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">form</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"> <br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />表单三： <br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">form</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"> <br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">table</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"> <br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">tr</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"> <br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">td</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">请输入一年的次数：</span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">td</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"> <br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">td</span><span style="COLOR: #000000">&gt;&lt;</span><span style="COLOR: #000000">input type</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">text size</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">&gt;&lt;/</span><span style="COLOR: #000000">td</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"> <br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">tr</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"> <br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">table</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"> <br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">form</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"> </span></div><br /><div style="BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; FONT-SIZE: 13px; WORD-BREAK: break-all; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><span style="COLOR: #000000">全部代码如下,测试通过.<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">html</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">head</span><span style="COLOR: #000000">&gt;&lt;</span><span style="COLOR: #000000">title</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">切换</span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">title</span><span style="COLOR: #000000">&gt;&lt;/</span><span style="COLOR: #000000">head</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">body</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">select name</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">s1</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> onchange</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">changeform(this.value)</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">option value</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">week</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">一周</span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">option</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"> <br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">option value</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">month</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">一月</span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">option</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"> <br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">option value</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">year</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">一年</span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">option</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"> <br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">select</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"> <br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">br </span><span style="COLOR: #000000">/&gt;</span><span style="COLOR: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">div id</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">form1</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">form name</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">formWeek</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"> <br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">table</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"> <br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">tr</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"> <br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">td</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">请输入一周的次数：</span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">td</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"> <br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">td</span><span style="COLOR: #000000">&gt;&lt;</span><span style="COLOR: #000000">input type</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">text size</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">10</span><span style="COLOR: #000000">&gt;&lt;/</span><span style="COLOR: #000000">td</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">tr</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"> <br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">table</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"> <br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">form</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"> <br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">div</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">div id</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">form2</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"> <br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">form name</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">formMonth</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"> <br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">table</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"> <br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">tr</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"> <br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">td</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">请输入一月的次数：</span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">td</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"> <br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">td</span><span style="COLOR: #000000">&gt;&lt;</span><span style="COLOR: #000000">input type</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">text size</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">10</span><span style="COLOR: #000000">&gt;&lt;/</span><span style="COLOR: #000000">td</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"> <br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">tr</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"> <br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">table</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"> <br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">form</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">div</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">div id</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">form3</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">form</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"> <br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">table</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"> <br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">tr</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"> <br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">td</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">请输入一年的次数：</span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">td</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"> <br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">td</span><span style="COLOR: #000000">&gt;&lt;</span><span style="COLOR: #000000">input type</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">text size</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">10</span><span style="COLOR: #000000">&gt;&lt;/</span><span style="COLOR: #000000">td</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"> <br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">tr</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"> <br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">table</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">form</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">div</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">script type</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">text/javascript</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img id="Codehighlighter1_697_733_Open_Image" onclick="this.style.display='none'; Codehighlighter1_697_733_Open_Text.style.display='none'; Codehighlighter1_697_733_Closed_Image.style.display='inline'; Codehighlighter1_697_733_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" /><img style="DISPLAY: none" id="Codehighlighter1_697_733_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_697_733_Closed_Text.style.display='none'; Codehighlighter1_697_733_Open_Image.style.display='inline'; Codehighlighter1_697_733_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" />$d</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">function(id)</span><span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id="Codehighlighter1_697_733_Closed_Text"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_697_733_Open_Text"><span style="COLOR: #000000">{</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> document.getElementById(id);}</span></span><span style="COLOR: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />fhidden($d(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">form2</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">),$d(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">form3</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">),$d(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">form1</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">));<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />function fhidden(str1,str2,str3)<br /><img id="Codehighlighter1_814_893_Open_Image" onclick="this.style.display='none'; Codehighlighter1_814_893_Open_Text.style.display='none'; Codehighlighter1_814_893_Closed_Image.style.display='inline'; Codehighlighter1_814_893_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" /><img style="DISPLAY: none" id="Codehighlighter1_814_893_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_814_893_Closed_Text.style.display='none'; Codehighlighter1_814_893_Open_Image.style.display='inline'; Codehighlighter1_814_893_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" /></span><span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id="Codehighlighter1_814_893_Closed_Text"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_814_893_Open_Text"><span style="COLOR: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />str1.style.display</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">none</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />str2.style.display</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">none</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />str3.style.display</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">""</span><span style="COLOR: #000000">;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" />}</span></span><span style="COLOR: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />function changeform(v)<br /><img id="Codehighlighter1_919_1125_Open_Image" onclick="this.style.display='none'; Codehighlighter1_919_1125_Open_Text.style.display='none'; Codehighlighter1_919_1125_Closed_Image.style.display='inline'; Codehighlighter1_919_1125_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" /><img style="DISPLAY: none" id="Codehighlighter1_919_1125_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_919_1125_Closed_Text.style.display='none'; Codehighlighter1_919_1125_Open_Image.style.display='inline'; Codehighlighter1_919_1125_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" /></span><span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id="Codehighlighter1_919_1125_Closed_Text"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_919_1125_Open_Text"><span style="COLOR: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" /></span><span style="COLOR: #0000ff">switch</span><span style="COLOR: #000000"> (v)<br /><img id="Codehighlighter1_932_1123_Open_Image" onclick="this.style.display='none'; Codehighlighter1_932_1123_Open_Text.style.display='none'; Codehighlighter1_932_1123_Closed_Image.style.display='inline'; Codehighlighter1_932_1123_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" /><img style="DISPLAY: none" id="Codehighlighter1_932_1123_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_932_1123_Closed_Text.style.display='none'; Codehighlighter1_932_1123_Open_Image.style.display='inline'; Codehighlighter1_932_1123_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" /></span><span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id="Codehighlighter1_932_1123_Closed_Text"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_932_1123_Open_Text"><span style="COLOR: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" /></span><span style="COLOR: #0000ff">case</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">month</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">:fhidden($d(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">form1</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">),$d(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">form3</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">),$d(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">form2</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">));</span><span style="COLOR: #0000ff">break</span><span style="COLOR: #000000">;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" /></span><span style="COLOR: #0000ff">case</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">year</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">:fhidden($d(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">form1</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">),$d(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">form2</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">),$d(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">form3</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">));</span><span style="COLOR: #0000ff">break</span><span style="COLOR: #000000">;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" /></span><span style="COLOR: #0000ff">default</span><span style="COLOR: #000000">:fhidden($d(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">form2</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">),$d(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">form3</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">),$d(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">form1</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">));</span><span style="COLOR: #0000ff">break</span><span style="COLOR: #000000">;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" />}</span></span><span style="COLOR: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" />}</span></span><span style="COLOR: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">script</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">body</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">html</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"> </span></div><img src ="http://www.blogjava.net/jasmine214--love/aggbug/325212.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jasmine214--love/" target="_blank">幻海蓝梦</a> 2010-07-04 18:51 <a href="http://www.blogjava.net/jasmine214--love/archive/2010/07/04/325212.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JS--多级联动select</title><link>http://www.blogjava.net/jasmine214--love/archive/2010/07/04/325210.html</link><dc:creator>幻海蓝梦</dc:creator><author>幻海蓝梦</author><pubDate>Sun, 04 Jul 2010 10:40:00 GMT</pubDate><guid>http://www.blogjava.net/jasmine214--love/archive/2010/07/04/325210.html</guid><wfw:comment>http://www.blogjava.net/jasmine214--love/comments/325210.html</wfw:comment><comments>http://www.blogjava.net/jasmine214--love/archive/2010/07/04/325210.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jasmine214--love/comments/commentRss/325210.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jasmine214--love/services/trackbacks/325210.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &lt;				script language				=				"				JavaScript				"				 type				=				"				text/javascript				"				&gt;																     				//				定义了城市的二维数组，里面的顺序跟省份的顺序是相同的。通过selec...&nbsp;&nbsp;<a href='http://www.blogjava.net/jasmine214--love/archive/2010/07/04/325210.html'>阅读全文</a><img src ="http://www.blogjava.net/jasmine214--love/aggbug/325210.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jasmine214--love/" target="_blank">幻海蓝梦</a> 2010-07-04 18:40 <a href="http://www.blogjava.net/jasmine214--love/archive/2010/07/04/325210.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Select---几种隐藏 的实现</title><link>http://www.blogjava.net/jasmine214--love/archive/2010/07/04/325209.html</link><dc:creator>幻海蓝梦</dc:creator><author>幻海蓝梦</author><pubDate>Sun, 04 Jul 2010 10:29:00 GMT</pubDate><guid>http://www.blogjava.net/jasmine214--love/archive/2010/07/04/325209.html</guid><wfw:comment>http://www.blogjava.net/jasmine214--love/comments/325209.html</wfw:comment><comments>http://www.blogjava.net/jasmine214--love/archive/2010/07/04/325209.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jasmine214--love/comments/commentRss/325209.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jasmine214--love/services/trackbacks/325209.html</trackback:ping><description><![CDATA[
		<p>1.<a id="ctl03_TitleUrl" class="singleposttitle" href="http://www.cnblogs.com/pricks/archive/2010/01/08/1642331.html"><font color="#ff9900">js select 隐藏option</font></a><br />&lt;body onload="document.getElementsByTagName('OPTION')[2].outerHTML=''"&gt;<br />&lt;SELECT name="d_source" length=2&gt;<br />&lt;OPTION value=www.51js.com selected&gt;www.51js.com&lt;/OPTION&gt;<br />&lt;OPTION value=www.ccbfu.com&gt;www.ccbfu.com&lt;/OPTION&gt;<br />&lt;OPTION value="我会隐藏"&gt;我被隐藏了&lt;/OPTION&gt;</p>
		<p>&lt;/SELECT&gt;</p>
		<div style="DISPLAY: none" id="c_jquery_test">2.隐藏所有select.<br />&lt;script type=text/javascript&gt;<br /><br />function hideAllSelect()<br />{<br />var selects = document.getElementsByTagName("SELECT");<br />for(var i = 0 ; i&lt;selects.length;i++)<br />{<br />selects[i].style.display = "none";<br />}<br />}<br />&lt;/script&gt;<br /><br />3.根据select值 隐藏其他表单项<br /><div style="BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; FONT-SIZE: 13px; WORD-BREAK: break-all; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px"><span style="COLOR: #008080"> 1</span><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><span style="COLOR: #000000">&lt;!</span><span style="COLOR: #000000">DOCTYPE html PUBLIC </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">-//W3C//DTD XHTML 1.0 Transitional//EN</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080"> 2</span><span style="COLOR: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">html xmlns</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">http://www.w3.org/1999/xhtml</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080"> 3</span><span style="COLOR: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /> </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">head</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080"> 4</span><span style="COLOR: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /> </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">meta http</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">equiv</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Content-Type</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> content</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">text/html; charset=UTF-8</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080"> 5</span><span style="COLOR: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />  </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">script type</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">text/javascript</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080"> 6</span><span style="COLOR: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />  </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&lt;![CDATA[</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080"> 7</span><span style="COLOR: #008000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">    var s </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">当前显示的</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080"> 8</span><span style="COLOR: #008000"><img id="Codehighlighter1_339_502_Open_Image" onclick="this.style.display='none'; Codehighlighter1_339_502_Open_Text.style.display='none'; Codehighlighter1_339_502_Closed_Image.style.display='inline'; Codehighlighter1_339_502_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" /><img style="DISPLAY: none" id="Codehighlighter1_339_502_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_339_502_Closed_Text.style.display='none'; Codehighlighter1_339_502_Open_Image.style.display='inline'; Codehighlighter1_339_502_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" /></span><span style="COLOR: #000000">    function switchView(v)</span><span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id="Codehighlighter1_339_502_Closed_Text"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_339_502_Open_Text"><span style="COLOR: #000000">{<br /></span><span style="COLOR: #008080"> 9</span><span style="COLOR: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />      document.getElementById(</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">form_</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">s).style.display </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">none</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">隐藏上一个显示的</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080">10</span><span style="COLOR: #008000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" /></span><span style="COLOR: #000000">      document.getElementById(</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">form_</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">v).style.display </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">''</span><span style="COLOR: #000000">;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">显示选择的.</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080">11</span><span style="COLOR: #008000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" /></span><span style="COLOR: #000000">      s </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> v;<br /></span><span style="COLOR: #008080">12</span><span style="COLOR: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" />    }</span></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">13</span><span style="COLOR: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />  </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">]]&gt;</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080">14</span><span style="COLOR: #008000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">  </span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">script</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">15</span><span style="COLOR: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /> </span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">head</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">16</span><span style="COLOR: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /> </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">body</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">17</span><span style="COLOR: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />  </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">form action</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">""</span><span style="COLOR: #000000"> name</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">option</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">18</span><span style="COLOR: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />    </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">select onchange</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">switchView(this.value)</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">19</span><span style="COLOR: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />      </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">option value</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> selected</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">selected</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">测试一</span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">option</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">20</span><span style="COLOR: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />      </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">option value</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">&gt;</span><span style="COLOR: #000000">测试二</span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">option</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">21</span><span style="COLOR: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />    </span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">select</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">22</span><span style="COLOR: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />    </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">div id</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">form_1</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">23</span><span style="COLOR: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />      </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">input type</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">checkbox</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> name</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">test1</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> id</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">c_1</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;&lt;</span><span style="COLOR: #000000">label </span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">c_1</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">选项一</span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">label</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">24</span><span style="COLOR: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />    </span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">div</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">25</span><span style="COLOR: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />    </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">div id</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">form_2</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> style</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">display:none</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">26</span><span style="COLOR: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />      </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">input type</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">checkbox</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> name</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">test2</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> id</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">c_2</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;&lt;</span><span style="COLOR: #000000">label </span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">c_2</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">选项二</span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">label</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">27</span><span style="COLOR: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />    </span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">div</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">28</span><span style="COLOR: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />    </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">input type</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">submit</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> value</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">&gt;</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">29</span><span style="COLOR: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />  </span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">form</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">30</span><span style="COLOR: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /> </span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">body</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">31</span><span style="COLOR: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">html</span><span style="COLOR: #000000">&gt;</span></div></div>
		<script type="text/javascript"><![CDATA[
if ($ != jQuery) {
	$ = jQuery.noConflict();
}
]]&gt;</script>
		<br />另一种隐藏table的<br /><div style="BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; FONT-SIZE: 13px; WORD-BREAK: break-all; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px"><span style="COLOR: #008080"> 1</span><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">script</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"> <br /></span><span style="COLOR: #008080"> 2</span><span style="COLOR: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />function setChange() <br /></span><span style="COLOR: #008080"> 3</span><span style="COLOR: #000000"><img id="Codehighlighter1_32_313_Open_Image" onclick="this.style.display='none'; Codehighlighter1_32_313_Open_Text.style.display='none'; Codehighlighter1_32_313_Closed_Image.style.display='inline'; Codehighlighter1_32_313_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" /><img style="DISPLAY: none" id="Codehighlighter1_32_313_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_32_313_Closed_Text.style.display='none'; Codehighlighter1_32_313_Open_Image.style.display='inline'; Codehighlighter1_32_313_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" /></span><span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id="Codehighlighter1_32_313_Closed_Text"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_32_313_Open_Text"><span style="COLOR: #000000">{ <br /></span><span style="COLOR: #008080"> 4</span><span style="COLOR: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" /></span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000"> (document.f.selfs.value </span><span style="COLOR: #000000">==</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">) <br /></span><span style="COLOR: #008080"> 5</span><span style="COLOR: #000000"><img id="Codehighlighter1_71_117_Open_Image" onclick="this.style.display='none'; Codehighlighter1_71_117_Open_Text.style.display='none'; Codehighlighter1_71_117_Closed_Image.style.display='inline'; Codehighlighter1_71_117_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" /><img style="DISPLAY: none" id="Codehighlighter1_71_117_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_71_117_Closed_Text.style.display='none'; Codehighlighter1_71_117_Open_Image.style.display='inline'; Codehighlighter1_71_117_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" /></span><span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id="Codehighlighter1_71_117_Closed_Text"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_71_117_Open_Text"><span style="COLOR: #000000">{ <br /></span><span style="COLOR: #008080"> 6</span><span style="COLOR: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />document.all.tb1.style.display </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">block</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">; <br /></span><span style="COLOR: #008080"> 7</span><span style="COLOR: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" />}</span></span><span style="COLOR: #000000"> <br /></span><span style="COLOR: #008080"> 8</span><span style="COLOR: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" /></span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000"> <br /></span><span style="COLOR: #008080"> 9</span><span style="COLOR: #000000"><img id="Codehighlighter1_126_171_Open_Image" onclick="this.style.display='none'; Codehighlighter1_126_171_Open_Text.style.display='none'; Codehighlighter1_126_171_Closed_Image.style.display='inline'; Codehighlighter1_126_171_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" /><img style="DISPLAY: none" id="Codehighlighter1_126_171_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_126_171_Closed_Text.style.display='none'; Codehighlighter1_126_171_Open_Image.style.display='inline'; Codehighlighter1_126_171_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" /></span><span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id="Codehighlighter1_126_171_Closed_Text"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_126_171_Open_Text"><span style="COLOR: #000000">{ <br /></span><span style="COLOR: #008080">10</span><span style="COLOR: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />document.all.tb1.style.display </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">none</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">; <br /></span><span style="COLOR: #008080">11</span><span style="COLOR: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" />}</span></span><span style="COLOR: #000000"> <br /></span><span style="COLOR: #008080">12</span><span style="COLOR: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" /></span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000"> (document.f.selfs.value </span><span style="COLOR: #000000">==</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">) <br /></span><span style="COLOR: #008080">13</span><span style="COLOR: #000000"><img id="Codehighlighter1_210_256_Open_Image" onclick="this.style.display='none'; Codehighlighter1_210_256_Open_Text.style.display='none'; Codehighlighter1_210_256_Closed_Image.style.display='inline'; Codehighlighter1_210_256_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" /><img style="DISPLAY: none" id="Codehighlighter1_210_256_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_210_256_Closed_Text.style.display='none'; Codehighlighter1_210_256_Open_Image.style.display='inline'; Codehighlighter1_210_256_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" /></span><span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id="Codehighlighter1_210_256_Closed_Text"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_210_256_Open_Text"><span style="COLOR: #000000">{ <br /></span><span style="COLOR: #008080">14</span><span style="COLOR: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />document.all.tb2.style.display </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">block</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">; <br /></span><span style="COLOR: #008080">15</span><span style="COLOR: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" />}</span></span><span style="COLOR: #000000"> <br /></span><span style="COLOR: #008080">16</span><span style="COLOR: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" /></span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000"> <br /></span><span style="COLOR: #008080">17</span><span style="COLOR: #000000"><img id="Codehighlighter1_265_310_Open_Image" onclick="this.style.display='none'; Codehighlighter1_265_310_Open_Text.style.display='none'; Codehighlighter1_265_310_Closed_Image.style.display='inline'; Codehighlighter1_265_310_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" /><img style="DISPLAY: none" id="Codehighlighter1_265_310_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_265_310_Closed_Text.style.display='none'; Codehighlighter1_265_310_Open_Image.style.display='inline'; Codehighlighter1_265_310_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" /></span><span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id="Codehighlighter1_265_310_Closed_Text"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_265_310_Open_Text"><span style="COLOR: #000000">{ <br /></span><span style="COLOR: #008080">18</span><span style="COLOR: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />document.all.tb2.style.display </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">none</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">; <br /></span><span style="COLOR: #008080">19</span><span style="COLOR: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" />}</span></span><span style="COLOR: #000000"> <br /></span><span style="COLOR: #008080">20</span><span style="COLOR: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" />}</span></span><span style="COLOR: #000000"> <br /></span><span style="COLOR: #008080">21</span><span style="COLOR: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><br /></span><span style="COLOR: #008080">22</span><span style="COLOR: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">script</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">23</span><span style="COLOR: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">form name</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">f</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">24</span><span style="COLOR: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><br /></span><span style="COLOR: #008080">25</span><span style="COLOR: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />    </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">select name</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">selfs</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> size</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">1 onchange=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">setChange()</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">26</span><span style="COLOR: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">        选择方式<br /></span><span style="COLOR: #008080">27</span><span style="COLOR: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />        </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">option value</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">28</span><span style="COLOR: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />            方式1<br /></span><span style="COLOR: #008080">29</span><span style="COLOR: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />        </span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">option</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">30</span><span style="COLOR: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />        </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">option value</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">&gt;</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">31</span><span style="COLOR: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />            方式2<br /></span><span style="COLOR: #008080">32</span><span style="COLOR: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />        </span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">option</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">33</span><span style="COLOR: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />    </span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">select</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">34</span><span style="COLOR: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><br /></span><span style="COLOR: #008080">35</span><span style="COLOR: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />    </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">table id</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">tb1</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000"> style</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">DISPLAY:none</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">36</span><span style="COLOR: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />        方式1 方式1 方式1<br /></span><span style="COLOR: #008080">37</span><span style="COLOR: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />    </span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">table</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">38</span><span style="COLOR: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><br /></span><span style="COLOR: #008080">39</span><span style="COLOR: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />    </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">table id</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">tb2</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000"> style</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">DISPLAY:none</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">40</span><span style="COLOR: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />        方式2 方式2 方式2<br /></span><span style="COLOR: #008080">41</span><span style="COLOR: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />    </span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">table</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">42</span><span style="COLOR: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">form</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">43</span><span style="COLOR: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span></div><img src ="http://www.blogjava.net/jasmine214--love/aggbug/325209.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jasmine214--love/" target="_blank">幻海蓝梦</a> 2010-07-04 18:29 <a href="http://www.blogjava.net/jasmine214--love/archive/2010/07/04/325209.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title> 流行的AJAX框架对比：jQuery，Mootools，Dojo，Ext JS</title><link>http://www.blogjava.net/jasmine214--love/archive/2010/06/28/324720.html</link><dc:creator>幻海蓝梦</dc:creator><author>幻海蓝梦</author><pubDate>Mon, 28 Jun 2010 15:40:00 GMT</pubDate><guid>http://www.blogjava.net/jasmine214--love/archive/2010/06/28/324720.html</guid><wfw:comment>http://www.blogjava.net/jasmine214--love/comments/324720.html</wfw:comment><comments>http://www.blogjava.net/jasmine214--love/archive/2010/06/28/324720.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jasmine214--love/comments/commentRss/324720.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jasmine214--love/services/trackbacks/324720.html</trackback:ping><description><![CDATA[
		<p>AJAX 是web20 的基石，现在网上流行几种开源的AJAX框架，比如：jQuery,Mootools,Dojo,Ext JS等等，那么我们到底在什么情况下该使用那个框架？以下是一组摘抄的数据：</p>
		<p>Ajaxian在2007年底对Ajax工具进行了调查，部分调查结果见下表（其中数字为调查者使用该工具的百分比，详细的请参见网页）：<a href="http://ajaxian.com/archives/2007-ajax-tools-usage-survey-results">http://ajaxian.com/archives/2007-ajax-tools-usage-survey-results</a></p>
		<p>Prototype  jQuery  Ext  Script.aculo.us  Mootools  YUI  JSON  Dojo  Backbase  <br />34.1%  29.3%  22.5%  22.3%  14.3%  13%  12.9%  11.8%  8.3%  </p>
		<p>其中Prototype使用率最高，很大程度上是因为它是最早成熟的框架，很多以前在项目中采用，所以现在一直在用</p>
		<p>让我们来看看选择AJAX框架的基础：</p>
		<p>你的项目需求（即你需要哪些特性，例如是否要求做出精美的界面、特效或其它功能）</p>
		<p>是否支持A等级的浏览器（IE, Firefox等）?</p>
		<p>文档的质量：是否完善（包含教程，API，代码示例等）</p>
		<p>框架的可扩展性如何？为框架写插件容易吗？</p>
		<p>你是否喜欢它的API的风格？</p>
		<p>能大多程度上统一你的JavaScript代码的风格？</p>
		<p>框架大小（太大的框架导致用户下载时间的延长）</p>
		<p>框架是否强迫你改变写HTML的方式（Dojo就是这样）？</p>
		<p>代码执行速度：性能如何？</p>
		<p>代码是否为模块化（Mootools为高度模块化）？代码可重用性如何？</p>
		<p> 一、jQuery </p>
		<p>主页：<a href="http://jquery.com/">http://jquery.com/</a></p>
		<p>设计思想</p>
		<p>简洁的思想：几乎所有操作都是以选择DOM元素（有强大的Selector）开始，然后是对其的操作（Chaining等特性）。</p>
		<p>优点</p>
		<p>小，压缩后代码只有20多k（无压缩代码94k）。</p>
		<p>Selector和DOM操作的方便：jQuery的Selector与mootools的Element.Selectors.js比较，CSS Selector, XPath Selector（1.2后已删除）</p>
		<p>Chaining：总是返回一个jQuery对象，可以连续操作。</p>
		<p>文档的完整，易用性（每个API都有完整的例子，这是其它框架现在不能比的），而且网上还有很多其它的文档，书籍。</p>
		<p>应用的广泛，包括google code也使用了jQuery。</p>
		<p>使用jQuery的站点：<a href="http://docs.jquery.com/Sites_Using_jQuery">http://docs.jquery.com/Sites_Using_jQuery</a></p>
		<p>核心的开发团队和核心人员：John Resig等。</p>
		<p>简洁和简短的语法，容易记。</p>
		<p>可扩展性：有大量用户开发的插件可供使用（<a href="http://jquery.com/plugins/">http://jquery.com/plugins/</a> ）</p>
		<p>jQuery UI（<a href="http://jquery.com/plugins/">http://jquery.com/plugins/</a> ，基于jQuery，但和核心的jQuery是独立的），不断发展中。</p>
		<p>友好和活跃的社区：google groups: <a href="http://docs.jquery.com/Discussion">http://docs.jquery.com/Discussion</a></p>
		<p>事件处理有很多方便的方法，如click，而不是单一的addEvent之类的。</p>
		<p>缺点</p>
		<p>由于设计思想是追求高效和简洁，没有面向对象的扩展。设计思路和Mootools不一样。</p>
		<p>CSS Selector的速度稍微有些慢（但是现在速度已经大幅提高）</p>
		<p>Mootools </p>
		<p>主页：<a href="http://mootools.net/">http://mootools.net/</a></p>
		<p>设计思想</p>
		<p>面向对象的设计思想。</p>
		<p>优点</p>
		<p>模块化，各模块代码非常独立，最小的核心只有8k，最大的优点是可选择使用哪些模块，用的时候只导入使用的模块即可，完整的也不到180k（没有压缩），压缩后不到70k。</p>
		<p>语法的简洁，直观。</p>
		<p>特效（Effects）：这一点比jQuery稍强，现在也正在开发Mootools UI（这应该是Ajax框架开发的一个趋势）。</p>
		<p>代码写的优美，易阅读和修改。</p>
		<p>文档的完整（最新的1.2beta的文档比以前更详细）。</p>
		<p>活跃的社区：官网(<a href="http://forum.mootools.net/">http://forum.mootools.net/</a> )，还有一个IRC。</p>
		<p>性能：见：<a href="http://mootools.net/slickspeed/">http://mootools.net/slickspeed/</a></p>
		<p>缺点</p>
		<p>修改了低层的一些类：如Array, String等，这也是设计思想的不同。</p>
		<p>在DOM和CSS Selector上不如jQuery强大。</p>
		<p>Dojo </p>
		<p>主页：<a href="http://dojotoolkit.org/">http://dojotoolkit.org/</a></p>
		<p>优点</p>
		<p>背后强大的支持：IBM、Sun、BEA等，这是非常重要的优势。</p>
		<p>功能的强大，Full Stack的框架，扩展了DHTML的能力，例如：</p>
		<p>支持与浏览器Back/Forward按钮的集成。</p>
		<p>Dojo Offline，一个跨平台的离线存储API。</p>
		<p>Chart组件，可以方便地在浏览器端生成图表。</p>
		<p>基于SVG/VML的矢量图形库。</p>
		<p>Google Maps、Yahoo! Maps组件，方便开发Mashup应用。</p>
		<p>Comet支持，通过通用的Buyeux协议。</p>
		<p>强大的UI（Dijit）。</p>
		<p>面向对象的设计，统一的命名空间，包管理机制（The Package System and Custom Builds）</p>
		<p>可扩展性。</p>
		<p>缺点</p>
		<p>复杂，学习曲线陡。</p>
		<p>文档的极端不全，这是一个很大的问题。</p>
		<p>API很多不稳定，各版本间改动较大，现在还不是一个成熟的框架。</p>
		<p>侵入性太大，页面中大量使用dojo的属性，例如&lt;button dojoType="dijit.form.Button" id="helloButton"&gt;，如果将来dojo升级或者换一个框架时，负担会很大。</p>
		<p>性能问题，由于dojo加载采用了同步的机制，会暂时锁定浏览器，导致CPU使用率达到100%。另外，很多Widget的速度很慢。</p>
		<p>Ext JS </p>
		<p>主页：<a href="http://extjs.com/">http://extjs.com/</a></p>
		<p>设计思想</p>
		<p>组件化，推进RIA（Rich Internet Application）的应用。</p>
		<p>优点</p>
		<p>强大的UI，而且性能不错，这是其最大的优点。</p>
		<p>速度快，管是UI还是其它模块。</p>
		<p>100%面向对象和组件化的思想，一致的语法，全局的命名空间。</p>
		<p>文档的完整，规范，方便。</p>
		<p>核心的开发团队，Jack Slocum等。</p>
		<p>活跃的社区，迅速增加的用户量。</p>
		<p>模块化实现，可扩展性强。</p>
		<p>所有的组件（widgets）都可直接使用，而无需进行设置（当然，用户可以选择重新配置）。</p>
		<p>缺点</p>
		<p>稍复杂。</p>
		<p>为重量级的框架（包含大量UI），体积大。如果导入ext-all.js，压缩后也有近500k。</p>
		<p>注意：EXT的商业使用：如果只是把extjs包含在自己的项目中，而且这个项目不是卖给用户做二次开发的工具箱，或组件库，就可以遵守LGPL协议免费使用；否则要付费。</p>
		<p>总结 </p>
		<p>轻量级选择 </p>
		<p>轻量级的选择：主要是mootools和jquery，由于它们的设计思想的不同，jQuery是追求简洁和高效，Mootools除了追求这些目标以外，其核心在于面向对象，所以jQuery适合于快速开发，Mootools适合于稍大型和复杂的项目，其中需要面向对象的支持；另外，在Ajax的支持上，jQuery稍强一些；在Comet的支持上，jQuery有相关的插件，Mootools目前没有，但是Comet的核心在于服务器的支持，浏览器端的接口很简单，开发相关的插件很简单。</p>
		<p>在面向对象的Javascript Library中，mootools逐渐战胜了prototype（体积大，面向对象的设计不合理等），也包括script.acul.ous（基于prototype，实际上就是prototype上的UI库）。</p>
		<p>面向RIA的框架 </p>
		<p>考虑纯JavaScripty库，目前主要是Dojo和ExtJS（还有YUI）。Dojo更适合企业应用和产品开发的需要，因为离线存储、 DataGrid、2D、3D图形、Chart、Comet等组件对于企业应用来说都是很重要的（当然这些组件还要等一段时间才能稳定下来）。例如，BEA基于Mashup技术开发的产品中已经使用了Dojo。</p>
		<p>ExtJS：美观和"易用"，并且足够强大。在对UI有比较大的需求时，是首选。</p>
		<p>
				<br />本文来自CSDN博客，转载请标明出处：<a href="http://blog.csdn.net/yufangbo/archive/2009/08/24/4477123.aspx">http://blog.csdn.net/yufangbo/archive/2009/08/24/4477123.aspx</a></p>
<img src ="http://www.blogjava.net/jasmine214--love/aggbug/324720.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jasmine214--love/" target="_blank">幻海蓝梦</a> 2010-06-28 23:40 <a href="http://www.blogjava.net/jasmine214--love/archive/2010/06/28/324720.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JS--parseInt(,)方法的使用</title><link>http://www.blogjava.net/jasmine214--love/archive/2010/06/28/324667.html</link><dc:creator>幻海蓝梦</dc:creator><author>幻海蓝梦</author><pubDate>Mon, 28 Jun 2010 06:00:00 GMT</pubDate><guid>http://www.blogjava.net/jasmine214--love/archive/2010/06/28/324667.html</guid><wfw:comment>http://www.blogjava.net/jasmine214--love/comments/324667.html</wfw:comment><comments>http://www.blogjava.net/jasmine214--love/archive/2010/06/28/324667.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jasmine214--love/comments/commentRss/324667.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jasmine214--love/services/trackbacks/324667.html</trackback:ping><description><![CDATA[
		<p>原文：http://www.neoease.com/javascript-get-integer-via-parseint/<br /></p>
		<p>JavaScript 是弱类型语言, 为了保证数值的有效性, 在处理数值的时候, 我们可以对数值字符串进行强行转换. 如 <strong>parseInt
 取整</strong>和 parseFloat 取浮点数.
</p>
		<p>
Java 也有 Integer.parseInt() 方法, 但是 JavaScript 的 parseInt 处理方式与 Java 
等强整型语言不太一样, 所以经常有人因为对这个方法的使用不当而获得异常返回.
</p>
		<p>
				<span id="more-1270">
				</span>
		</p>
		<p>
下面是一段 Java 代码, 用于将字符串 020 转为整型.
</p>
		<div class="wp_syntax">
				<table>
						<tbody>
								<tr>
										<td class="line_numbers">
												<pre>1<br />2<br />3<br />4<br />5<br />6<br /></pre>
										</td>
										<td class="code">
												<pre class="java" style="font-family: monospace;">
														<span style="color: rgb(0, 0, 0); font-weight: bold;">public</span>
														<span style="color: rgb(0, 0, 0); font-weight: bold;">class</span> Test <span style="color: rgb(0, 153, 0);">{</span><br /><span style="color: rgb(0, 0, 0); font-weight: bold;">public</span><span style="color: rgb(0, 0, 0); font-weight: bold;">static</span><span style="color: rgb(0, 0, 102); font-weight: bold;">void</span> main<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 51, 153);">String</span> args<span style="color: rgb(0, 153, 0);">[</span><span style="color: rgb(0, 153, 0);">]</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 0, 0); font-weight: bold;">throws</span><span style="color: rgb(0, 51, 153);">Exception</span><span style="color: rgb(0, 153, 0);">{</span><br /><span style="color: rgb(0, 51, 153);">String</span> str <span style="color: rgb(51, 153, 51);">=</span><span style="color: rgb(0, 0, 255);">"020"</span><span style="color: rgb(51, 153, 51);">;</span><br /><span style="color: rgb(0, 51, 153);">System</span>.<span style="color: rgb(0, 102, 51);">out</span>.<span style="color: rgb(0, 102, 51);">println</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 51, 153);">Integer</span>.<span style="color: rgb(0, 102, 51);">parseInt</span><span style="color: rgb(0, 153, 0);">(</span>str<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span><br /><span style="color: rgb(0, 153, 0);">}</span><br /><span style="color: rgb(0, 153, 0);">}</span></pre>
										</td>
								</tr>
						</tbody>
				</table>
		</div>
		<p>
输出结果是 20
</p>
		<p>
下面是一段 JavaScript 代码, 同样是将字符串 020 转为整型.
</p>
		<div class="wp_syntax">
				<table>
						<tbody>
								<tr>
										<td class="line_numbers">
												<pre>1<br />2<br />3<br /></pre>
										</td>
										<td class="code">
												<pre class="javascript" style="font-family: monospace;">
														<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> str <span style="color: rgb(51, 153, 51);">=</span><span style="color: rgb(51, 102, 204);">"020"</span><span style="color: rgb(51, 153, 51);">;</span><br /><span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> num <span style="color: rgb(51, 153, 51);">=</span> parseInt<span style="color: rgb(0, 153, 0);">(</span>str<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span><br /><span style="color: rgb(0, 0, 102);">alert</span><span style="color: rgb(0, 153, 0);">(</span>num<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
										</td>
								</tr>
						</tbody>
				</table>
		</div>
		<p>
输出结果是 16
</p>
		<h4>为什么呢?</h4>
		<p>
无论是 Java 还是 JavaScript, parseInt 方法都有两个参数, 第一个参数就是要转换的对象, 第二个参数是进制基数, 
可以是 2, 8, 10, 16, 默认以 10 进制处理. 但在 JavaScript 中, 0 开始的数被认为使用 8 进制处理, 0x 
的数被认为是用 16 进制来处理. 所以上面的 JavaScript 代码计算错误了.
</p>
		<h4>影响大吗?</h4>
		<p>
大! 很大! 因为这个经常用于计算价钱, 一旦价格错误, 对用户来说, 这是误导, 而一个好的网站不应该出现这种误导用户的. 下面的 DEMO 
中, 没有指定进制. 大家可以在数量框中输入一个以 0 开头的数字, 在点击计算按钮, 算出来的数值将比预想中的小一些, 或者小很多 (如: 8
 进制中没有 019 这样的数值, 所以数值变成了 1, 9 被忽略掉).<br /><a rel="external" href="http://www.neoease.com/tutorials/javascript-parseint-radix/without-radix.html">没
有为 parseInt 函数指定进制的 DEMO</a></p>
		<h4>如何修改?</h4>
		<p>
前面说过, 有两个参数, 第二个参数可以指定计算使用的进制.
</p>
		<div class="wp_syntax">
				<table>
						<tbody>
								<tr>
										<td class="line_numbers">
												<pre>1<br /></pre>
										</td>
										<td class="code">
												<pre class="javascript" style="font-family: monospace;">parseInt<span style="color: rgb(0, 153, 0);">(</span>num<span style="color: rgb(51, 153, 51);">,</span> radix<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
										</td>
								</tr>
						</tbody>
				</table>
		</div>
		<p>
所以我们可以将前面有问题的那段 JavaScript 代码改写为下面的代码.
</p>
		<div class="wp_syntax">
				<table>
						<tbody>
								<tr>
										<td class="line_numbers">
												<pre>1<br />2<br />3<br /></pre>
										</td>
										<td class="code">
												<pre class="javascript" style="font-family: monospace;">
														<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> str <span style="color: rgb(51, 153, 51);">=</span><span style="color: rgb(51, 102, 204);">"020"</span><span style="color: rgb(51, 153, 51);">;</span><br /><span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> num <span style="color: rgb(51, 153, 51);">=</span> parseInt<span style="color: rgb(0, 153, 0);">(</span>str<span style="color: rgb(51, 153, 51);">,</span><span style="color: rgb(204, 0, 0);">10</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span><br /><span style="color: rgb(0, 0, 102);">alert</span><span style="color: rgb(0, 153, 0);">(</span>num<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
										</td>
								</tr>
						</tbody>
				</table>
		</div>
		<p>
这样处理的话, 我们再重写一些前面的 DEMO, 如下:<br /><a rel="external" href="http://www.neoease.com/tutorials/javascript-parseint-radix/with-radix.html">为
 parseInt 函数指定进制为 10 的 DEMO</a></p>
		<p>记住了, 在 JavaScript 上使用 parseInt 方法时要带上进制参数.</p>
<img src ="http://www.blogjava.net/jasmine214--love/aggbug/324667.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jasmine214--love/" target="_blank">幻海蓝梦</a> 2010-06-28 14:00 <a href="http://www.blogjava.net/jasmine214--love/archive/2010/06/28/324667.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JfreeChart学习总结</title><link>http://www.blogjava.net/jasmine214--love/archive/2010/06/27/324623.html</link><dc:creator>幻海蓝梦</dc:creator><author>幻海蓝梦</author><pubDate>Sun, 27 Jun 2010 14:26:00 GMT</pubDate><guid>http://www.blogjava.net/jasmine214--love/archive/2010/06/27/324623.html</guid><wfw:comment>http://www.blogjava.net/jasmine214--love/comments/324623.html</wfw:comment><comments>http://www.blogjava.net/jasmine214--love/archive/2010/06/27/324623.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jasmine214--love/comments/commentRss/324623.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jasmine214--love/services/trackbacks/324623.html</trackback:ping><description><![CDATA[
		<table style="BORDER-COLLAPSE: collapse; WORD-WRAP: break-word" border="0" cellspacing="0" cellpadding="0" width="100%">
				<tbody>
						<tr>
								<td align="middle">
										<table style="BORDER-COLLAPSE: collapse; WORD-WRAP: break-word" border="0" cellspacing="0" cellpadding="0" width="100%">
												<tbody>
														<tr>
																<td width="100%">
																		<div style="MARGIN: 15px" id="art" width="100%">
																				<b>原文：<a href="http://blog.chinaunix.net/u/17663/showart_370064.html">http://blog.chinaunix.net/u/17663/showart_370064.html</a><br />一、简介</b>
																				<br />WW 的发展使得基于因特网的应用程序不再局限于静态或者简单的动态内容提供。传统的一些以软件包形式发布应用程序例如报表系统等都在逐渐搬到因特网上。但是这两者之间有着天壤之别，虽然对于数据获取、业务处理等方面基本类似，但是最大的差别在于用户界面。为了能在web浏览器上显示要求用户界面使用 HTML以及图片的方式来展现数据，而传统的一些利用操作系统本身的控件来开发的用户界面无法适应琳琅满目的客户端，因此在这里也变得无能为力。回到本文的题目上来，为了创建一个可以在web浏览器上查看到图表一般有两种做法：第一种就是使用applet利用java本身对图形的支持来显示一个图表；第二种就是直接在web服务器端生成好图表图片文件后发送给浏览器。第一种方式显然对于客户端要求太高，随着现在主流浏览器放弃对JAVA的支持后，这种方式只适合一些局域网的应用，而对于因特网的环境就显得不太适合。因此我们下面将介绍一个JAVA的图表引擎JFreeChart用来产生基于WEB的图表。 <br />JFreeChart 项目简介 JFreeChart是开放源代码站点SourceForge.net上的一个JAVA项目，它主要用来各种各样的图表，这些图表包括：饼图、柱状图(普通柱状图以及堆栈柱状图)、线图、区域图、分布图、混合图、甘特图以及一些仪表盘等等。这些不同式样的图表基本上可以满足目前的要求。 <br /><b><br />二、JFreeChart获取。</b><br />JFreeChart 是JFreeChart公司在开源网站SourceForge.net上的一个项目，该公司的主要产品有如下： <br />1.JFreeReport ：报表解决工具 <br />2.JFreeChart:Java 图形解决方案（Application/Applet/Servlet/Jsp） <br />3.JCommon ：JFreeReport和JFreeChart的公共类库 <br />4.JFreeDesigner ：JFreeReport的报表设计工具 <br />我们可以从jfree官方网站上获取最新版本和相关资料（但是jfree的document需要40美金才能获取）， <br />获取地址：http://www.jfree.org/jfreechart/index.html（同时可以获得简明介绍） <br />我们以当前最新版本：jfreechart-1.0.1.zip为例子进行说明。 
<p><b>三、JFreeChart配置安装</b><br />1 、解压jfreechart-1.0.1.zip.zip到指定位置，其中source是jfreechart的源码，jfreechart-1.0.1-demo.jar 是例子程序，可以先运行一下看看各种效果，就知道他的nb之处了。 <br />2 、为了配置成功，我们需要关注的文件有如下三个： <br />设置classpath。加入下面三个jar包。 <br />jfreechart-1.0.1.jar 、jcommon-1.0.0.jar、gnujaxp.jar <br />加上第三个jar包有时web.xml会报错，把它去掉就好了。 <br />至此jfreechart的配置就完成了，下面就可以进行jfreechart的开发了。这里值得提出的是jfreechart的类 <br />结构设计前后兼容性不是很好，不同版本的jfreechart中类库结构可能不一样，有时候可能需要查源码。如果是中文显示的时候可能依据观感需要改变源码的字体。 </p><p><b>四、JFreeChart功能介绍 </b><br />JFreeChart 目前是最好的java图形解决方案，基本能够解决目前的图形方面的需求，主要包括如下几个方面： <br />pie charts (2D and 3D) ：饼图（平面和立体） <br />bar charts (regular and stacked, with an optional 3D effect) ：柱状图 <br />line and area charts ：曲线图 <br />scatter plots and bubble charts <br />time series, high/low/open/close charts and candle stick charts ：时序图 <br />combination charts ：复合图 <br />Pareto charts <br />Gantt charts ：甘特图 <br />wind plots, meter charts and symbol charts <br />wafer map charts <br />( 态图表,饼图(二维和三维) , 柱状图 ( 水平,垂直),线图,点图,时间变化图,甘特图, 股票行情图,混和图, 温度计图, 刻度图等常用商用图表) <br />图形可以导出成PNG和JPEG格式，同时还可以与PDF和EXCEL关联 <br />JFreeChart 核心类库介绍： <br />研究jfreechart源码发现源码的主要由两个大的包组成：org.jfree.chart,org.jfree.data。其中前者主要与图形 <br />本身有关，后者与图形显示的数据有关。具体研究如果大家有兴趣的话可以自己研究 。 <br />核心类主要有： <br />org.jfree.chart.JFreeChart ：图表对象，任何类型的图表的最终表现形式都是在该对象进行一些属性的定制。JFreeChart引擎本身提供了一个工厂类用于创建不同类型的图表对象 <br />org.jfree.data.category.XXXDataSet: 数据集对象，用于提供显示图表所用的数据。根据不同类型的图表对应着很多类型的数据集对象类 <br />org.jfree.chart.plot.XXXPlot ：图表区域对象，基本上这个对象决定着什么样式的图表，创建该对象的时候需要Axis、Renderer以及数据集对象的支持 <br />org.jfree.chart.axis.XXXAxis ：用于处理图表的两个轴：纵轴和横轴 <br />org.jfree.chart.render.XXXRender ：负责如何显示一个图表对象 <br />org.jfree.chart.urls.XXXURLGenerator: 用于生成Web图表中每个项目的鼠标点击链接 <br />XXXXXToolTipGenerator: 用于生成图象的帮助提示，不同类型图表对应不同类型的工具提示类 </p><p>个人感觉JFreeChart可以满足大部分图片创建的需要，美中不足的是：对字体的设置做的不够好，特别是使用中文的时候字体很不清晰。因为这个原因建议你自己去修改他的源代码，最好使用properties文件去设置字体.还有就是文档要钱所以要多花点时间去看源代码。或多上社区. </p><p><b>五．开始开发 </b><br />对JfreeChart有了初步了解并做好准备工作之后，开始作例子程序试验。在这里我只介绍饼图的做法，而这张图采用不同的方式进行输出，其他类型的图片可以参考jfreechart提供的例子，做法都差不多。 </p><p><span style="COLOR: red">1） 直接生成图片</span><br /></p><div class="code_title">代码</div><div class="code_div"><div class="dp-highlighter"><ol class="dp-j"><li class="alt"><span><span class="keyword">public</span><span> </span><span class="keyword">class</span><span> PieChartPicture {  </span></span></li><li><span><span class="keyword">public</span><span> </span><span class="keyword">static</span><span> </span><span class="keyword">void</span><span> main(String[] args)   </span></span></li><li class="alt"><span>{  </span></li><li><span> PieDataset dataset = getDataSet();  </span></li><li class="alt"><span> JFreeChart chart = ChartFactory.createPieChart3D(  </span></li><li><span>    <span class="string">" 项目进度分布"</span><span>, </span><span class="comment">// chart title</span><span>  </span></span></li><li class="alt"><span>    dataset,<span class="comment">// data</span><span>  </span></span></li><li><span>    <span class="keyword">true</span><span>,</span><span class="comment">// include legend</span><span>  </span></span></li><li class="alt"><span>    <span class="keyword">true</span><span>,  </span></span></li><li><span>    <span class="keyword">false</span><span>  </span></span></li><li class="alt"><span>   );  </span></li><li><span>  PiePlot3D  plot=(PiePlot3D)chart.getPlot();  </span></li><li class="alt"><span>    <span class="comment">// 图片中显示百分比:默认方式</span><span>  </span></span></li><li><span>    <span class="comment">//plot.setLabelGenerator(new           StandardPieSectionLabelGenerator(StandardPieToolTipGenerator.DEFAULT_TOOLTIP_FORMAT));</span><span>  </span></span></li><li class="alt"><span><span class="comment">// 图片中显示百分比:自定义方式，{0} 表示选项， {1} 表示数值， {2} 表示所占比例 ,小数点后两位</span><span>  </span></span></li><li><span> plot.setLabelGenerator(<span class="keyword">new</span><span> StandardPieSectionLabelGenerator(</span><span class="string">"{0}={1}({2})"</span><span>, NumberFormat.getNumberInstance(), </span><span class="keyword">new</span><span> DecimalFormat(</span><span class="string">"0.00%"</span><span>)));   </span></span></li><li class="alt"><span><span class="comment">// 图例显示百分比:自定义方式， {0} 表示选项， {1} 表示数值， {2} 表示所占比例                </span><span>  </span></span></li><li><span> plot.setLegendLabelGenerator(<span class="keyword">new</span><span> StandardPieSectionLabelGenerator(</span><span class="string">"{0}={1}({2})"</span><span>));   </span></span></li><li class="alt"><span><span class="comment">// 设置背景色为白色 </span><span>  </span></span></li><li><span>chart.setBackgroundPaint(Color.white);   </span></li><li class="alt"><span><span class="comment">// 指定图片的透明度(0.0-1.0) </span><span>  </span></span></li><li><span> plot.setForegroundAlpha(<span class="number">1</span><span>.0f);   </span></span></li><li class="alt"><span><span class="comment">// 指定显示的饼图上圆形(false)还椭圆形(true) </span><span>  </span></span></li><li><span>plot.setCircular(<span class="keyword">true</span><span>);   </span></span></li><li class="alt"><span><span class="comment">// 设置图标题的字体 </span><span>  </span></span></li><li><span>Font font = <span class="keyword">new</span><span> Font(</span><span class="string">" 黑体"</span><span>,Font.CENTER_BASELINE,</span><span class="number">20</span><span>);   </span></span></li><li class="alt"><span>TextTitle title = <span class="keyword">new</span><span> TextTitle(</span><span class="string">" 项目状态分布"</span><span>);   </span></span></li><li><span>title.setFont(font);    </span></li><li class="alt"><span>chart.setTitle(title);   </span></li><li><span>FileOutputStream fos_jpg = <span class="keyword">null</span><span>;   </span></span></li><li class="alt"><span><span class="keyword">try</span><span> {   </span></span></li><li><span>     fos_jpg=<span class="keyword">new</span><span> FileOutputStream(</span><span class="string">"D:\\ 项目状态分布.jpg"</span><span>);   </span></span></li><li class="alt"><span>     ChartUtilities.writeChartAsJPEG(fos_jpg,<span class="number">100</span><span>,chart,</span><span class="number">640</span><span>,</span><span class="number">480</span><span>,</span><span class="keyword">null</span><span>);   </span></span></li><li><span>     fos_jpg.close();   </span></li><li class="alt"><span>} <span class="keyword">catch</span><span> (Exception e) {   </span></span></li><li><span> }   </span></li><li class="alt"><span>}   </span></li><li><span><span class="keyword">private</span><span> </span><span class="keyword">static</span><span> PieDataset getDataSet() {   </span></span></li><li class="alt"><span>DefaultPieDataset dataset = <span class="keyword">new</span><span> DefaultPieDataset();   </span></span></li><li><span>dataset.setValue(<span class="string">" 市场前期"</span><span>, </span><span class="keyword">new</span><span> Double(</span><span class="number">10</span><span>));   </span></span></li><li class="alt"><span>dataset.setValue(<span class="string">" 立项"</span><span>, </span><span class="keyword">new</span><span> Double(</span><span class="number">15</span><span>));   </span></span></li><li><span>dataset.setValue(<span class="string">" 计划"</span><span>, </span><span class="keyword">new</span><span> Double(</span><span class="number">10</span><span>));   </span></span></li><li class="alt"><span>dataset.setValue(<span class="string">" 需求与设计"</span><span>, </span><span class="keyword">new</span><span> Double(</span><span class="number">10</span><span>));   </span></span></li><li><span>dataset.setValue(<span class="string">" 执行控制"</span><span>, </span><span class="keyword">new</span><span> Double(</span><span class="number">35</span><span>));   </span></span></li><li class="alt"><span>dataset.setValue(<span class="string">" 收尾"</span><span>, </span><span class="keyword">new</span><span> Double(</span><span class="number">10</span><span>));   </span></span></li><li><span>dataset.setValue(<span class="string">" 运维"</span><span>,</span><span class="keyword">new</span><span> Double(</span><span class="number">10</span><span>));   </span></span></li><li class="alt"><span><span class="keyword">return</span><span> dataset;          </span></span></li><li><span>}  </span></li><li class="alt"><span>}   </span></li></ol></div></div><script><![CDATA[ender_code();]]&gt;</script><p><span style="COLOR: red">2) 采用servlet和struts的action方式输出 </span><br />采用这种方式输出，不用生成图片。 <br />A ．servlet输出 <br /></p><div class="code_title">代码</div><div class="code_div"><div class="dp-highlighter"><ol class="dp-j"><li class="alt"><span><span class="keyword">public</span><span> </span><span class="keyword">class</span><span> PieByServlet </span><span class="keyword">extends</span><span> HttpServlet{   </span></span></li><li><span><span class="keyword">public</span><span> </span><span class="keyword">void</span><span> service(ServletRequest req, ServletResponse res)   </span></span></li><li class="alt"><span><span class="keyword">throws</span><span> ServletException, IOException   </span></span></li><li><span>{   </span></li><li class="alt"><span>   res.setContentType(<span class="string">"image/jpeg"</span><span>);   </span></span></li><li><span>   PieDataset dataset = getDataSet();   </span></li><li class="alt"><span>   JFreeChart chart = ChartFactory.createPieChart3D(   </span></li><li><span>   <span class="string">" 水果饼图"</span><span>, </span><span class="comment">// chart title </span><span>  </span></span></li><li class="alt"><span>   dataset,<span class="comment">// data </span><span>  </span></span></li><li><span>   <span class="keyword">true</span><span>, </span><span class="comment">// include legend </span><span>  </span></span></li><li class="alt"><span>   <span class="keyword">true</span><span>,   </span></span></li><li><span>   <span class="keyword">false</span><span> );   </span></span></li><li class="alt"><span>   <span class="comment">//设置图表属性</span><span>  </span></span></li><li><span><span class="comment">// 输出图片 </span><span>  </span></span></li><li class="alt"><span> ChartUtilities.writeChartAsJPEG(res.getOutputStream(),<span class="number">100</span><span>,chart,</span><span class="number">800</span><span>,</span><span class="number">600</span><span>,</span><span class="keyword">null</span><span>);   </span></span></li><li><span>}   </span></li></ol></div></div><script><![CDATA[ender_code();]]&gt;</script><br />B ．struts的action方式输出 <br />只将这条语句加上try catch即可，并返回null。 <br /><div class="code_title">代码</div><div class="code_div"><div class="dp-highlighter"><ol class="dp-j"><li class="alt"><span><span class="keyword">try</span><span>{         </span></span></li><li><span>ChartUtilities.writeChartAsJPEG(response.getOutputStream(),<span class="number">100</span><span>,chart,</span><span class="number">800</span><span>,</span><span class="number">600</span><span>,</span><span class="keyword">null</span><span>);   </span></span></li><li class="alt"><span> } <span class="keyword">catch</span><span> (Exception e) {   </span></span></li><li><span>}  </span></li><li class="alt"><span><span class="keyword">return</span><span> </span><span class="keyword">null</span><span>;   </span></span></li></ol></div></div><script><![CDATA[ender_code();]]&gt;</script><p>其实采用这两种方式与生成图片的方式改动并不大 <br />加上语句response.setContentType("image/jpeg"); <br />ChartUtilities.writeChartAsJPEG(new FileOutputStream("D:\\ 项目状态分布.jpg");,100,chart,640,480,null); <br />文件流改成response的输出流就可以了 <br />hartUtilities.writeChartAsJPEG(response.getOutputStream(),100,chart,800,600,null); </p><p><span style="COLOR: red">3）jsp＋servlet＋javabean方式</span><br />1. Create ChartViewer servlet <br /></p><div class="code_title">代码</div><div class="code_div"><div class="dp-highlighter"><ol class="dp-j"><li class="alt"><span><span class="keyword">public</span><span> </span><span class="keyword">class</span><span> ChartViewer </span><span class="keyword">extends</span><span> HttpServlet {   </span></span></li><li><span><span class="keyword">public</span><span> </span><span class="keyword">void</span><span> init() </span><span class="keyword">throws</span><span> ServletException {  </span></span></li><li class="alt"><span>}   </span></li><li><span><span class="comment">//Process the HTTP Get request</span><span>  </span></span></li><li class="alt"><span><span class="keyword">public</span><span> </span><span class="keyword">void</span><span> doGet(HttpServletRequest request, HttpServletResponse response)  </span><span class="keyword">throws</span><span> ServletException, IOException {   </span></span></li><li><span><span class="comment">// get the chart from session</span><span>  </span></span></li><li class="alt"><span>HttpSession session = request.getSession();   </span></li><li><span>BufferedImage chartImage = (BufferedImage) session.getAttribute(<span class="string">"chartImage"</span><span>);   </span></span></li><li class="alt"><span><span class="comment">// set the content type so the browser can see this as a picture </span><span>  </span></span></li><li><span>response.setContentType(<span class="string">"image/png"</span><span>);   </span></span></li><li class="alt"><span><span class="comment">// send the picture </span><span>  </span></span></li><li><span>PngEncoder encoder = <span class="keyword">new</span><span> PngEncoder(chartImage, </span><span class="keyword">false</span><span>, </span><span class="number">0</span><span>, </span><span class="number">9</span><span>);   </span></span></li><li class="alt"><span>response.getOutputStream().write(encoder.pngEncode());  </span></li><li><span>}   </span></li><li class="alt"><span><span class="comment">//Process the HTTP Post request </span><span>  </span></span></li><li><span><span class="keyword">public</span><span> </span><span class="keyword">void</span><span> doPost(HttpServletRequest request, HttpServletResponse response)  </span><span class="keyword">throws</span><span> ServletException, IOException {   </span></span></li><li class="alt"><span>doGet(request, response);   </span></li><li><span>}   </span></li><li class="alt"><span><span class="comment">//Process the HTTP Put request </span><span>  </span></span></li><li><span><span class="keyword">public</span><span> </span><span class="keyword">void</span><span> doPut(HttpServletRequest request, HttpServletResponse response) </span><span class="keyword">throws</span><span> ServletException, IOException {   </span></span></li><li class="alt"><span>}   </span></li><li><span><span class="comment">//Clean up resources </span><span>  </span></span></li><li class="alt"><span><span class="keyword">public</span><span> </span><span class="keyword">void</span><span> destroy() { }   </span></span></li><li><span>}   </span></li></ol></div></div><script><![CDATA[ender_code();]]&gt;</script><p>2. Create a servlet map in web.xml <br /></p><div class="code_title">代码</div><div class="code_div"><div class="dp-highlighter"><ol class="dp-xml"><li class="alt"><span><span class="tag">&lt;?</span><span class="tag-name">xml</span><span> </span><span class="attribute">version</span><span>=</span><span class="attribute-value">"1.0"</span><span> </span><span class="attribute">encoding</span><span>=</span><span class="attribute-value">"UTF-8"</span><span class="tag">?&gt;</span><span>   </span></span></li><li><span><span class="tag">&lt;</span><span class="tag-name">web-app</span><span class="tag">&gt;</span><span>   </span></span></li><li class="alt"><span> <span class="tag">&lt;</span><span class="tag-name">servlet</span><span class="tag">&gt;</span><span>   </span></span></li><li><span> <span class="tag">&lt;</span><span class="tag-name">servlet-name</span><span class="tag">&gt;</span><span>ChartViewer</span><span class="tag">&lt;/</span><span class="tag-name">servlet-name</span><span class="tag">&gt;</span><span>   </span></span></li><li class="alt"><span> <span class="tag">&lt;</span><span class="tag-name">servlet-class</span><span class="tag">&gt;</span><span>myapp.webwork.servlets.ChartViewer</span><span class="tag">&lt;/</span><span class="tag-name">servlet-class</span><span class="tag">&gt;</span><span>   </span></span></li><li><span><span class="tag">&lt;/</span><span class="tag-name">servlet</span><span class="tag">&gt;</span><span>   </span></span></li><li class="alt"><span><span class="tag">&lt;</span><span class="tag-name">servlet-mapping</span><span class="tag">&gt;</span><span>   </span></span></li><li><span><span class="tag">&lt;</span><span class="tag-name">servlet-name</span><span class="tag">&gt;</span><span>ChartViewer</span><span class="tag">&lt;/</span><span class="tag-name">servlet-name</span><span class="tag">&gt;</span><span>   </span></span></li><li class="alt"><span><span class="tag">&lt;</span><span class="tag-name">url-pattern</span><span class="tag">&gt;</span><span>/servlet/ChartViewer</span><span class="tag">&lt;/</span><span class="tag-name">url-pattern</span><span class="tag">&gt;</span><span>   </span></span></li><li><span><span class="tag">&lt;/</span><span class="tag-name">servlet-mapping</span><span class="tag">&gt;</span><span>   </span></span></li><li class="alt"><span><span class="tag">&lt;/</span><span class="tag-name">web-app</span><span class="tag">&gt;</span><span>   </span></span></li></ol></div></div><script><![CDATA[ender_code();]]&gt;</script><p>3. Create a chart in a java bean (Pie3DDemo.java) </p><div class="code_title">代码</div><div class="code_div"><div class="dp-highlighter"><ol class="dp-j"><li class="alt"><span><span class="keyword">public</span><span> </span><span class="keyword">class</span><span> Pie3DDemo {   </span></span></li><li><span><span class="keyword">private</span><span> DefaultPieDataset getDataset() {   </span></span></li><li class="alt"><span><span class="comment">// categories... </span><span>  </span></span></li><li><span>String[] section = <span class="keyword">new</span><span> String[] { </span><span class="string">"Jan"</span><span>,</span><span class="string">"Feb"</span><span>,</span><span class="string">"Mar"</span><span>,</span><span class="string">"Apr"</span><span>,</span><span class="string">"May"</span><span>,</span><span class="string">"Jun"</span><span>, </span><span class="string">"Jul"</span><span>,</span><span class="string">"Aug"</span><span>,</span><span class="string">"Sep"</span><span>,</span><span class="string">"Oct"</span><span>,</span><span class="string">"Nov"</span><span>,</span><span class="string">"Dec"</span><span> };   </span></span></li><li class="alt"><span><span class="comment">// data... </span><span>  </span></span></li><li><span><span class="keyword">double</span><span>[] data = </span><span class="keyword">new</span><span> </span><span class="keyword">double</span><span>[section.length];   </span></span></li><li class="alt"><span> <span class="keyword">for</span><span> (</span><span class="keyword">int</span><span> i = </span><span class="number">0</span><span>; i &lt; data.length; i++) {   </span></span></li><li><span>     data[i] = <span class="number">10</span><span> + (Math.random() * </span><span class="number">10</span><span>);   </span></span></li><li class="alt"><span>}   </span></li><li><span><span class="comment">// create the dataset... </span><span>  </span></span></li><li class="alt"><span>DefaultPieDataset dataset = <span class="keyword">new</span><span> DefaultPieDataset();   </span></span></li><li><span><span class="keyword">for</span><span> (</span><span class="keyword">int</span><span> i = </span><span class="number">0</span><span>; i &lt; data.length; i++) {   </span></span></li><li class="alt"><span>       dataset.setValue(section[i], data[i]);   </span></li><li><span>}   </span></li><li class="alt"><span><span class="keyword">return</span><span> dataset;   </span></span></li><li><span>}   </span></li><li class="alt"><span><span class="keyword">public</span><span> String getChartViewer(HttpServletRequest request, HttpServletResponse response) {   </span></span></li><li><span> DefaultPieDataset dataset = getDataset();   </span></li><li class="alt"><span><span class="comment">// create the chart... </span><span>  </span></span></li><li><span> JFreeChart chart = ChartFactory.createPie3DChart(   </span></li><li class="alt"><span>  <span class="string">"Pie3D Chart Demo"</span><span>,  </span><span class="comment">// chart title </span><span>  </span></span></li><li><span>  dataset,             <span class="comment">// data </span><span>  </span></span></li><li class="alt"><span>  <span class="keyword">true</span><span>,                </span><span class="comment">// include legend </span><span>  </span></span></li><li><span>  <span class="keyword">true</span><span>,   </span></span></li><li class="alt"><span>  <span class="keyword">false</span><span>   </span></span></li><li><span> );   </span></li><li class="alt"><span><span class="comment">// set the background color for the chart... </span><span>  </span></span></li><li><span>chart.setBackgroundPaint(Color.cyan);   </span></li><li class="alt"><span>PiePlot plot = (PiePlot) chart.getPlot();   </span></li><li><span>plot.setNoDataMessage(<span class="string">"No data available"</span><span>);   </span></span></li><li class="alt"><span><span class="comment">// set drilldown capability... </span><span>  </span></span></li><li><span> plot.setURLGenerator(<span class="keyword">new</span><span> StandardPieURLGenerator(</span><span class="string">"Bar3DDemo.jsp"</span><span>,</span><span class="string">"section"</span><span>));   </span></span></li><li class="alt"><span>plot.setLabelGenerator(<span class="keyword">null</span><span>);   </span></span></li><li><span><span class="comment">// OPTIONAL CUSTOMISATION COMPLETED. </span><span>  </span></span></li><li class="alt"><span>ChartRenderingInfo info = <span class="keyword">null</span><span>;   </span></span></li><li><span>HttpSession session = request.getSession();   </span></li><li class="alt"><span><span class="keyword">try</span><span> {   </span></span></li><li><span><span class="comment">//Create RenderingInfo object </span><span>  </span></span></li><li class="alt"><span> response.setContentType(<span class="string">"text/html"</span><span>);   </span></span></li><li><span> info = <span class="keyword">new</span><span> ChartRenderingInfo(</span><span class="keyword">new</span><span> StandardEntityCollection());   </span></span></li><li class="alt"><span> BufferedImage chartImage = chart.createBufferedImage(<span class="number">640</span><span>, </span><span class="number">400</span><span>, info);   </span></span></li><li><span><span class="comment">// putting chart as BufferedImage in session, </span><span>  </span></span></li><li class="alt"><span><span class="comment">// thus making it available for the image reading action Action. </span><span>  </span></span></li><li><span>session.setAttribute(<span class="string">"chartImage"</span><span>, chartImage);   </span></span></li><li class="alt"><span>PrintWriter writer = <span class="keyword">new</span><span> PrintWriter(response.getWriter());   </span></span></li><li><span>ChartUtilities.writeImageMap(writer, <span class="string">"imageMap"</span><span>, info);   </span></span></li><li class="alt"><span>writer.flush();   </span></li><li><span>} <span class="keyword">catch</span><span> (Exception e) { }   </span></span></li><li class="alt"><span>  </span></li><li><span>String pathInfo = <span class="string">"http://"</span><span>;   </span></span></li><li class="alt"><span>pathInfo += request.getServerName();   </span></li><li><span><span class="keyword">int</span><span> port = request.getServerPort();   </span></span></li><li class="alt"><span>pathInfo += <span class="string">":"</span><span>+String.valueOf(port);   </span></span></li><li><span>pathInfo += request.getContextPath();   </span></li><li class="alt"><span>String chartViewer = pathInfo + <span class="string">"/servlet/ChartViewer"</span><span>;   </span></span></li><li><span><span class="keyword">return</span><span> chartViewer;   </span></span></li><li class="alt"><span>}   </span></li></ol></div></div><script><![CDATA[ender_code();]]&gt;</script><p>6. 页面 <br /></p><div class="code_title">代码</div><div class="code_div"><div class="dp-highlighter"><ol class="dp-xml"><li class="alt"><span><span>   </span></span></li><li><span><span class="tag">&lt;</span><span class="tag-name">html</span><span class="tag">&gt;</span><span>   </span></span></li><li class="alt"><span><span class="tag">&lt;</span><span class="tag-name">head</span><span class="tag">&gt;</span><span>   </span></span></li><li><span><span class="tag">&lt;</span><span class="tag-name">title</span><span class="tag">&gt;</span><span>Pie Chart Demo</span><span class="tag">&lt;/</span><span class="tag-name">title</span><span class="tag">&gt;</span><span>   </span></span></li><li class="alt"><span><span class="tag">&lt;/</span><span class="tag-name">head</span><span class="tag">&gt;</span><span>   </span></span></li><li><span><span class="tag">&lt;</span><span class="tag-name">jsp:useBeanid</span><span class="attribute">jsp:useBeanid</span><span>="myChart"</span><span class="attribute-value">scope</span><span>="session"</span><span class="attribute">class</span><span>=</span><span class="attribute-value">"myapp.webwork.beans.Pie3DDemo"</span><span> </span><span class="tag">/&gt;</span><span>   </span></span></li><li class="alt"><span><span class="tag">&lt;</span><span class="tag-name">body</span><span class="tag">&gt;</span><span>   </span></span></li><li><span><span class="tag">&lt;</span><span class="tag-name">h2</span><span class="tag">&gt;</span><span>Pie Chart Demo</span><span class="tag">&lt;/</span><span class="tag-name">h2</span><span class="tag">&gt;</span><span>   </span></span></li><li class="alt"><span><span class="tag">&lt;</span><span>%String </span><span class="attribute">chartViewer</span><span> = </span><span class="attribute-value">myChart</span><span>.getChartViewer(request, response);%</span><span class="tag">&gt;</span><span>   </span></span></li><li><span><span class="tag">&lt;</span><span class="tag-name">img</span><span> </span><span class="attribute">src</span><span>=</span><span class="attribute-value">"&lt;%=chartViewer%&gt;"</span><span> </span><span class="attribute">border</span><span>=</span><span class="attribute-value">0</span><span> </span><span class="attribute">usemap</span><span>=</span><span class="attribute-value">"#imageMap"</span><span class="tag">&gt;</span><span>   </span></span></li><li class="alt"><span><span class="tag">&lt;/</span><span class="tag-name">body</span><span class="tag">&gt;</span><span>   </span></span></li><li><span><span class="tag">&lt;/</span><span class="tag-name">html</span><span class="tag">&gt;</span><span>   </span></span></li></ol></div></div><script><![CDATA[ender_code();]]&gt;</script><p><span style="COLOR: red">4）采用工具类ChartUtil和DisplayChart（jfreechart的servlet）输出</span><br />我用了上面的几个方法输出图片，发现页面里只能输出一个图片， <br />不过下面的方法可以输出多个图片,而且是几种方式中最简单的一个，推荐使用。</p><p>这种方式和上面的三种比较类似，是将javabean里的生成图片的方法写的一个工具类ChartUtil里面。</p><p>1 ．添加工具类ChartUtil <br />public class ChartUtil { <br />// 产生时间序列图，返回图片名称 <br /></p><div class="code_title">代码</div><div class="code_div"><div class="dp-highlighter"><ol class="dp-j"><li class="alt"><span><span class="keyword">public</span><span>  </span><span class="keyword">static</span><span> String generatePieChart(DefaultPieDataset dataset,String title,</span><span class="keyword">int</span><span> width,</span><span class="keyword">int</span><span> height,HttpSession session, PrintWriter pw) {   </span></span></li><li><span>  </span></li><li class="alt"><span>String filename = <span class="keyword">null</span><span>;   </span></span></li><li><span> <span class="keyword">try</span><span> {   </span></span></li><li class="alt"><span> <span class="keyword">if</span><span> (session != </span><span class="keyword">null</span><span>)   </span></span></li><li><span> {   </span></li><li class="alt"><span>ChartDeleter deleter = (ChartDeleter)session.getAttribute(<span class="string">"JFreeChart_Deleter"</span><span>);   </span></span></li><li><span> session.removeAttribute(<span class="string">"JFreeChart_Deleter"</span><span>);   </span></span></li><li class="alt"><span> session.setAttribute(<span class="string">"JFreeChart_Deleter"</span><span>, deleter);   </span></span></li><li><span>}   </span></li><li class="alt"><span>JFreeChart chart = ChartFactory.createPieChart3D(   </span></li><li><span>title,  <span class="comment">// chart title </span><span>  </span></span></li><li class="alt"><span>dataset, <span class="comment">// data </span><span>  </span></span></li><li><span><span class="keyword">true</span><span>,  </span><span class="comment">// include legend </span><span>  </span></span></li><li class="alt"><span><span class="keyword">true</span><span>,   </span></span></li><li><span><span class="keyword">false</span><span> );   </span></span></li><li class="alt"><span><span class="comment">//  Write the chart image to the temporary directory </span><span>  </span></span></li><li><span>ChartRenderingInfo info = <span class="keyword">new</span><span> ChartRenderingInfo(</span><span class="keyword">new</span><span> StandardEntityCollection());   </span></span></li><li class="alt"><span><span class="comment">//If the last parameter is null, the chart is a "one time"-chart and will be deleted after the first serving. </span><span>  </span></span></li><li><span><span class="comment">//If the last parameter is a session object, the chart remains until session time out. </span><span>  </span></span></li><li class="alt"><span>filename = ServletUtilities.saveChartAsPNG(chart, width, height, info, session);   </span></li><li><span><span class="comment">//  Write the image map to the PrintWriter </span><span>  </span></span></li><li class="alt"><span> ChartUtilities.writeImageMap(pw, filename, info,<span class="keyword">true</span><span>);   </span></span></li><li><span> pw.flush();   </span></li><li class="alt"><span>} <span class="keyword">catch</span><span> (Exception e) {   </span></span></li><li><span> System.out.println(<span class="string">"Exception - "</span><span> + e.toString());   </span></span></li><li class="alt"><span> e.printStackTrace(System.out);   </span></li><li><span> filename = <span class="string">"picture_error.png"</span><span>; }   </span></span></li><li class="alt"><span><span class="keyword">return</span><span> filename;   </span></span></li><li><span>}   </span></li><li class="alt"><span>}   </span></li></ol></div></div><script><![CDATA[ender_code();]]&gt;</script><p>2、在action里统计数据，设置好数据集dataset。传到页面</p><p>3、 在页面里取出 <br />DefaultPieDataset piedataset=(DefaultPieDataset)request.getAttribute("piedataset"); <br />// 用ChartUtil工具类产生图片 <br /></p><div class="code_title">代码</div><div class="code_div"><div class="dp-highlighter"><ol class="dp-j"><li class="alt"><span><span>String p = ChartUtil.generatePieChart(piedataset,</span><span class="string">" 项目收支线图"</span><span>,</span><span class="number">500</span><span>,</span><span class="number">300</span><span>,</span><span class="keyword">null</span><span>, </span><span class="keyword">new</span><span> PrintWriter(out));   </span></span></li><li><span>String p1 = request.getContextPath() + <span class="string">"/servlet/DisplayChart?filename="</span><span> + p;   </span></span></li></ol></div></div><script><![CDATA[ender_code();]]&gt;</script><br />通过以下方式输出 <br /><div class="code_title">代码</div><div class="code_div"><div class="dp-highlighter"><ol class="dp-xml"><li class="alt"><span><span class="tag">&lt;</span><span class="tag-name">td</span><span class="tag">&gt;</span><span class="tag">&lt;</span><span class="tag-name">img</span><span> </span><span class="attribute">src</span><span>=</span><span class="attribute-value">"&lt;%= p1 %&gt;"</span><span> </span><span class="attribute">width</span><span>=</span><span class="attribute-value">500</span><span> </span><span class="attribute">height</span><span>=</span><span class="attribute-value">300</span><span> </span><span class="attribute">border</span><span>=</span><span class="attribute-value">0</span><span> </span><span class="attribute">usemap</span><span>=</span><span class="attribute-value">"#&lt;%= p %&gt;"</span><span class="tag">&gt;</span><span class="tag">&lt;/</span><span class="tag-name">td</span><span class="tag">&gt;</span><span>  </span></span></li></ol></div></div><script><![CDATA[ender_code();]]&gt;</script><p>4、在web.xml中添加 <br /></p><div class="code_title">代码</div><div class="code_div"><div class="dp-highlighter"><ol class="dp-xml"><li class="alt"><span><span class="tag">&lt;</span><span class="tag-name">servlet</span><span class="tag">&gt;</span><span>  </span></span></li><li><span>  <span class="tag">&lt;</span><span class="tag-name">servlet-name</span><span class="tag">&gt;</span><span>DisplayChart</span><span class="tag">&lt;/</span><span class="tag-name">servlet-name</span><span class="tag">&gt;</span><span>  </span></span></li><li class="alt"><span>  <span class="tag">&lt;</span><span class="tag-name">servlet-class</span><span class="tag">&gt;</span><span>org.jfree.chart.servlet.DisplayChart</span><span class="tag">&lt;/</span><span class="tag-name">servlet-class</span><span class="tag">&gt;</span><span>  </span></span></li><li><span><span class="tag">&lt;/</span><span class="tag-name">servlet</span><span class="tag">&gt;</span><span>  </span></span></li><li class="alt"><span><span class="tag">&lt;</span><span class="tag-name">servlet-mapping</span><span class="tag">&gt;</span><span>  </span></span></li><li><span>    <span class="tag">&lt;</span><span class="tag-name">servlet-name</span><span class="tag">&gt;</span><span>DisplayChart</span><span class="tag">&lt;/</span><span class="tag-name">servlet-name</span><span class="tag">&gt;</span><span>  </span></span></li><li class="alt"><span>    <span class="tag">&lt;</span><span class="tag-name">url-pattern</span><span class="tag">&gt;</span><span>/servlet/DisplayChart</span><span class="tag">&lt;/</span><span class="tag-name">url-pattern</span><span class="tag">&gt;</span><span>  </span></span></li><li><span><span class="tag">&lt;/</span><span class="tag-name">servlet-mapping</span><span class="tag">&gt;</span><span>  </span></span></li></ol></div></div><script><![CDATA[ender_code();]]&gt;</script><p><span style="COLOR: red">5） ApplicationFrame 方式 </span><br /></p><div class="code_title">代码</div><div class="code_div"><div class="dp-highlighter"><ol class="dp-j"><li class="alt"><span><span class="keyword">public</span><span> </span><span class="keyword">class</span><span> PieChartDemo1 </span><span class="keyword">extends</span><span> ApplicationFrame {   </span></span></li><li><span><span class="keyword">public</span><span> PieChartDemo1(String title) {   </span></span></li><li class="alt"><span><span class="keyword">super</span><span>(title);   </span></span></li><li><span>setContentPane(createDemoPanel());   </span></li><li class="alt"><span>}   </span></li><li><span><span class="keyword">private</span><span> </span><span class="keyword">static</span><span> JFreeChart createChart(PieDataset dataset) {   </span></span></li><li class="alt"><span>JFreeChart chart = ChartFactory.createPieChart(   </span></li><li><span>.......  </span></li><li class="alt"><span><span class="keyword">return</span><span> chart;   </span></span></li><li><span>}   </span></li><li class="alt"><span>  </span></li><li><span><span class="keyword">public</span><span> </span><span class="keyword">static</span><span> JPanel createDemoPanel() {   </span></span></li><li class="alt"><span>JFreeChart chart = createChart(createDataset());   </span></li><li><span><span class="keyword">return</span><span> </span><span class="keyword">new</span><span> ChartPanel(chart);   </span></span></li><li class="alt"><span>}   </span></li><li><span>  </span></li><li class="alt"><span><span class="keyword">public</span><span> </span><span class="keyword">static</span><span> </span><span class="keyword">void</span><span> main(String[] args) {   </span></span></li><li><span>PieChartDemo1 demo = <span class="keyword">new</span><span> PieChartDemo1(</span><span class="string">"Pie Chart Demo 1"</span><span>);   </span></span></li><li class="alt"><span>demo.pack();   </span></li><li><span>RefineryUtilities.centerFrameOnScreen(demo);   </span></li><li class="alt"><span>demo.setVisible(<span class="keyword">true</span><span>);   </span></span></li><li><span>}   </span></li><li class="alt"><span>}   </span></li></ol></div></div><script><![CDATA[ender_code();]]&gt;</script><p><b>六. 可参考资料与网址 </b></p><p>官方网站 </p><p><a href="http://www.jfree.org/jfreechart/index.html" target="blank">http://www.jfree.org/jfreechart/index.html </a></p><p>官方论坛 </p><p><a href="http://www.jfree.org/phpBB2/index.php" target="blank">http://www.jfree.org/phpBB2/index.php</a></p><p>API 文档 </p><p><a href="http://www.jfree.org/jfreechart/api/gjdoc/index.html" target="blank">http://www.jfree.org/jfreechart/api/gjdoc/index.html </a></p><p>中文API</p><p><a href="http://blog.sina.com.cn/u/405da78d010000ap" target="blank">http://blog.sina.com.cn/u/405da78d010000ap </a></p></div>
																</td>
														</tr>
												</tbody>
										</table>
										<p style="LINE-HEIGHT: 150%; MARGIN: 5px">
										</p>
								</td>
						</tr>
						<tr>
								<td height="25"> <font color="#000099"><b>原文地址</b></font><a href="http://ltc603.javaeye.com/blog/30207" target="_blank">http://ltc603.javaeye.com/blog/30207</a></td>
						</tr>
				</tbody>
		</table>
<img src ="http://www.blogjava.net/jasmine214--love/aggbug/324623.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jasmine214--love/" target="_blank">幻海蓝梦</a> 2010-06-27 22:26 <a href="http://www.blogjava.net/jasmine214--love/archive/2010/06/27/324623.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Javascript--this用法 </title><link>http://www.blogjava.net/jasmine214--love/archive/2010/06/27/324614.html</link><dc:creator>幻海蓝梦</dc:creator><author>幻海蓝梦</author><pubDate>Sun, 27 Jun 2010 11:50:00 GMT</pubDate><guid>http://www.blogjava.net/jasmine214--love/archive/2010/06/27/324614.html</guid><wfw:comment>http://www.blogjava.net/jasmine214--love/comments/324614.html</wfw:comment><comments>http://www.blogjava.net/jasmine214--love/archive/2010/06/27/324614.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jasmine214--love/comments/commentRss/324614.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jasmine214--love/services/trackbacks/324614.html</trackback:ping><description><![CDATA[
		<p>原文：<a href="http://www.cnblogs.com/sanshi/archive/2009/07/08/1519251.html">http://www.cnblogs.com/sanshi/archive/2009/07/08/1519251.html</a><br />这一章我们将会重点介绍JavaScript中几个重要的属性（this、constructor、prototype）， 这些属性对于我们理解如何实现JavaScript中的类和继承起着至关重要的作用。 </p>
		<h2>this</h2>
		<p>this表示当前对象，如果在全局作用范围内使用this，则指代当前页面对象window； 如果在函数中使用this，则this指代什么是根据运行时此函数在什么对象上被调用。 我们还可以使用apply和call两个全局方法来改变函数中this的具体指向。 </p>
		<p>先看一个在全局作用范围内使用this的例子： </p>
		<pre class="cnblogs_code">        &lt;script type="text/javascript"&gt;
            console.log(this === window);  // true
            console.log(window.alert === this.alert);  // true
            console.log(this.parseInt("021", 10));  // 10
        &lt;/script&gt;
        </pre>
		<p> </p>
		<p>函数中的this是在运行时决定的，而不是函数定义时，如下： </p>
		<pre class="cnblogs_code">        // 定义一个全局函数
        function foo() {
            console.log(this.fruit);
        }
        // 定义一个全局变量，等价于window.fruit = "apple";
        var fruit = "apple";
        // 此时函数foo中this指向window对象
        // 这种调用方式和window.foo();是完全等价的
        foo();  // "apple"

        // 自定义一个对象，并将此对象的属性foo指向全局函数foo
        var pack = {
            fruit: "orange",
            foo: foo
        };
        // 此时函数foo中this指向window.pack对象
        pack.foo(); // "orange"
        </pre>
		<p> </p>
		<p>全局函数apply和call可以用来改变函数中this的指向，如下： </p>
		<pre class="cnblogs_code">        // 定义一个全局函数
        function foo() {
            console.log(this.fruit);
        }
        
        // 定义一个全局变量
        var fruit = "apple";
        // 自定义一个对象
        var pack = {
            fruit: "orange"
        };
        
        // 等价于window.foo();
        foo.apply(window);  // "apple"
        // 此时foo中的this === pack
        foo.apply(pack);    // "orange"
        </pre>注：apply和call两个函数的作用相同，唯一的区别是两个函数的参数定义不同。 
<p> </p><p>因为在JavaScript中函数也是对象，所以我们可以看到如下有趣的例子： </p><pre class="cnblogs_code">        // 定义一个全局函数
        function foo() {
            if (this === window) {
                console.log("this is window.");
            }
        }
        
        // 函数foo也是对象，所以可以定义foo的属性boo为一个函数
        foo.boo = function() {
            if (this === foo) {
                console.log("this is foo.");
            } else if (this === window) {
                console.log("this is window.");
            }
        };
        // 等价于window.foo();
        foo();  // this is window.
        
        // 可以看到函数中this的指向调用函数的对象
        foo.boo();  // this is foo.
        
        // 使用apply改变函数中this的指向
        foo.boo.apply(window);  // this is window.
        </pre><p> </p><h2>prototype</h2><p>我们已经在第一章中使用prototype模拟类和继承的实现。 prototype本质上还是一个JavaScript对象。 并且每个函数都有一个默认的prototype属性。 <br />如果这个函数被用在创建自定义对象的场景中，我们称这个函数为构造函数。 比如下面一个简单的场景： </p><pre class="cnblogs_code">        // 构造函数
        function Person(name) {
            this.name = name;
        }
        // 定义Person的原型，原型中的属性可以被自定义对象引用
        Person.prototype = {
            getName: function() {
                return this.name;
            }
        }
        var zhang = new Person("ZhangSan");
        console.log(zhang.getName());   // "ZhangSan"
        </pre>作为类比，我们考虑下JavaScript中的数据类型 - 字符串（String）、数字（Number）、数组（Array）、对象（Object）、日期（Date）等。 我们有理由相信，在JavaScript内部这些类型都是作为构造函数来实现的，比如： <pre class="cnblogs_code">        // 定义数组的构造函数，作为JavaScript的一种预定义类型
        function Array() {
            // ...
        }
        
        // 初始化数组的实例
        var arr1 = new Array(1, 56, 34, 12);
        // 但是，我们更倾向于如下的语法定义：
        var arr2 = [1, 56, 34, 12];
        </pre>同时对数组操作的很多方法（比如concat、join、push）应该也是在prototype属性中定义的。 <br />实际上，JavaScript所有的固有数据类型都具有只读的prototype属性（这是可以理解的：因为如果修改了这些类型的prototype属性，则哪些预定义的方法就消失了）， 但是我们可以向其中添加自己的扩展方法。 <pre class="cnblogs_code">        // 向JavaScript固有类型Array扩展一个获取最小值的方法
        Array.prototype.min = function() {
            var min = this[0];
            for (var i = 1; i &lt; this.length; i++) {
                if (this[i] &lt; min) {
                    min = this[i];
                }
            }
            return min;
        };
        
        // 在任意Array的实例上调用min方法
        console.log([1, 56, 34, 12].min());  // 1
        </pre><br />注意：这里有一个陷阱，向Array的原型中添加扩展方法后，当使用for-in循环数组时，这个扩展方法也会被循环出来。 <br />下面的代码说明这一点（假设已经向Array的原型中扩展了min方法）： <pre class="cnblogs_code">        var arr = [1, 56, 34, 12];
        var total = 0;
        for (var i in arr) {
            total += parseInt(arr[i], 10);
        }
        console.log(total);   // NaN
        
        </pre>解决方法也很简单： <pre class="cnblogs_code">        var arr = [1, 56, 34, 12];
        var total = 0;
        for (var i in arr) {
            if (arr.hasOwnProperty(i)) {
                total += parseInt(arr[i], 10);
            }
        }
        console.log(total);   // 103
        </pre><p> </p><h2>constructor </h2><p>constructor始终指向创建当前对象的构造函数。比如下面例子： </p><pre class="cnblogs_code">        // 等价于 var foo = new Array(1, 56, 34, 12);
        var arr = [1, 56, 34, 12];
        console.log(arr.constructor === Array); // true
        // 等价于 var foo = new Function();
        var Foo = function() { };
        console.log(Foo.constructor === Function); // true
        // 由构造函数实例化一个obj对象
        var obj = new Foo();
        console.log(obj.constructor === Foo); // true
        
        // 将上面两段代码合起来，就得到下面的结论
        console.log(obj.constructor.constructor === Function); // true
        </pre><p> </p><p>但是当constructor遇到prototype时，有趣的事情就发生了。 <br />我们知道每个函数都有一个默认的属性prototype，而这个prototype的constructor默认指向这个函数。如下例所示： </p><pre class="cnblogs_code">        function Person(name) {
            this.name = name;
        };
        Person.prototype.getName = function() {
            return this.name;
        };
        var p = new Person("ZhangSan");
        
        console.log(p.constructor === Person);  // true
        console.log(Person.prototype.constructor === Person); // true
        // 将上两行代码合并就得到如下结果
        console.log(p.constructor.prototype.constructor === Person); // true
        </pre>当时当我们重新定义函数的prototype时（注意：和上例的区别，这里不是修改而是覆盖）， constructor的行为就有点奇怪了，如下示例： <pre class="cnblogs_code">        function Person(name) {
            this.name = name;
        };
        Person.prototype = {
            getName: function() {
                return this.name;
            }
        };
        var p = new Person("ZhangSan");
        console.log(p.constructor === Person);  // false
        console.log(Person.prototype.constructor === Person); // false
        console.log(p.constructor.prototype.constructor === Person); // false
        </pre>为什么呢？ <br />原来是因为覆盖Person.prototype时，等价于进行如下代码操作： <pre class="cnblogs_code">        Person.prototype = new Object({
            getName: function() {
                return this.name;
            }
        });
        </pre>而constructor始终指向创建自身的构造函数，所以此时Person.prototype.constructor === Object，即是： <pre class="cnblogs_code">        function Person(name) {
            this.name = name;
        };
        Person.prototype = {
            getName: function() {
                return this.name;
            }
        };
        var p = new Person("ZhangSan");
        console.log(p.constructor === Object);  // true
        console.log(Person.prototype.constructor === Object); // true
        console.log(p.constructor.prototype.constructor === Object); // true
        </pre>怎么修正这种问题呢？方法也很简单，重新覆盖Person.prototype.constructor即可： <pre class="cnblogs_code">        function Person(name) {
            this.name = name;
        };
        Person.prototype = new Object({
            getName: function() {
                return this.name;
            }
        });
        Person.prototype.constructor = Person;
        var p = new Person("ZhangSan");
        console.log(p.constructor === Person);  // true
        console.log(Person.prototype.constructor === Person); // true
        console.log(p.constructor.prototype.constructor === Person); // true
        </pre><p> </p><br /><p>下一章我们将会对第一章提到的Person-Employee类和继承的实现进行完善。 </p><img src ="http://www.blogjava.net/jasmine214--love/aggbug/324614.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jasmine214--love/" target="_blank">幻海蓝梦</a> 2010-06-27 19:50 <a href="http://www.blogjava.net/jasmine214--love/archive/2010/06/27/324614.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JavaScript语言精粹 字符串(example:js变量作为URL参数乱码)</title><link>http://www.blogjava.net/jasmine214--love/archive/2010/06/27/324613.html</link><dc:creator>幻海蓝梦</dc:creator><author>幻海蓝梦</author><pubDate>Sun, 27 Jun 2010 11:17:00 GMT</pubDate><guid>http://www.blogjava.net/jasmine214--love/archive/2010/06/27/324613.html</guid><wfw:comment>http://www.blogjava.net/jasmine214--love/comments/324613.html</wfw:comment><comments>http://www.blogjava.net/jasmine214--love/archive/2010/06/27/324613.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jasmine214--love/comments/commentRss/324613.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jasmine214--love/services/trackbacks/324613.html</trackback:ping><description><![CDATA[
		<font size="2">
				<a href="http://pouyang.javaeye.com/blog/575245">http://pouyang.javaeye.com/blog/575245</a> <br /> 字符串可以被包含在单引号或双引号中,它可能包含0个或多个字符\(反斜线符号)是转义字符 <br />  JavaScript在被创建的时候,Unicode是一个16位的字符集,所以JavaScript中的所有字符都是16位的. <br />  JavaScript没有字符类型,要表示一个字符,只须创建仅包含一个字符的字符串即可</font>
		<br />
		<br />
		<div class="dp-highlighter">
				<div class="bar">
						<div class="tools">Js代码 <a title="复制代码" onclick="dp.sh.Toolbar.CopyToClipboard(this);return false;" href="http://pouyang.javaeye.com/blog/575245#"><img alt="复制代码" src="http://pouyang.javaeye.com/images/icon_copy.gif" /></a></div>
				</div>
				<ol class="dp-c">
						<li>
								<span>
										<span>alert(</span>
										<span class="string">
												<font color="#0000ff">"A"</font>
										</span>
										<span> == </span>
										<span class="string">
												<font color="#0000ff">"\u0041"</font>
										</span>
										<span>);</span>
										<span class="comment">
												<font color="#008200">//true </font>
										</span>
										<span>  </span>
								</span>
						</li>
						<li>
								<span>alert(</span>
								<span class="string">
										<font color="#0000ff">"seven"</font>
								</span>
								<span>.length); </span>
								<span class="comment">
										<font color="#008200">// 5 </font>
								</span>
								<span>  </span>
						</li>
						<li>
								<span>
								</span>
								<span class="string">
										<font color="#0000ff">"o"</font>
								</span>
								<span>+</span>
								<span class="string">
										<font color="#0000ff">"y"</font>
								</span>
								<span>+</span>
								<span class="string">
										<font color="#0000ff">"p"</font>
								</span>
								<span> == </span>
								<span class="string">
										<font color="#0000ff">"oyp"</font>
								</span>
								<span>;</span>
								<span class="comment">
										<font color="#008200">//true; </font>
								</span>
								<span>  </span>
						</li>
						<li>
								<span>
								</span>
								<span class="string">
										<font color="#0000ff">"oyp"</font>
								</span>
								<span>.toUpperCase() == </span>
								<span class="string">
										<font color="#0000ff">'CAT'</font>
								</span>
								<span>;  </span>
						</li>
				</ol>
		</div>
		<pre style="DISPLAY: none" class="js" name="code">alert("A" == "\u0041");//true
alert("seven".length); // 5
"o"+"y"+"p" == "oyp";//true;
"oyp".toUpperCase() == 'CAT';</pre>
		<br />
		<span style="FONT-SIZE: small">
				<br />
				<font size="2">字符串是不可变的,一旦字符串被创建,就永远无法改变它,跟java一样,所以语言都是相通的</font>
		</span>
		<br />
		<br />
		<span style="FONT-SIZE: small">
				<br />
				<font size="2">现在流行的异步提交,丰富多彩的互联网,现在不仅程序员享受着这种异步交互带来的成就感,客户也很期待也很享受Ajax的强大的交互功能,异步提交难免会出现js变量(中文)作为URL参数,js变量作为URL参数传到后台会出现中文乱码情况,(Jquery form动态提交不会出现乱码问题),异步请求过去会得到,以下是解决方法 <br /></font>
		</span>
		<br />
		<br />
		<div class="dp-highlighter">
				<div class="bar">
						<div class="tools">Js代码 <a title="复制代码" onclick="dp.sh.Toolbar.CopyToClipboard(this);return false;" href="http://pouyang.javaeye.com/blog/575245#"><img alt="复制代码" src="http://pouyang.javaeye.com/images/icon_copy.gif" /></a></div>
				</div>
				<ol class="dp-c">
						<li>
								<span>
										<span class="comment">
												<font color="#008200">//前台 </font>
										</span>
										<span>  </span>
								</span>
						</li>
						<li>
								<span>
								</span>
								<span class="keyword">
										<strong>
												<font color="#7f0055">var</font>
										</strong>
								</span>
								<span> accountCN =</span>
								<span class="string">
										<font color="#0000ff">"中文"</font>
								</span>
								<span>;   </span>
						</li>
						<li>
								<span>
								</span>
								<span class="keyword">
										<strong>
												<font color="#7f0055">var</font>
										</strong>
								</span>
								<span> account = encodeURI(encodeURI(accountCN));</span>
								<span class="comment">
										<font color="#008200">// 关键所在 </font>
								</span>
								<span>  </span>
						</li>
						<li>
								<span>
								</span>
								<span class="keyword">
										<strong>
												<font color="#7f0055">var</font>
										</strong>
								</span>
								<span> updateURL = </span>
								<span class="string">
										<font color="#0000ff">"http://localhost:7001/ouyangping/demo.do?account="</font>
								</span>
								<span>account   </span>
						</li>
						<li>
								<span>
								</span>
								<span class="keyword">
										<strong>
												<font color="#7f0055">function</font>
										</strong>
								</span>
								<span> updateRow(updateURL) {   </span>
						</li>
						<li>
								<span>    $.ajax( {   </span>
						</li>
						<li>
								<span>        type : </span>
								<span class="string">
										<font color="#0000ff">"POST"</font>
								</span>
								<span>,   </span>
						</li>
						<li>
								<span>        url :updateURL,   </span>
						</li>
						<li>
								<span>        cache : </span>
								<span class="keyword">
										<strong>
												<font color="#7f0055">false</font>
										</strong>
								</span>
								<span>,   </span>
						</li>
						<li>
								<span>        dataType: </span>
								<span class="string">
										<font color="#0000ff">"json"</font>
								</span>
								<span>,   </span>
						</li>
						<li>
								<span>        success : </span>
								<span class="keyword">
										<strong>
												<font color="#7f0055">function</font>
										</strong>
								</span>
								<span> updateSuceess(data) {   </span>
						</li>
						<li>
								<span>           </span>
						</li>
						<li>
								<span>               </span>
						</li>
						<li>
								<span>            </span>
								<span class="keyword">
										<strong>
												<font color="#7f0055">if</font>
										</strong>
								</span>
								<span> (data.state == </span>
								<span class="string">
										<font color="#0000ff">'1'</font>
								</span>
								<span>) {   </span>
						</li>
						<li>
								<span>                alert(</span>
								<span class="string">
										<font color="#0000ff">'修改成功！'</font>
								</span>
								<span>);   </span>
						</li>
						<li>
								<span>            } </span>
								<span class="keyword">
										<strong>
												<font color="#7f0055">else</font>
										</strong>
								</span>
								<span> {       </span>
						</li>
						<li>
								<span>                alert(</span>
								<span class="string">
										<font color="#0000ff">'修改失败！'</font>
								</span>
								<span>);   </span>
						</li>
						<li>
								<span>            }   </span>
						</li>
						<li>
								<span>        }   </span>
						</li>
						<li>
								<span>    });   </span>
						</li>
						<li>
								<span>}  </span>
						</li>
				</ol>
		</div>
		<pre style="DISPLAY: none" class="js" name="code">//前台
var accountCN ="中文";
var account = encodeURI(encodeURI(accountCN));// 关键所在
var updateURL = "http://localhost:7001/ouyangping/demo.do?account="account
function updateRow(updateURL) {
	$.ajax( {
		type : "POST",
		url :updateURL,
		cache : false,
		dataType: "json",
		success : function updateSuceess(data) {
		
			
			if (data.state == '1') {
				alert('修改成功！');
			} else {	
				alert('修改失败！');
			}
		}
	});
}</pre>
		<br />
		<br />//后台 控制层 <br /><br /><div class="dp-highlighter"><div class="bar"><div class="tools">Java代码 <a title="复制代码" onclick="dp.sh.Toolbar.CopyToClipboard(this);return false;" href="http://pouyang.javaeye.com/blog/575245#"><img alt="复制代码" src="http://pouyang.javaeye.com/images/icon_copy.gif" /></a></div></div><ol class="dp-j"><li><span><span>String  account = java.net.URLDecoder.decode(iRequest.getParameter(</span><span class="string"><font color="#0000ff">"account"</font></span><span>),</span><span class="string"><font color="#0000ff">"utf-8"</font></span><span>);</span><span class="comment"><font color="#008200">//关键所在 </font></span><span>  </span></span></li><li><span>JSONObject json = </span><span class="keyword"><strong><font color="#7f0055">new</font></strong></span><span> JSONObject();   </span></li><li><span>json.clear();   </span></li><li><span>iResponse.setHeader(</span><span class="string"><font color="#0000ff">"X-JSON"</font></span><span>, json.toString());   </span></li><li><span>iResponse.setCharacterEncoding(</span><span class="string"><font color="#0000ff">"UTF-8"</font></span><span>);   </span></li><li><span>iResponse.setHeader(</span><span class="string"><font color="#0000ff">"Cache-Control"</font></span><span>, </span><span class="string"><font color="#0000ff">"no-cache,must-revalidate"</font></span><span>);</span><span class="comment"><font color="#008200">// 清楚缓存 </font></span><span>  </span></li><li><span>iResponse.setHeader(</span><span class="string"><font color="#0000ff">"Pragma"</font></span><span>, </span><span class="string"><font color="#0000ff">"no-cache"</font></span><span>); </span><span class="comment"><font color="#008200">// HTTP 1.0 </font></span><span>  </span></li><li><span>iResponse.setDateHeader(</span><span class="string"><font color="#0000ff">"Expires"</font></span><span>, </span><span class="number"><font color="#c00000">0</font></span><span>); </span><span class="comment"><font color="#008200">// prevents caching at the </font></span><span>  </span></li><li><span></span><span class="comment"><font color="#008200">//更新是否成功 </font></span><span>  </span></li><li><span></span><span class="comment"><font color="#008200">//int state = userManagerService.modUserByYui(userManagerDTO); </font></span><span>  </span></li><li><span></span><span class="keyword"><strong><font color="#7f0055">int</font></strong></span><span> state = userManagerService.modUserByYui(userManagerDTOJS);   </span></li><li><span>json.put(</span><span class="string"><font color="#0000ff">"state"</font></span><span>,state);   </span></li><li><span></span><span class="keyword"><strong><font color="#7f0055">try</font></strong></span><span> {   </span></li><li><span>    iResponse.getWriter().print(json.toString());   </span></li><li><span>} </span><span class="keyword"><strong><font color="#7f0055">catch</font></strong></span><span> (IOException e) {   </span></li><li><span>    e.printStackTrace();   </span></li><li><span>}   </span></li><li><span></span><span class="keyword"><strong><font color="#7f0055">return</font></strong></span><span> </span><span class="keyword"><strong><font color="#7f0055">null</font></strong></span><span>;  </span></li></ol></div><pre style="DISPLAY: none" class="java" name="code">String	account = java.net.URLDecoder.decode(iRequest.getParameter("account"),"utf-8");//关键所在
JSONObject json = new JSONObject();
json.clear();
iResponse.setHeader("X-JSON", json.toString());
iResponse.setCharacterEncoding("UTF-8");
iResponse.setHeader("Cache-Control", "no-cache,must-revalidate");// 清楚缓存
iResponse.setHeader("Pragma", "no-cache"); // HTTP 1.0
iResponse.setDateHeader("Expires", 0); // prevents caching at the
//更新是否成功
//int state = userManagerService.modUserByYui(userManagerDTO);
int state = userManagerService.modUserByYui(userManagerDTOJS);
json.put("state",state);
try {
	iResponse.getWriter().print(json.toString());
} catch (IOException e) {
	e.printStackTrace();
}
return null;</pre><br />------------------------ <br /><span style="FONT-SIZE: small"><br /><font size="2">  有了两个关键所在,就可以处理中文乱码问题了.但是很多地方都要处理,所以也要重构下 <br />  这也带来了问题,如果URL后面的参数过多那么会导致URL非常长,曾经考虑过把所有参数封装成一个变量传递过去,这种方法可行是可行,但是解决不了中文乱码的问题,以下附上这种方法. <br /></font></span><br /><br /><br /><div class="dp-highlighter"><div class="bar"><div class="tools">Js代码 <a title="复制代码" onclick="dp.sh.Toolbar.CopyToClipboard(this);return false;" href="http://pouyang.javaeye.com/blog/575245#"><img alt="复制代码" src="http://pouyang.javaeye.com/images/icon_copy.gif" /></a></div></div><ol class="dp-c"><li><span><span class="comment"><font color="#008200">//这种把对象o传递过去，o里的内容是json格式。 </font></span><span>  </span></span></li><li><span>Object o = </span><span class="keyword"><strong><font color="#7f0055">new</font></strong></span><span> Object()   </span></li><li><span>o.user = document.getElementById(</span><span class="string"><font color="#0000ff">"user"</font></span><span>);   </span></li><li><span>o.password = document.getElementById(</span><span class="string"><font color="#0000ff">"password"</font></span><span>);  </span></li></ol></div><pre style="DISPLAY: none" class="js" name="code">//这种把对象o传递过去，o里的内容是json格式。
Object o = new Object()
o.user = document.getElementById("user");
o.password = document.getElementById("password");</pre><br /><br /><br /><br /><div class="dp-highlighter"><div class="bar"><div class="tools">Js代码 <a title="复制代码" onclick="dp.sh.Toolbar.CopyToClipboard(this);return false;" href="http://pouyang.javaeye.com/blog/575245#"><img alt="复制代码" src="http://pouyang.javaeye.com/images/icon_copy.gif" /></a></div></div><ol class="dp-c"><li><span><span class="comment"><font color="#008200">//以Json格式获取页面上的查询条件，且这些参数的name要一致 </font></span><span>  </span></span></li><li><span></span><span class="keyword"><strong><font color="#7f0055">function</font></strong></span><span> getJsonParameters(page) {   </span></li><li><span>    $(</span><span class="string"><font color="#0000ff">'input:text'</font></span><span>).each(</span><span class="keyword"><strong><font color="#7f0055">function</font></strong></span><span>(){    </span></li><li><span>        </span><span class="keyword"><strong><font color="#7f0055">this</font></strong></span><span>.value = jQuery.trim(</span><span class="keyword"><strong><font color="#7f0055">this</font></strong></span><span>.value);   </span></li><li><span>        }   </span></li><li><span>    );    </span></li><li><span>    </span><span class="keyword"><strong><font color="#7f0055">var</font></strong></span><span> parameters = document.getElementsByName(</span><span class="string"><font color="#0000ff">'form1'</font></span><span>);   </span></li><li><span>    </span><span class="keyword"><strong><font color="#7f0055">var</font></strong></span><span> parameter = </span><span class="string"><font color="#0000ff">"{"</font></span><span>;   </span></li><li><span>    </span><span class="keyword"><strong><font color="#7f0055">for</font></strong></span><span> (</span><span class="keyword"><strong><font color="#7f0055">var</font></strong></span><span> i = 0 ; i &lt; parameters.length; i++ ) {   </span></li><li><span>        </span><span class="keyword"><strong><font color="#7f0055">if</font></strong></span><span> (parameters[i].value != </span><span class="keyword"><strong><font color="#7f0055">null</font></strong></span><span> &amp;&amp; parameters[i].value != </span><span class="string"><font color="#0000ff">''</font></span><span>) {   </span></li><li><span>            parameter += parameters[i].id +</span><span class="string"><font color="#0000ff">":'"</font></span><span>+parameters[i].value+</span><span class="string"><font color="#0000ff">"',"</font></span><span>;   </span></li><li><span>        }   </span></li><li><span>    }   </span></li><li><span>    </span><span class="keyword"><strong><font color="#7f0055">if</font></strong></span><span> (</span><span class="string"><font color="#0000ff">''</font></span><span>+page != </span><span class="string"><font color="#0000ff">'undefined'</font></span><span>){   </span></li><li><span>        parameter +=</span><span class="string"><font color="#0000ff">'page'</font></span><span>+</span><span class="string"><font color="#0000ff">":'"</font></span><span>+page+</span><span class="string"><font color="#0000ff">"',"</font></span><span>;   </span></li><li><span>    }   </span></li><li><span>    parameter += </span><span class="string"><font color="#0000ff">"}"</font></span><span>;   </span></li><li><span>    </span><span class="keyword"><strong><font color="#7f0055">return</font></strong></span><span> parameter;   </span></li><li><span>}  </span></li></ol></div><pre style="DISPLAY: none" class="js" name="code">//以Json格式获取页面上的查询条件，且这些参数的name要一致
function getJsonParameters(page) {
	$('input:text').each(function(){ 
    	this.value = jQuery.trim(this.value);
    	}
    ); 
	var parameters = document.getElementsByName('form1');
	var parameter = "{";
	for (var i = 0 ; i &lt; parameters.length; i++ ) {
		if (parameters[i].value != null &amp;&amp; parameters[i].value != '') {
			parameter += parameters[i].id +":'"+parameters[i].value+"',";
		}
	}
	if (''+page != 'undefined'){
		parameter +='page'+":'"+page+"',";
	}
	parameter += "}";
	return parameter;
}</pre><br />o 或者 parameter 传递过去,这种格式的在后台这样处理: <br /><br /><br /><div class="dp-highlighter"><div class="bar"><div class="tools">Java代码 <a title="复制代码" onclick="dp.sh.Toolbar.CopyToClipboard(this);return false;" href="http://pouyang.javaeye.com/blog/575245#"><img alt="复制代码" src="http://pouyang.javaeye.com/images/icon_copy.gif" /></a></div></div><ol class="dp-j"><li><span><span>       </span></span></li><li><span></span><span class="comment"><font color="#008200">// 页面参数转化为Bean </font></span><span>  </span></li><li><span>String parameter = iRequest.getParameter(</span><span class="string"><font color="#0000ff">"parameter"</font></span><span>);   </span></li><li><span>            JSONObject jsonObject = JSONObject.fromObject(parameter);   </span></li><li><span>            UserManagerDTO user = (UserManagerDTO) JSONObject.toBean(   </span></li><li><span>                    jsonObject, UserManagerDTO.</span><span class="keyword"><strong><font color="#7f0055">class</font></strong></span><span>);  </span></li></ol></div><img src ="http://www.blogjava.net/jasmine214--love/aggbug/324613.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jasmine214--love/" target="_blank">幻海蓝梦</a> 2010-06-27 19:17 <a href="http://www.blogjava.net/jasmine214--love/archive/2010/06/27/324613.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JavaScript语言精粹 标示符( example:变量未定义判断)---没看明白</title><link>http://www.blogjava.net/jasmine214--love/archive/2010/06/27/324612.html</link><dc:creator>幻海蓝梦</dc:creator><author>幻海蓝梦</author><pubDate>Sun, 27 Jun 2010 11:14:00 GMT</pubDate><guid>http://www.blogjava.net/jasmine214--love/archive/2010/06/27/324612.html</guid><wfw:comment>http://www.blogjava.net/jasmine214--love/comments/324612.html</wfw:comment><comments>http://www.blogjava.net/jasmine214--love/archive/2010/06/27/324612.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jasmine214--love/comments/commentRss/324612.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jasmine214--love/services/trackbacks/324612.html</trackback:ping><description><![CDATA[
		<span style="FONT-SIZE: small">
				<font size="2">
						<a href="http://pouyang.javaeye.com/blog/575231">http://pouyang.javaeye.com/blog/575231</a>
						<br />JavaScript 是一种区分大小写的语言,不能使用保留字来表示标示符，所有语言都这样JavaScript保留字：undefined,NaN和Infinity等</font>
		</span>
		<br />
		<br />
		<span style="FONT-SIZE: small">
				<br />
				<font size="2">变量未定义判断语句 <br />1.1变量没有定义直接拿来用会造成未定义 <br />1.2对象没有的属性直接拿来用会造成未定义</font>
		</span>
		<br />
		<br />
		<div class="dp-highlighter">
				<div class="bar">
						<div class="tools">Js代码 <a title="复制代码" onclick="dp.sh.Toolbar.CopyToClipboard(this);return false;" href="http://pouyang.javaeye.com/blog/575231#"><img alt="复制代码" src="http://pouyang.javaeye.com/images/icon_copy.gif" /></a></div>
				</div>
				<ol class="dp-c">
						<li>
								<span>
										<span class="comment">
												<font color="#008200">//先定义一个对象 </font>
										</span>
										<span>  </span>
								</span>
						</li>
						<li>
								<span>
								</span>
								<span class="keyword">
										<strong>
												<font color="#7f0055">var</font>
										</strong>
								</span>
								<span> oy = {};或者 </span>
								<span class="keyword">
										<strong>
												<font color="#7f0055">var</font>
										</strong>
								</span>
								<span> oy = </span>
								<span class="string">
										<font color="#0000ff">''</font>
								</span>
								<span>;   </span>
						</li>
						<li>
								<span>
								</span>
								<span class="comment">
										<font color="#008200">//自己上网查的 </font>
								</span>
								<span>  </span>
						</li>
						<li>
								<span>alert(</span>
								<span class="string">
										<font color="#0000ff">''</font>
								</span>
								<span>+temp == </span>
								<span class="string">
										<font color="#0000ff">'undefined'</font>
								</span>
								<span>); </span>
								<span class="comment">
										<font color="#008200">//错误，浏览器阻止往下运行 </font>
								</span>
								<span>  </span>
						</li>
						<li>
								<span>alert(</span>
								<span class="string">
										<font color="#0000ff">''</font>
								</span>
								<span>+oy.p == </span>
								<span class="string">
										<font color="#0000ff">'undefined'</font>
								</span>
								<span>); </span>
								<span class="comment">
										<font color="#008200">//显示true对话框可以往下执行 </font>
								</span>
								<span>  </span>
						</li>
						<li>
								<span>  </span>
						</li>
						<li>
								<span>
								</span>
								<span class="comment">
										<font color="#008200">//老大告诉我的 </font>
								</span>
								<span>  </span>
						</li>
						<li>
								<span>alert(temp == undefined); </span>
								<span class="comment">
										<font color="#008200">//错误，浏览器阻止往下运行 </font>
								</span>
								<span>  </span>
						</li>
						<li>
								<span>alert(oy.p == undefined); </span>
								<span class="comment">
										<font color="#008200">//显示true对话框可以往下执行 </font>
								</span>
								<span>  </span>
						</li>
						<li>
								<span>  </span>
						</li>
						<li>
								<span>
								</span>
								<span class="comment">
										<font color="#008200">//看yahoo table源码发现的 </font>
								</span>
								<span>  </span>
						</li>
						<li>
								<span>
								</span>
								<span class="keyword">
										<strong>
												<font color="#7f0055">if</font>
										</strong>
								</span>
								<span> (</span>
								<span class="keyword">
										<strong>
												<font color="#7f0055">typeof</font>
										</strong>
								</span>
								<span> YAHOO == </span>
								<span class="string">
										<font color="#0000ff">"undefined"</font>
								</span>
								<span> || !YAHOO) {   </span>
						</li>
						<li>
								<span>    </span>
								<span class="keyword">
										<strong>
												<font color="#7f0055">var</font>
										</strong>
								</span>
								<span> YAHOO = {};   </span>
						</li>
						<li>
								<span>}   </span>
						</li>
						<li>
								<span>alert(</span>
								<span class="keyword">
										<strong>
												<font color="#7f0055">typeof</font>
										</strong>
								</span>
								<span> temp == </span>
								<span class="string">
										<font color="#0000ff">'undefined'</font>
								</span>
								<span>);</span>
								<span class="comment">
										<font color="#008200">//true </font>
								</span>
								<span>  </span>
						</li>
						<li>
								<span>YAHOO =</span>
								<span class="string">
										<font color="#0000ff">''</font>
								</span>
								<span>  </span>
						</li>
						<li>
								<span>alert(!YAHOO);</span>
								<span class="comment">
										<font color="#008200">//true </font>
								</span>
								<span>  </span>
						</li>
						<li>
								<span>看看，还是人家yahoo 牛逼！！！  </span>
						</li>
				</ol>
		</div>
		<pre style="DISPLAY: none" class="js" name="code">//先定义一个对象
var oy = {};或者 var oy = '';
//自己上网查的
alert(''+temp == 'undefined'); //错误，浏览器阻止往下运行
alert(''+oy.p == 'undefined'); //显示true对话框可以往下执行

//老大告诉我的
alert(temp == undefined); //错误，浏览器阻止往下运行
alert(oy.p == undefined); //显示true对话框可以往下执行

//看yahoo table源码发现的
if (typeof YAHOO == "undefined" || !YAHOO) {
	var YAHOO = {};
}
alert(typeof temp == 'undefined');//true
YAHOO =''
alert(!YAHOO);//true
看看，还是人家yahoo 牛逼！！！</pre>
		<br />
		<br />
		<div class="dp-highlighter">
				<div class="bar">
						<div class="tools">Js代码 <a title="复制代码" onclick="dp.sh.Toolbar.CopyToClipboard(this);return false;" href="http://pouyang.javaeye.com/blog/575231#"><img alt="复制代码" src="http://pouyang.javaeye.com/images/icon_copy.gif" /></a></div>
				</div>
				<ol class="dp-c">
						<li>
								<span>
										<span>1、</span>
										<span class="keyword">
												<strong>
														<font color="#7f0055">typeof</font>
												</strong>
										</span>
										<span>(NaN) number、</span>
										<span class="keyword">
												<strong>
														<font color="#7f0055">typeof</font>
												</strong>
										</span>
										<span>(Infinity) number、</span>
										<span class="keyword">
												<strong>
														<font color="#7f0055">typeof</font>
												</strong>
										</span>
										<span>(</span>
										<span class="keyword">
												<strong>
														<font color="#7f0055">null</font>
												</strong>
										</span>
										<span>) object、</span>
										<span class="keyword">
												<strong>
														<font color="#7f0055">typeof</font>
												</strong>
										</span>
										<span>(undefined) undefined   </span>
								</span>
						</li>
						<li>
								<span>2、NaN == NaN </span>
								<span class="keyword">
										<strong>
												<font color="#7f0055">false</font>
										</strong>
								</span>
								<span>  </span>
						</li>
						<li>
								<span>3、NaN != NaN </span>
								<span class="keyword">
										<strong>
												<font color="#7f0055">true</font>
										</strong>
								</span>
								<span>  </span>
						</li>
						<li>
								<span>4、NaN &gt;= NaN </span>
								<span class="keyword">
										<strong>
												<font color="#7f0055">false</font>
										</strong>
								</span>
								<span>  </span>
						</li>
						<li>
								<span>5、</span>
								<span class="keyword">
										<strong>
												<font color="#7f0055">null</font>
										</strong>
								</span>
								<span> == undefined </span>
								<span class="keyword">
										<strong>
												<font color="#7f0055">true</font>
										</strong>
								</span>
								<span>  </span>
						</li>
						<li>
								<span>6、</span>
								<span class="keyword">
										<strong>
												<font color="#7f0055">null</font>
										</strong>
								</span>
								<span> &gt;= undefined </span>
								<span class="keyword">
										<strong>
												<font color="#7f0055">false</font>
										</strong>
								</span>
								<span>  </span>
						</li>
						<li>
								<span>7、</span>
								<span class="keyword">
										<strong>
												<font color="#7f0055">null</font>
										</strong>
								</span>
								<span> &lt;= undefined </span>
								<span class="keyword">
										<strong>
												<font color="#7f0055">false</font>
										</strong>
								</span>
								<span>  </span>
						</li>
						<li>
								<span>8、parseInt(</span>
								<span class="string">
										<font color="#0000ff">"123abc"</font>
								</span>
								<span>) 123   </span>
						</li>
						<li>
								<span>9、</span>
								<span class="string">
										<font color="#0000ff">"123abc"</font>
								</span>
								<span> - 0 NaN   </span>
						</li>
						<li>
								<span>10、Infinity &gt; 10 </span>
								<span class="keyword">
										<strong>
												<font color="#7f0055">true</font>
										</strong>
								</span>
								<span>  </span>
						</li>
						<li>
								<span>11、Infinity &gt; </span>
								<span class="string">
										<font color="#0000ff">"abc"</font>
								</span>
								<span> </span>
								<span class="keyword">
										<strong>
												<font color="#7f0055">false</font>
										</strong>
								</span>
								<span>  </span>
						</li>
						<li>
								<span>12、Infinity == NaN </span>
								<span class="keyword">
										<strong>
												<font color="#7f0055">false</font>
										</strong>
								</span>
								<span>  </span>
						</li>
						<li>
								<span>13、</span>
								<span class="keyword">
										<strong>
												<font color="#7f0055">true</font>
										</strong>
								</span>
								<span> == 1 ture   </span>
						</li>
						<li>
								<span>14、</span>
								<span class="keyword">
										<strong>
												<font color="#7f0055">new</font>
										</strong>
								</span>
								<span> String(</span>
								<span class="string">
										<font color="#0000ff">"abc"</font>
								</span>
								<span>) == </span>
								<span class="string">
										<font color="#0000ff">"abc"</font>
								</span>
								<span> </span>
								<span class="keyword">
										<strong>
												<font color="#7f0055">true</font>
										</strong>
								</span>
								<span>  </span>
						</li>
						<li>
								<span>15、</span>
								<span class="keyword">
										<strong>
												<font color="#7f0055">new</font>
										</strong>
								</span>
								<span> String(</span>
								<span class="string">
										<font color="#0000ff">"abc"</font>
								</span>
								<span>) === </span>
								<span class="string">
										<font color="#0000ff">"abc"</font>
								</span>
								<span> </span>
								<span class="keyword">
										<strong>
												<font color="#7f0055">false</font>
										</strong>
								</span>
								<span> 完全相同  </span>
						</li>
				</ol>
		</div>
<img src ="http://www.blogjava.net/jasmine214--love/aggbug/324612.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jasmine214--love/" target="_blank">幻海蓝梦</a> 2010-06-27 19:14 <a href="http://www.blogjava.net/jasmine214--love/archive/2010/06/27/324612.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>