﻿<?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-生活源于奋斗不息-随笔分类-Javascript</title><link>http://www.blogjava.net/site120/category/18143.html</link><description>凝聚，积累，量变……  &lt;b&gt;心领神会，勤加练习！&lt;/b&gt; 大处着眼，小处着手。</description><language>zh-cn</language><lastBuildDate>Tue, 19 Feb 2008 20:02:58 GMT</lastBuildDate><pubDate>Tue, 19 Feb 2008 20:02:58 GMT</pubDate><ttl>60</ttl><item><title>IE中Js执行的一个Bugs - document.getElementsByName()</title><link>http://www.blogjava.net/site120/archive/2008/02/19/180705.html</link><dc:creator>姜利阳</dc:creator><author>姜利阳</author><pubDate>Tue, 19 Feb 2008 08:31:00 GMT</pubDate><guid>http://www.blogjava.net/site120/archive/2008/02/19/180705.html</guid><wfw:comment>http://www.blogjava.net/site120/comments/180705.html</wfw:comment><comments>http://www.blogjava.net/site120/archive/2008/02/19/180705.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/site120/comments/commentRss/180705.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/site120/services/trackbacks/180705.html</trackback:ping><description><![CDATA[<p>当执行如下代码时：点击输入框时 IE弹出0， Firefox弹出1，Opera弹出1<br />
显然IE在执行document.body.appendChild()语句后并没有刷新name为("abc_name")的元素列表<br />
</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #0000ff">&lt;</span><span style="color: #800000">html</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">head</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">script</span><span style="color: #0000ff">&gt;</span><span style="color: #000000; background-color: #f5f5f5"><br />
&nbsp;&nbsp;&nbsp;&nbsp;window.onload&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">function</span><span style="color: #000000; background-color: #f5f5f5">()<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">var</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;input&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;document.createElement(</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">input</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;input.name</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">abc_name</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;input.onclick&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">function</span><span style="color: #000000; background-color: #f5f5f5">()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert(document.getElementsByName(</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">abc_name</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">).length);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.body.appendChild(input);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">script</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">head</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<br />
</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">body</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
fasd<br />
</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">body</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">html</span><span style="color: #0000ff">&gt;</span></div>
<img src ="http://www.blogjava.net/site120/aggbug/180705.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/site120/" target="_blank">姜利阳</a> 2008-02-19 16:31 <a href="http://www.blogjava.net/site120/archive/2008/02/19/180705.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ajax 前进后退及书签功能的 第三方框架RSH</title><link>http://www.blogjava.net/site120/archive/2007/11/22/162253.html</link><dc:creator>姜利阳</dc:creator><author>姜利阳</author><pubDate>Wed, 21 Nov 2007 23:54:00 GMT</pubDate><guid>http://www.blogjava.net/site120/archive/2007/11/22/162253.html</guid><wfw:comment>http://www.blogjava.net/site120/comments/162253.html</wfw:comment><comments>http://www.blogjava.net/site120/archive/2007/11/22/162253.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/site120/comments/commentRss/162253.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/site120/services/trackbacks/162253.html</trackback:ping><description><![CDATA[RSH (Really Simple History) <br />
<br />
能够解决Ajax中不能前进，后退及没有书签的困扰<br />
<br />
利用隐藏的Iframe， 并结合锚点来模拟前进后退操作<br />
<br />
<br />
下载地址：http://code.google.com/p/reallysimplehistory/<br />
<br />
 <img src ="http://www.blogjava.net/site120/aggbug/162253.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/site120/" target="_blank">姜利阳</a> 2007-11-22 07:54 <a href="http://www.blogjava.net/site120/archive/2007/11/22/162253.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>常用Js加密，编码算法 整理</title><link>http://www.blogjava.net/site120/archive/2007/11/10/159499.html</link><dc:creator>姜利阳</dc:creator><author>姜利阳</author><pubDate>Fri, 09 Nov 2007 22:57:00 GMT</pubDate><guid>http://www.blogjava.net/site120/archive/2007/11/10/159499.html</guid><wfw:comment>http://www.blogjava.net/site120/comments/159499.html</wfw:comment><comments>http://www.blogjava.net/site120/archive/2007/11/10/159499.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/site120/comments/commentRss/159499.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/site120/services/trackbacks/159499.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 一：UTF8编码函数function&nbsp;URLEncode(Str){&nbsp;&nbsp;if(Str==null||Str=="")&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;"";&nbsp;&nbsp;var&nbsp;newStr="";&nbsp;&nbsp;function&nbsp;toCase(sStr){&nbsp;...&nbsp;&nbsp;<a href='http://www.blogjava.net/site120/archive/2007/11/10/159499.html'>阅读全文</a><img src ="http://www.blogjava.net/site120/aggbug/159499.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/site120/" target="_blank">姜利阳</a> 2007-11-10 06:57 <a href="http://www.blogjava.net/site120/archive/2007/11/10/159499.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>IE下的HTML，JS，CSS 开发调试工具(IE Developer Toolbar)</title><link>http://www.blogjava.net/site120/archive/2007/11/08/159175.html</link><dc:creator>姜利阳</dc:creator><author>姜利阳</author><pubDate>Thu, 08 Nov 2007 13:43:00 GMT</pubDate><guid>http://www.blogjava.net/site120/archive/2007/11/08/159175.html</guid><wfw:comment>http://www.blogjava.net/site120/comments/159175.html</wfw:comment><comments>http://www.blogjava.net/site120/archive/2007/11/08/159175.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/site120/comments/commentRss/159175.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/site120/services/trackbacks/159175.html</trackback:ping><description><![CDATA[<p>IE Developer Toolbar<br />
<br />
截图：<br />
<br />
<img alt="" src="http://www.blogjava.net/images/blogjava_net/site120/IE2.JPG" border="0" /><br />
<br />
微软开发的， 下载地址：<a href="http://www.microsoft.com/downloads/details.aspx?familyid=e59c3964-672d-4511-bb3e-2d5e1db91038" target="_blank">http://www.microsoft.com/downloads/details.aspx?familyid=e59c3964-672d-4511-bb3e-2d5e1db91038</a> </p>
不过相对与Firefox下的<a href="http://www.blogjava.net/site120/archive/2007/02/02/97694.html" target="_blank">FireBug</a>， 功能很少 
<img src ="http://www.blogjava.net/site120/aggbug/159175.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/site120/" target="_blank">姜利阳</a> 2007-11-08 21:43 <a href="http://www.blogjava.net/site120/archive/2007/11/08/159175.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>极强的页面调试工具 - FireBug</title><link>http://www.blogjava.net/site120/archive/2007/02/02/97694.html</link><dc:creator>姜利阳</dc:creator><author>姜利阳</author><pubDate>Fri, 02 Feb 2007 15:01:00 GMT</pubDate><guid>http://www.blogjava.net/site120/archive/2007/02/02/97694.html</guid><wfw:comment>http://www.blogjava.net/site120/comments/97694.html</wfw:comment><comments>http://www.blogjava.net/site120/archive/2007/02/02/97694.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/site120/comments/commentRss/97694.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/site120/services/trackbacks/97694.html</trackback:ping><description><![CDATA[<strong>FireFox</strong>中的工具<br><br>Firefox最新版下载地址: <a href="http://www.mozilla.org.cn/"><u><font color=#810081>http://www.mozilla.org.cn/</font></u></a><br><br>Firebug最新版下载地址: <a href="https://addons.mozilla.org/firefox/1843/" target=_blank>https://addons.mozilla.org/firefox/1843/</a><br><br>
<img src ="http://www.blogjava.net/site120/aggbug/97694.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/site120/" target="_blank">姜利阳</a> 2007-02-02 23:01 <a href="http://www.blogjava.net/site120/archive/2007/02/02/97694.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Javascript中的事件监听与call方法</title><link>http://www.blogjava.net/site120/archive/2007/02/01/97190.html</link><dc:creator>姜利阳</dc:creator><author>姜利阳</author><pubDate>Thu, 01 Feb 2007 04:55:00 GMT</pubDate><guid>http://www.blogjava.net/site120/archive/2007/02/01/97190.html</guid><wfw:comment>http://www.blogjava.net/site120/comments/97190.html</wfw:comment><comments>http://www.blogjava.net/site120/archive/2007/02/01/97190.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/site120/comments/commentRss/97190.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/site120/services/trackbacks/97190.html</trackback:ping><description><![CDATA[
		<p>当我们对某一个元素绑定监听方法时,想传一个callback函数,即监听后的处理函数<br />我们可以用传一个函数的句柄(引用),然后调用这个句柄(引用)的call方法.即可达到目的<br /><br /></p>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<span style="COLOR: #008080"> 1</span>
				<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				<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"> 2</span>
				<span style="COLOR: #000000">
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</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"> 3</span>
				<span style="COLOR: #000000">
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    </span>
				<span style="COLOR: #0000ff">var</span>
				<span style="COLOR: #000000"> callback </span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #0000ff">function</span>
				<span style="COLOR: #000000">(name , invoteTime)<br /></span>
				<span style="COLOR: #008080"> 4</span>
				<span style="COLOR: #000000">
						<img id="Codehighlighter1_61_104_Open_Image" onclick="this.style.display='none'; Codehighlighter1_61_104_Open_Text.style.display='none'; Codehighlighter1_61_104_Closed_Image.style.display='inline'; Codehighlighter1_61_104_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" />
						<img id="Codehighlighter1_61_104_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_61_104_Closed_Text.style.display='none'; Codehighlighter1_61_104_Open_Image.style.display='inline'; Codehighlighter1_61_104_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />    </span>
				<span id="Codehighlighter1_61_104_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
						<img src="http://www.blogjava.net/images/dot.gif" />
				</span>
				<span id="Codehighlighter1_61_104_Open_Text">
						<span style="COLOR: #000000">{<br /></span>
						<span style="COLOR: #008080"> 5</span>
						<span style="COLOR: #000000">
								<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        alert(name </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">"</span>
						<span style="COLOR: #000000"> </span>
						<span style="COLOR: #000000">+</span>
						<span style="COLOR: #000000"> invoteTime);<br /></span>
						<span style="COLOR: #008080"> 6</span>
						<span style="COLOR: #000000">
								<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />    }</span>
				</span>
				<span style="COLOR: #000000">
						<br />
				</span>
				<span style="COLOR: #008080"> 7</span>
				<span style="COLOR: #000000">
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
						<br />
				</span>
				<span style="COLOR: #008080"> 8</span>
				<span style="COLOR: #000000">
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    </span>
				<span style="COLOR: #0000ff">var</span>
				<span style="COLOR: #000000"> TestObject </span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #0000ff">function</span>
				<span style="COLOR: #000000">()<br /></span>
				<span style="COLOR: #008080"> 9</span>
				<span style="COLOR: #000000">
						<img id="Codehighlighter1_137_640_Open_Image" onclick="this.style.display='none'; Codehighlighter1_137_640_Open_Text.style.display='none'; Codehighlighter1_137_640_Closed_Image.style.display='inline'; Codehighlighter1_137_640_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" />
						<img id="Codehighlighter1_137_640_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_137_640_Closed_Text.style.display='none'; Codehighlighter1_137_640_Open_Image.style.display='inline'; Codehighlighter1_137_640_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />    </span>
				<span id="Codehighlighter1_137_640_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
						<img src="http://www.blogjava.net/images/dot.gif" />
				</span>
				<span id="Codehighlighter1_137_640_Open_Text">
						<span style="COLOR: #000000">{<br /></span>
						<span style="COLOR: #008080">10</span>
						<span style="COLOR: #000000">
								<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span>
						<span style="COLOR: #008000">//</span>
						<span style="COLOR: #008000">定义这个对象相应的element</span>
						<span style="COLOR: #008000">
								<br />
						</span>
						<span style="COLOR: #008080">11</span>
						<span style="COLOR: #008000">
								<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />
						</span>
						<span style="COLOR: #000000">        </span>
						<span style="COLOR: #0000ff">var</span>
						<span style="COLOR: #000000"> e </span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000"> </span>
						<span style="COLOR: #0000ff">null</span>
						<span style="COLOR: #000000">;<br /></span>
						<span style="COLOR: #008080">12</span>
						<span style="COLOR: #000000">
								<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />
								<br />
						</span>
						<span style="COLOR: #008080">13</span>
						<span style="COLOR: #000000">
								<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span>
						<span style="COLOR: #0000ff">this</span>
						<span style="COLOR: #000000">.addClickListener </span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000"> </span>
						<span style="COLOR: #0000ff">function</span>
						<span style="COLOR: #000000">(name , callback)<br /></span>
						<span style="COLOR: #008080">14</span>
						<span style="COLOR: #000000">
								<img id="Codehighlighter1_231_359_Open_Image" onclick="this.style.display='none'; Codehighlighter1_231_359_Open_Text.style.display='none'; Codehighlighter1_231_359_Closed_Image.style.display='inline'; Codehighlighter1_231_359_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
								<img id="Codehighlighter1_231_359_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_231_359_Closed_Text.style.display='none'; Codehighlighter1_231_359_Open_Image.style.display='inline'; Codehighlighter1_231_359_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />        </span>
						<span id="Codehighlighter1_231_359_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
								<img src="http://www.blogjava.net/images/dot.gif" />
						</span>
						<span id="Codehighlighter1_231_359_Open_Text">
								<span style="COLOR: #000000">{<br /></span>
								<span style="COLOR: #008080">15</span>
								<span style="COLOR: #000000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            e.onclick </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #0000ff">function</span>
								<span style="COLOR: #000000">()<br /></span>
								<span style="COLOR: #008080">16</span>
								<span style="COLOR: #000000">
										<img id="Codehighlighter1_262_355_Open_Image" onclick="this.style.display='none'; Codehighlighter1_262_355_Open_Text.style.display='none'; Codehighlighter1_262_355_Closed_Image.style.display='inline'; Codehighlighter1_262_355_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
										<img id="Codehighlighter1_262_355_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_262_355_Closed_Text.style.display='none'; Codehighlighter1_262_355_Open_Image.style.display='inline'; Codehighlighter1_262_355_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />            </span>
								<span id="Codehighlighter1_262_355_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
										<img src="http://www.blogjava.net/images/dot.gif" />
								</span>
								<span id="Codehighlighter1_262_355_Open_Text">
										<span style="COLOR: #000000">{<br /></span>
										<span style="COLOR: #008080">17</span>
										<span style="COLOR: #000000">
												<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />                </span>
										<span style="COLOR: #008000">//</span>
										<span style="COLOR: #008000">如果有参数,还可以传参数 , call的第一个参数预留:arguments , 这里面我们可以用null ,  从第二个开始</span>
										<span style="COLOR: #008000">
												<br />
										</span>
										<span style="COLOR: #008080">18</span>
										<span style="COLOR: #008000">
												<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />
										</span>
										<span style="COLOR: #000000">                callback.call(</span>
										<span style="COLOR: #0000ff">null</span>
										<span style="COLOR: #000000"> , name , </span>
										<span style="COLOR: #0000ff">new</span>
										<span style="COLOR: #000000"> Date());<br /></span>
										<span style="COLOR: #008080">19</span>
										<span style="COLOR: #000000">
												<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />            }</span>
								</span>
								<span style="COLOR: #000000">
										<br />
								</span>
								<span style="COLOR: #008080">20</span>
								<span style="COLOR: #000000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />        }</span>
						</span>
						<span style="COLOR: #000000">
								<br />
						</span>
						<span style="COLOR: #008080">21</span>
						<span style="COLOR: #000000">
								<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />
								<br />
						</span>
						<span style="COLOR: #008080">22</span>
						<span style="COLOR: #000000">
								<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span>
						<span style="COLOR: #0000ff">var</span>
						<span style="COLOR: #000000"> init </span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000"> </span>
						<span style="COLOR: #0000ff">function</span>
						<span style="COLOR: #000000">()<br /></span>
						<span style="COLOR: #008080">23</span>
						<span style="COLOR: #000000">
								<img id="Codehighlighter1_388_626_Open_Image" onclick="this.style.display='none'; Codehighlighter1_388_626_Open_Text.style.display='none'; Codehighlighter1_388_626_Closed_Image.style.display='inline'; Codehighlighter1_388_626_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
								<img id="Codehighlighter1_388_626_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_388_626_Closed_Text.style.display='none'; Codehighlighter1_388_626_Open_Image.style.display='inline'; Codehighlighter1_388_626_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />        </span>
						<span id="Codehighlighter1_388_626_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
								<img src="http://www.blogjava.net/images/dot.gif" />
						</span>
						<span id="Codehighlighter1_388_626_Open_Text">
								<span style="COLOR: #000000">{<br /></span>
								<span style="COLOR: #008080">24</span>
								<span style="COLOR: #000000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            </span>
								<span style="COLOR: #008000">//</span>
								<span style="COLOR: #008000">这里仅做个测试, 本应该按规范来写, 如: e.id = 'test'; e.style.width = '100px'</span>
								<span style="COLOR: #008000">
										<br />
								</span>
								<span style="COLOR: #008080">25</span>
								<span style="COLOR: #008000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />
								</span>
								<span style="COLOR: #000000">            e </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> document.createElement(</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">&lt;span id='</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">' style='width:100px; height:100px; background:gray; border:1px solid red'&gt;&lt;/span&gt;</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">);<br /></span>
								<span style="COLOR: #008080">26</span>
								<span style="COLOR: #000000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            document.body.appendChild(e);<br /></span>
								<span style="COLOR: #008080">27</span>
								<span style="COLOR: #000000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />        }</span>
						</span>
						<span style="COLOR: #000000">
								<br />
						</span>
						<span style="COLOR: #008080">28</span>
						<span style="COLOR: #000000">
								<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />
								<br />
						</span>
						<span style="COLOR: #008080">29</span>
						<span style="COLOR: #000000">
								<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        init();<br /></span>
						<span style="COLOR: #008080">30</span>
						<span style="COLOR: #000000">
								<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />    }</span>
				</span>
				<span style="COLOR: #000000">
						<br />
				</span>
				<span style="COLOR: #008080">31</span>
				<span style="COLOR: #000000">
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
						<br />
				</span>
				<span style="COLOR: #008080">32</span>
				<span style="COLOR: #000000">
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    </span>
				<span style="COLOR: #0000ff">var</span>
				<span style="COLOR: #000000"> testObject1 </span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #0000ff">new</span>
				<span style="COLOR: #000000"> TestObject();<br /></span>
				<span style="COLOR: #008080">33</span>
				<span style="COLOR: #000000">
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    testObject1.addClickListener(</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">site120</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000"> , callback);<br /></span>
				<span style="COLOR: #008080">34</span>
				<span style="COLOR: #000000">
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
						<br />
				</span>
				<span style="COLOR: #008080">35</span>
				<span style="COLOR: #000000">
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    </span>
				<span style="COLOR: #0000ff">var</span>
				<span style="COLOR: #000000"> testObject2 </span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #0000ff">new</span>
				<span style="COLOR: #000000"> TestObject();<br /></span>
				<span style="COLOR: #008080">36</span>
				<span style="COLOR: #000000">
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    testObject2.addClickListener(</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">afd</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000"> , callback);<br /></span>
				<span style="COLOR: #008080">37</span>
				<span style="COLOR: #000000">
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</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">38</span>
				<span style="COLOR: #000000">
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</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">39</span>
				<span style="COLOR: #000000">
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
		</div>
		<p>
				<br /> </p>
<img src ="http://www.blogjava.net/site120/aggbug/97190.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/site120/" target="_blank">姜利阳</a> 2007-02-01 12:55 <a href="http://www.blogjava.net/site120/archive/2007/02/01/97190.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>去除超链接中的虚框</title><link>http://www.blogjava.net/site120/archive/2007/01/30/96800.html</link><dc:creator>姜利阳</dc:creator><author>姜利阳</author><pubDate>Tue, 30 Jan 2007 14:29:00 GMT</pubDate><guid>http://www.blogjava.net/site120/archive/2007/01/30/96800.html</guid><wfw:comment>http://www.blogjava.net/site120/comments/96800.html</wfw:comment><comments>http://www.blogjava.net/site120/archive/2007/01/30/96800.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/site120/comments/commentRss/96800.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/site120/services/trackbacks/96800.html</trackback:ping><description><![CDATA[只要一句话：<br />之前我们可以在每一个&lt;a&gt;&lt;img&gt;中加入，　onFosuc = this.blur(); ,<br />但如果我们想去除所有的超链接的虚框　，　则可以之么做.<br />&lt;style&gt;<br />&#160;<font size="2">a,img <br />{&#160;<br />&#160;&#160;&#160;huerreson:expression(onfocus=function(){this.blur()});<br />&#160;}</font><br />&lt;/style&gt;<br />也可以利用htc文件加入a.style.behavior属性.如：<br />&lt;style&gt;<br /><font size="2">a,img <br />{&#160;<br />&#160;&#160;&#160;&#160;&#160;&#160;behavior:url(js文件地址);&#160;&#160;&#160;<br />&#160;}</font><br />&lt;/style&gt;<br />在js文件中写入下面语句<br /><pre>&lt;attach event="onFocus" handler="onFocus" /&gt;
&lt;SCRIPT language="javascript"&gt;
function onFocus()
{<br />&#160;&#160;&#160;this.blur();
}
&lt;/SCRIPT&gt;
</pre><br /> <img src ="http://www.blogjava.net/site120/aggbug/96800.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/site120/" target="_blank">姜利阳</a> 2007-01-30 22:29 <a href="http://www.blogjava.net/site120/archive/2007/01/30/96800.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于Javascript中访问控制的机制</title><link>http://www.blogjava.net/site120/archive/2007/01/30/96798.html</link><dc:creator>姜利阳</dc:creator><author>姜利阳</author><pubDate>Tue, 30 Jan 2007 14:21:00 GMT</pubDate><guid>http://www.blogjava.net/site120/archive/2007/01/30/96798.html</guid><wfw:comment>http://www.blogjava.net/site120/comments/96798.html</wfw:comment><comments>http://www.blogjava.net/site120/archive/2007/01/30/96798.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/site120/comments/commentRss/96798.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/site120/services/trackbacks/96798.html</trackback:ping><description><![CDATA[
		<p>Javascript也是一种OO语言，它也有访问控制机制<br />public 成员<br />private 成员<br /><br />如下</p>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<span style="COLOR: #008080"> 1</span>
				<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				<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"> 2</span>
				<span style="COLOR: #000000">
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    </span>
				<span style="COLOR: #0000ff">var</span>
				<span style="COLOR: #000000"> People </span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #0000ff">function</span>
				<span style="COLOR: #000000">(name)<br /></span>
				<span style="COLOR: #008080"> 3</span>
				<span style="COLOR: #000000">
						<img id="Codehighlighter1_63_510_Open_Image" onclick="this.style.display='none'; Codehighlighter1_63_510_Open_Text.style.display='none'; Codehighlighter1_63_510_Closed_Image.style.display='inline'; Codehighlighter1_63_510_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" />
						<img id="Codehighlighter1_63_510_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_63_510_Closed_Text.style.display='none'; Codehighlighter1_63_510_Open_Image.style.display='inline'; Codehighlighter1_63_510_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />    </span>
				<span id="Codehighlighter1_63_510_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
						<img src="http://www.blogjava.net/images/dot.gif" />
				</span>
				<span id="Codehighlighter1_63_510_Open_Text">
						<span style="COLOR: #000000">{<br /></span>
						<span style="COLOR: #008080"> 4</span>
						<span style="COLOR: #000000">
								<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span>
						<span style="COLOR: #0000ff">var</span>
						<span style="COLOR: #000000"> name </span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000"> name;<br /></span>
						<span style="COLOR: #008080"> 5</span>
						<span style="COLOR: #000000">
								<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />
								<br />
						</span>
						<span style="COLOR: #008080"> 6</span>
						<span style="COLOR: #000000">
								<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span>
						<span style="COLOR: #0000ff">this</span>
						<span style="COLOR: #000000">.speek </span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000"> </span>
						<span style="COLOR: #0000ff">function</span>
						<span style="COLOR: #000000">()<br /></span>
						<span style="COLOR: #008080"> 7</span>
						<span style="COLOR: #000000">
								<img id="Codehighlighter1_113_196_Open_Image" onclick="this.style.display='none'; Codehighlighter1_113_196_Open_Text.style.display='none'; Codehighlighter1_113_196_Closed_Image.style.display='inline'; Codehighlighter1_113_196_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
								<img id="Codehighlighter1_113_196_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_113_196_Closed_Text.style.display='none'; Codehighlighter1_113_196_Open_Image.style.display='inline'; Codehighlighter1_113_196_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />        </span>
						<span id="Codehighlighter1_113_196_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
								<img src="http://www.blogjava.net/images/dot.gif" />
						</span>
						<span id="Codehighlighter1_113_196_Open_Text">
								<span style="COLOR: #000000">{<br /></span>
								<span style="COLOR: #008080"> 8</span>
								<span style="COLOR: #000000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            </span>
								<span style="COLOR: #008000">//</span>
								<span style="COLOR: #008000">这public里面，可以调用private的initSpeek方法</span>
								<span style="COLOR: #008000">
										<br />
								</span>
								<span style="COLOR: #008080"> 9</span>
								<span style="COLOR: #008000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />
								</span>
								<span style="COLOR: #000000">            initSpeek();<br /></span>
								<span style="COLOR: #008080">10</span>
								<span style="COLOR: #000000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            alert(</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">+</span>
								<span style="COLOR: #000000"> name);<br /></span>
								<span style="COLOR: #008080">11</span>
								<span style="COLOR: #000000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />        }</span>
						</span>
						<span style="COLOR: #000000">
								<br />
						</span>
						<span style="COLOR: #008080">12</span>
						<span style="COLOR: #000000">
								<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />
								<br />
						</span>
						<span style="COLOR: #008080">13</span>
						<span style="COLOR: #000000">
								<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span>
						<span style="COLOR: #0000ff">var</span>
						<span style="COLOR: #000000"> initSpeek </span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000"> </span>
						<span style="COLOR: #0000ff">function</span>
						<span style="COLOR: #000000">()<br /></span>
						<span style="COLOR: #008080">14</span>
						<span style="COLOR: #000000">
								<img id="Codehighlighter1_230_257_Open_Image" onclick="this.style.display='none'; Codehighlighter1_230_257_Open_Text.style.display='none'; Codehighlighter1_230_257_Closed_Image.style.display='inline'; Codehighlighter1_230_257_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
								<img id="Codehighlighter1_230_257_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_230_257_Closed_Text.style.display='none'; Codehighlighter1_230_257_Open_Image.style.display='inline'; Codehighlighter1_230_257_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />        </span>
						<span id="Codehighlighter1_230_257_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
								<img src="http://www.blogjava.net/images/dot.gif" />
						</span>
						<span id="Codehighlighter1_230_257_Open_Text">
								<span style="COLOR: #000000">{<br /></span>
								<span style="COLOR: #008080">15</span>
								<span style="COLOR: #000000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            alert(</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">initSPeek</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">);<br /></span>
								<span style="COLOR: #008080">16</span>
								<span style="COLOR: #000000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />        }</span>
						</span>
						<span style="COLOR: #000000">
								<br />
						</span>
						<span style="COLOR: #008080">17</span>
						<span style="COLOR: #000000">
								<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />
								<br />
						</span>
						<span style="COLOR: #008080">18</span>
						<span style="COLOR: #000000">
								<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span>
						<span style="COLOR: #0000ff">var</span>
						<span style="COLOR: #000000"> init </span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000"> </span>
						<span style="COLOR: #0000ff">function</span>
						<span style="COLOR: #000000">()<br /></span>
						<span style="COLOR: #008080">19</span>
						<span style="COLOR: #000000">
								<img id="Codehighlighter1_286_496_Open_Image" onclick="this.style.display='none'; Codehighlighter1_286_496_Open_Text.style.display='none'; Codehighlighter1_286_496_Closed_Image.style.display='inline'; Codehighlighter1_286_496_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
								<img id="Codehighlighter1_286_496_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_286_496_Closed_Text.style.display='none'; Codehighlighter1_286_496_Open_Image.style.display='inline'; Codehighlighter1_286_496_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />        </span>
						<span id="Codehighlighter1_286_496_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
								<img src="http://www.blogjava.net/images/dot.gif" />
						</span>
						<span id="Codehighlighter1_286_496_Open_Text">
								<span style="COLOR: #000000">{<br /></span>
								<span style="COLOR: #008080">20</span>
								<span style="COLOR: #000000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            </span>
								<span style="COLOR: #0000ff">if</span>
								<span style="COLOR: #000000"> (name </span>
								<span style="COLOR: #000000">==</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #0000ff">null</span>
								<span style="COLOR: #000000">)<br /></span>
								<span style="COLOR: #008080">21</span>
								<span style="COLOR: #000000">
										<img id="Codehighlighter1_312_344_Open_Image" onclick="this.style.display='none'; Codehighlighter1_312_344_Open_Text.style.display='none'; Codehighlighter1_312_344_Closed_Image.style.display='inline'; Codehighlighter1_312_344_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
										<img id="Codehighlighter1_312_344_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_312_344_Closed_Text.style.display='none'; Codehighlighter1_312_344_Open_Image.style.display='inline'; Codehighlighter1_312_344_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />            </span>
								<span id="Codehighlighter1_312_344_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
										<img src="http://www.blogjava.net/images/dot.gif" />
								</span>
								<span id="Codehighlighter1_312_344_Open_Text">
										<span style="COLOR: #000000">{<br /></span>
										<span style="COLOR: #008080">22</span>
										<span style="COLOR: #000000">
												<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />                name </span>
										<span style="COLOR: #000000">=</span>
										<span style="COLOR: #000000"> </span>
										<span style="COLOR: #000000">"</span>
										<span style="COLOR: #000000">name is null</span>
										<span style="COLOR: #000000">"</span>
										<span style="COLOR: #000000">;<br /></span>
										<span style="COLOR: #008080">23</span>
										<span style="COLOR: #000000">
												<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />            }</span>
								</span>
								<span style="COLOR: #000000">
										<br />
								</span>
								<span style="COLOR: #008080">24</span>
								<span style="COLOR: #000000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            </span>
								<span style="COLOR: #0000ff">else</span>
								<span style="COLOR: #000000">
										<br />
								</span>
								<span style="COLOR: #008080">25</span>
								<span style="COLOR: #000000">
										<img id="Codehighlighter1_357_492_Open_Image" onclick="this.style.display='none'; Codehighlighter1_357_492_Open_Text.style.display='none'; Codehighlighter1_357_492_Closed_Image.style.display='inline'; Codehighlighter1_357_492_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
										<img id="Codehighlighter1_357_492_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_357_492_Closed_Text.style.display='none'; Codehighlighter1_357_492_Open_Image.style.display='inline'; Codehighlighter1_357_492_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />            </span>
								<span id="Codehighlighter1_357_492_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
										<img src="http://www.blogjava.net/images/dot.gif" />
								</span>
								<span id="Codehighlighter1_357_492_Open_Text">
										<span style="COLOR: #000000">{<br /></span>
										<span style="COLOR: #008080">26</span>
										<span style="COLOR: #000000">
												<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />                </span>
										<span style="COLOR: #008000">//</span>
										<span style="COLOR: #008000">注意，不能在private的init内调用public的speek方法</span>
										<span style="COLOR: #008000">
												<br />
										</span>
										<span style="COLOR: #008080">27</span>
										<span style="COLOR: #008000">
												<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />
										</span>
										<span style="COLOR: #000000">                </span>
										<span style="COLOR: #0000ff">try</span>
										<span style="COLOR: #000000">
												<br />
										</span>
										<span style="COLOR: #008080">28</span>
										<span style="COLOR: #000000">
												<img id="Codehighlighter1_413_438_Open_Image" onclick="this.style.display='none'; Codehighlighter1_413_438_Open_Text.style.display='none'; Codehighlighter1_413_438_Closed_Image.style.display='inline'; Codehighlighter1_413_438_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
												<img id="Codehighlighter1_413_438_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_413_438_Closed_Text.style.display='none'; Codehighlighter1_413_438_Open_Image.style.display='inline'; Codehighlighter1_413_438_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />                </span>
										<span id="Codehighlighter1_413_438_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
												<img src="http://www.blogjava.net/images/dot.gif" />
										</span>
										<span id="Codehighlighter1_413_438_Open_Text">
												<span style="COLOR: #000000">{<br /></span>
												<span style="COLOR: #008080">29</span>
												<span style="COLOR: #000000">
														<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />                    </span>
												<span style="COLOR: #0000ff">this</span>
												<span style="COLOR: #000000">.speek();<br /></span>
												<span style="COLOR: #008080">30</span>
												<span style="COLOR: #000000">
														<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />                }</span>
										</span>
										<span style="COLOR: #000000">
												<br />
										</span>
										<span style="COLOR: #008080">31</span>
										<span style="COLOR: #000000">
												<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />                </span>
										<span style="COLOR: #0000ff">catch</span>
										<span style="COLOR: #000000">(e)<br /></span>
										<span style="COLOR: #008080">32</span>
										<span style="COLOR: #000000">
												<img id="Codehighlighter1_457_486_Open_Image" onclick="this.style.display='none'; Codehighlighter1_457_486_Open_Text.style.display='none'; Codehighlighter1_457_486_Closed_Image.style.display='inline'; Codehighlighter1_457_486_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
												<img id="Codehighlighter1_457_486_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_457_486_Closed_Text.style.display='none'; Codehighlighter1_457_486_Open_Image.style.display='inline'; Codehighlighter1_457_486_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />                </span>
										<span id="Codehighlighter1_457_486_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
												<img src="http://www.blogjava.net/images/dot.gif" />
										</span>
										<span id="Codehighlighter1_457_486_Open_Text">
												<span style="COLOR: #000000">{<br /></span>
												<span style="COLOR: #008080">33</span>
												<span style="COLOR: #000000">
														<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />                    alert(e.message);<br /></span>
												<span style="COLOR: #008080">34</span>
												<span style="COLOR: #000000">
														<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />                }</span>
										</span>
										<span style="COLOR: #000000">
												<br />
										</span>
										<span style="COLOR: #008080">35</span>
										<span style="COLOR: #000000">
												<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />
												<br />
										</span>
										<span style="COLOR: #008080">36</span>
										<span style="COLOR: #000000">
												<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />            }</span>
								</span>
								<span style="COLOR: #000000">
										<br />
								</span>
								<span style="COLOR: #008080">37</span>
								<span style="COLOR: #000000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />        }</span>
						</span>
						<span style="COLOR: #000000">
								<br />
						</span>
						<span style="COLOR: #008080">38</span>
						<span style="COLOR: #000000">
								<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />
								<br />
						</span>
						<span style="COLOR: #008080">39</span>
						<span style="COLOR: #000000">
								<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        init();<br /></span>
						<span style="COLOR: #008080">40</span>
						<span style="COLOR: #000000">
								<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />    }</span>
				</span>
				<span style="COLOR: #000000">
						<br />
				</span>
				<span style="COLOR: #008080">41</span>
				<span style="COLOR: #000000">
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
						<br />
				</span>
				<span style="COLOR: #008080">42</span>
				<span style="COLOR: #000000">
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    </span>
				<span style="COLOR: #0000ff">var</span>
				<span style="COLOR: #000000"> zhang </span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #0000ff">new</span>
				<span style="COLOR: #000000"> People();<br /></span>
				<span style="COLOR: #008080">43</span>
				<span style="COLOR: #000000">
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    zhang.speek();<br /></span>
				<span style="COLOR: #008080">44</span>
				<span style="COLOR: #000000">
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    </span>
				<span style="COLOR: #0000ff">var</span>
				<span style="COLOR: #000000"> li </span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #0000ff">new</span>
				<span style="COLOR: #000000"> People(</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">李四</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">);<br /></span>
				<span style="COLOR: #008080">45</span>
				<span style="COLOR: #000000">
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    li.speek();<br /></span>
				<span style="COLOR: #008080">46</span>
				<span style="COLOR: #000000">
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #000000">&lt;/</span>
				<span style="COLOR: #000000">script</span>
				<span style="COLOR: #000000">&gt;</span>
		</div>
		<br />从上面可以看出，<br />定义public方法，只需要将成员前加this.，　<br />定义private方法，　只需要将成员定义为var <br /><font color="#ff1493">注意：与Java不同的是，在Javascript 当中　公有成员可以访问私有成员，　但私有成员不能访问公有成员.</font><img src ="http://www.blogjava.net/site120/aggbug/96798.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/site120/" target="_blank">姜利阳</a> 2007-01-30 22:21 <a href="http://www.blogjava.net/site120/archive/2007/01/30/96798.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在Javascript或者Java当中判断润年【最最简单的】方法</title><link>http://www.blogjava.net/site120/archive/2007/01/15/94049.html</link><dc:creator>姜利阳</dc:creator><author>姜利阳</author><pubDate>Mon, 15 Jan 2007 14:05:00 GMT</pubDate><guid>http://www.blogjava.net/site120/archive/2007/01/15/94049.html</guid><wfw:comment>http://www.blogjava.net/site120/comments/94049.html</wfw:comment><comments>http://www.blogjava.net/site120/archive/2007/01/15/94049.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://www.blogjava.net/site120/comments/commentRss/94049.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/site120/services/trackbacks/94049.html</trackback:ping><description><![CDATA[Javascript测试函数isSmoothYear()<br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #008080"> 1</span><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><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 /></span><span style="COLOR: #008080"> 2</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    </span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000"> isSmoothYear </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000">(year)<br /></span><span style="COLOR: #008080"> 3</span><span style="COLOR: #000000"><img id="Codehighlighter1_67_121_Open_Image" onclick="this.style.display='none'; Codehighlighter1_67_121_Open_Text.style.display='none'; Codehighlighter1_67_121_Closed_Image.style.display='inline'; Codehighlighter1_67_121_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_67_121_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_67_121_Closed_Text.style.display='none'; Codehighlighter1_67_121_Open_Image.style.display='inline'; Codehighlighter1_67_121_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />    </span><span id="Codehighlighter1_67_121_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_67_121_Open_Text"><span style="COLOR: #000000">{<br /></span><span style="COLOR: #008080"> 4</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> (</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> Date(year , </span><span style="COLOR: #000000">2</span><span style="COLOR: #000000"> , </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">).getDate() </span><span style="COLOR: #000000">==</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">29</span><span style="COLOR: #000000">);<br /></span><span style="COLOR: #008080"> 5</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />    }</span></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080"> 6</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    alert(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">2004年 是润年吗? \t</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">+</span><span style="COLOR: #000000"> isSmoothYear(</span><span style="COLOR: #000000">2004</span><span style="COLOR: #000000">));<br /></span><span style="COLOR: #008080"> 7</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    alert(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">2005年 是润年吗? \t</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">+</span><span style="COLOR: #000000"> isSmoothYear(</span><span style="COLOR: #000000">2005</span><span style="COLOR: #000000">));<br /></span><span style="COLOR: #008080"> 8</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    alert(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">2006年 是润年吗? \t</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">+</span><span style="COLOR: #000000"> isSmoothYear(</span><span style="COLOR: #000000">2006</span><span style="COLOR: #000000">));<br /></span><span style="COLOR: #008080"> 9</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    alert(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">2007年 是润年吗? \t</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">+</span><span style="COLOR: #000000"> isSmoothYear(</span><span style="COLOR: #000000">2007</span><span style="COLOR: #000000">));<br /></span><span style="COLOR: #008080">10</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    alert(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">2008年 是润年吗? \t</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">+</span><span style="COLOR: #000000"> isSmoothYear(</span><span style="COLOR: #000000">2008</span><span style="COLOR: #000000">));<br /></span><span style="COLOR: #008080">11</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">script</span><span style="COLOR: #000000">&gt;</span></div><br />Java代码同理<br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #008080"> 1</span><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> java.util.</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080"> 2</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /></span><span style="COLOR: #008080"> 3</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000"> TestDate <br /></span><span style="COLOR: #008080"> 4</span><span style="COLOR: #000000"><img id="Codehighlighter1_37_162_Open_Image" onclick="this.style.display='none'; Codehighlighter1_37_162_Open_Text.style.display='none'; Codehighlighter1_37_162_Closed_Image.style.display='inline'; Codehighlighter1_37_162_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_37_162_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_37_162_Closed_Text.style.display='none'; Codehighlighter1_37_162_Open_Image.style.display='inline'; Codehighlighter1_37_162_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span id="Codehighlighter1_37_162_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_37_162_Open_Text"><span style="COLOR: #000000">{<br /></span><span style="COLOR: #008080"> 5</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> main(String[] args) <br /></span><span style="COLOR: #008080"> 6</span><span style="COLOR: #000000"><img id="Codehighlighter1_81_160_Open_Image" onclick="this.style.display='none'; Codehighlighter1_81_160_Open_Text.style.display='none'; Codehighlighter1_81_160_Closed_Image.style.display='inline'; Codehighlighter1_81_160_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_81_160_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_81_160_Closed_Text.style.display='none'; Codehighlighter1_81_160_Open_Image.style.display='inline'; Codehighlighter1_81_160_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span><span id="Codehighlighter1_81_160_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_81_160_Open_Text"><span style="COLOR: #000000">{<br /></span><span style="COLOR: #008080"> 7</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        Date date </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> Date(</span><span style="COLOR: #000000">2004</span><span style="COLOR: #000000"> , </span><span style="COLOR: #000000">2</span><span style="COLOR: #000000"> , </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">);<br /></span><span style="COLOR: #008080"> 8</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        System.out.println(date.getDate());<br /></span><span style="COLOR: #008080"> 9</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">10</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">11</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></div><img src ="http://www.blogjava.net/site120/aggbug/94049.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/site120/" target="_blank">姜利阳</a> 2007-01-15 22:05 <a href="http://www.blogjava.net/site120/archive/2007/01/15/94049.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JSON技术(XML的挑战者)二-----(实战)</title><link>http://www.blogjava.net/site120/archive/2007/01/11/93037.html</link><dc:creator>姜利阳</dc:creator><author>姜利阳</author><pubDate>Wed, 10 Jan 2007 16:27:00 GMT</pubDate><guid>http://www.blogjava.net/site120/archive/2007/01/11/93037.html</guid><wfw:comment>http://www.blogjava.net/site120/comments/93037.html</wfw:comment><comments>http://www.blogjava.net/site120/archive/2007/01/11/93037.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/site120/comments/commentRss/93037.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/site120/services/trackbacks/93037.html</trackback:ping><description><![CDATA[
		<br />下面我们就用JSON来解释服务端返回的数据<br />1) /data/test_json.js内容<br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #008080">1</span> <span style="COLOR: #000000">{</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">peoples</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">:[    <br /></span><span style="COLOR: #008080">2</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">"</span><span style="COLOR: #000000">site120</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,    </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">email</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">site120@163.com</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,    </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">sex</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">"</span><span style="COLOR: #000000">},<br /></span><span style="COLOR: #008080">3</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">"</span><span style="COLOR: #000000">site120_2</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,    </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">email</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">site120@163.com_2</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,    </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">sex</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">4</span> <span style="COLOR: #000000">]<br /></span><span style="COLOR: #008080">5</span> <span style="COLOR: #000000">}</span></div><br />2) /test_json.html内容<br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #008080"> 1</span> <span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">script src</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">/scripts/startup.js</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;&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"></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"> 3</span> <span style="COLOR: #000000">    $import(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">cn.site120.ajax.*</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br /></span><span style="COLOR: #008080"> 4</span> <span style="COLOR: #000000">    </span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000"> url </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">/data/test_json.js</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080"> 5</span> <span style="COLOR: #000000">    </span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000"> callback </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000">(response)<br /></span><span style="COLOR: #008080"> 6</span> <span style="COLOR: #000000">    {<br /></span><span style="COLOR: #008080"> 7</span> <span style="COLOR: #000000">        </span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000"> p </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> eval(</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">+</span><span style="COLOR: #000000"> response.responseText </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">"</span><span style="COLOR: #000000">);<br /></span><span style="COLOR: #008080"> 8</span> <span style="COLOR: #000000">        alert(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">length is : </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">+</span><span style="COLOR: #000000"> p.peoples.length);<br /></span><span style="COLOR: #008080"> 9</span> <span style="COLOR: #000000">        alert(p.peoples[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">].name);<br /></span><span style="COLOR: #008080">10</span> <span style="COLOR: #000000">        alert(p.peoples[</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">].name);<br /></span><span style="COLOR: #008080">11</span> <span style="COLOR: #000000">    }<br /></span><span style="COLOR: #008080">12</span> <span style="COLOR: #000000">    httpLoad(url , callback , </span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000"> , </span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">);<br /></span><span style="COLOR: #008080">13</span> <span style="COLOR: #000000"></span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">script</span><span style="COLOR: #000000">&gt;</span></div><p><br />3) 打印结果<br /><font style="BACKGROUND-COLOR: #000000" color="#ffffff">   length is : 2<br />   site120<br />   site120_2<br /><br /><font style="BACKGROUND-COLOR: #ffffff" color="#000000">-----------------------------------------------------------------------</font></font></p><p><font style="BACKGROUND-COLOR: #000000" color="#ffffff"><font style="BACKGROUND-COLOR: #ffffff" color="#000000">可参考前一篇文章: <a id="viewpost1_TitleUrl" href="/site120/archive/2007/01/10/92692.html">Json技术一----- (原理)</a><br />JSON具体的数据规则,格式请参考官方网站</font><a href="http://www.json.org/"><font style="BACKGROUND-COLOR: #ffffff">http://www.json.org/</font></a><br /><br /></font></p><img src ="http://www.blogjava.net/site120/aggbug/93037.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/site120/" target="_blank">姜利阳</a> 2007-01-11 00:27 <a href="http://www.blogjava.net/site120/archive/2007/01/11/93037.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Json技术(XML的挑战者)一----- (原理)</title><link>http://www.blogjava.net/site120/archive/2007/01/10/92692.html</link><dc:creator>姜利阳</dc:creator><author>姜利阳</author><pubDate>Wed, 10 Jan 2007 15:44:00 GMT</pubDate><guid>http://www.blogjava.net/site120/archive/2007/01/10/92692.html</guid><wfw:comment>http://www.blogjava.net/site120/comments/92692.html</wfw:comment><comments>http://www.blogjava.net/site120/archive/2007/01/10/92692.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/site120/comments/commentRss/92692.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/site120/services/trackbacks/92692.html</trackback:ping><description><![CDATA[
		<div>用JSON技术加快AJAX程序开发 一篇不错的文章<br />------------------------------------------------------------------------------------------------------------- 
<hr style="BORDER-RIGHT: #ffffff 1px solid; BORDER-TOP: #ffffff 1px solid; BORDER-LEFT: #ffffff 1px solid; BORDER-BOTTOM: #ffffff 1px solid" size="1" /><div align="right"><small><font size="1">2006-04-19 16:16:28</font></small></div><div class="content" style="TABLE-LAYOUT: fixed; WORD-WRAP: break-word"><br /><table cellspacing="0" cellpadding="0" width="100%" border="0"><tbody><tr><td><span class="content"><div align="center"><strong>用JSON技术加快AJAX程序开发</strong></div><div align="center"><strong>朱先忠 编译</strong></div><div><strong>一、引言</strong></div><div>当微软把ActiveX XMLHTTP对象纳入到JavaScript的Internet Explorer实现中时，它实际上已经为Web应用程序的又一次革命（异步JavaScript+XML，简称AJAX）埋下了“火种”。今天，Firefox，Safari，Opera及其它浏览器都支持XMLHttpRequest对象，正是这些支持最终才导致了诸如colr.org，backpackit.com和maps.google.com等著名网站的产生。尽管这些网站（不止这些）所提供的应用程序运行于一种浏览器中，但是它们在行为和外观上却极类似于传统的桌面应用程序。</div><br /><div>在AJAX技术中，在用户观看并与页面交互的同时（这正相应于AJAX中的“异步”部分），由页面中的JavaScript负责把数据请求发送到一个Web服务器。这些请求只是一些普通的HTTP请求，与浏览器用于页面（连同其中的任何图像，层叠式样表等内容）检索的HTTP完全相同。同时，XMLHttpRequest对象可以用于检索任何类型的数据，而不仅仅是XML类型。例如，JavaScript可以使用XMLHttpRequest来检索一个来自于Web服务器的普通文本文本并且把它的内容显示于一个表单中。</div><div>通过查找位于数据之前的“content-type”头部，XMLHttpRequest对象分析从Web服务器返回的数据的MIME类型。例如，如果这些数据的MIME类型是“text/plain”，那么你可以通过分析XMLHttpRequest对象的responseText属性来存取它；然而，如果其MIME类型为“text/xml”，那么XMLHttpRequest对象必须采取额外的措施：它要在返回的文档对象上运行<font color="#ff1493">一个XML分析器</font>并<font color="#ff1493">在</font><font color="#ff1493">内存中构建一棵文档对象模型（DOM）树来描述该文档</font>，<font color="#ff1493">并且还要使其可用于responseXML属性</font>。然后，你才可以使用JavaScript的标准DOM方法在树中导航并检索元素、属性及位于该DOM树中的其它文本。</div><div><font color="#ff0000">虽然XML是进行数据交换的标准方式，但是通常它不是最好的方式</font>。尽管XML可以把结构和元数据添加到数据上，但是它使用了一种相当繁琐的方式。XML还有一种相对复杂的语法，因而需要一种分析器对之进行专门分析。在JavaScript中，XML必须被分析成一棵以备后用的DOM树。并且，一旦你构建了这棵DOM树，你还必须在其中导航以便创建相应的JavaScript对象或者以其它方式在你的客户端Web应用程序中使用XML数据。<br />幸好，你还有另外更好的可选方案。</div><div><strong>二、JSON简介 javascript object notation</strong></div><div>JavaScript对象标志，简称JSON，是一种描述数据的轻量级语法。JSON的优越性基于这样的事实：<font color="#ff1493">它本身就是JavaScript语言的一个子集</font>。你会在后面看到这种特征的重要性。首先，让我们比较一下JSON和XML的原始语法。<br /><font color="#000000">XML和JSON都使用<font color="#ff1493">结构化方法</font>来标记数据</font>。例如，一个地址簿应用程序可能提供一个Web服务—它将以XML形式生成如下的地址卡片：</div><table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="90%" align="center" bordercolorlight="#000000" border="1"><tbody><tr><td class="code" bgcolor="#e6e6e6"><divre><div>&lt;?xml version='1.0' encoding='UTF-8'?&gt;<br />&lt;card&gt;<br />&lt;fullname&gt;Sean Kelly&lt;/fullname&gt;<br />&lt;org&gt;SK Consulting&lt;/org&gt;<br />&lt;emailaddrs&gt;<br />&lt;address type='work'&gt;<a href="mailto:kelly@seankelly.biz"><font color="#077092">kelly@seankelly.biz</font></a>&lt;/address&gt;<br />&lt;address type='home' pref='1'&gt;<a href="mailto:kelly@seankelly.tv"><font color="#077092">kelly@seankelly.tv</font></a>&lt;/address&gt;<br />&lt;/emailaddrs&gt;<br />&lt;telephones&gt;<br />&lt;tel type='work' pref='1'&gt;+1 214 555 1212&lt;/tel&gt;<br />&lt;tel type='fax'&gt;+1 214 555 1213&lt;/tel&gt;<br />&lt;tel type='mobile'&gt;+1 214 555 1214&lt;/tel&gt;<br />&lt;/telephones&gt;<br />&lt;addresses&gt;<br />&lt;address type='work' format='us'&gt;1234 Main St<br />Springfield， TX 78080-1216&lt;/address&gt;<br />&lt;address type='home' format='us'&gt;5678 Main St<br />Springfield， TX 78080-1316&lt;/address&gt;<br />&lt;/addresses&gt;<br />&lt;urls&gt;<br />&lt;address type='work'&gt;<a href="http://seankelly.biz/&lt;/address&gt;" target="_blank"><font color="#077092">http://seankelly.biz/&lt;/address&gt;</font></a><br />&lt;address type='home'&gt;<a href="http://seankelly.tv/&lt;/address&gt;" target="_blank"><font color="#077092">http://seankelly.tv/&lt;/address&gt;</font></a><br />&lt;/urls&gt;<br />&lt;/card&gt;</div><divre><pre></pre></divre></divre></td></tr></tbody></table><div>而使用JSON来表达，上面的形式将变成如下模样： 
<table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="90%" align="center" bordercolorlight="#000000" border="1"><tbody><tr><td class="code" bgcolor="#e6e6e6"><divre><br />{<br />"fullname": "Sean Kelly"，<br />"org": "SK Consulting"，<br />"emailaddrs": [<br />{"type": "work"， "value": <a href="mailto:kelly@seankelly.biz"><font color="#077092">kelly@seankelly.biz</font></a>"}，<br />{"type": "home"， "pref": 1， "value": "<a href="mailto:kelly@seankelly.tv"><font color="#077092">kelly@seankelly.tv</font></a>"}<br />]，<br />"teleph [<br />{"type": "work"， "pref": 1， "value": "+1 214 555 1212"}，<br />{"type": "fax"， "value": "+1 214 555 1213"}，<br />{"type": "mobile"， "value": "+1 214 555 1214"}<br />]，<br />"addresses": [<br />{"type": "work"， "format": "us"，<br />"value": "1234 Main StnSpringfield， TX 78080-1216"}，<br />{"type": "home"， "format": "us"，<br />"value": "5678 Main StnSpringfield， TX 78080-1316"}<br />]，<br />"urls": [<br />{"type": "work"， "value": "http://seankelly.biz/"}，<br />{"type": "home"， "value": "http://seankelly.tv/"}<br />]<br />} 
<div></div><divre><pre></pre></divre></divre></td></tr></tbody></table></div><div>正如你所见，JSON也提供了一种具有嵌套数据元素的结构，就象XML一样。与XML一样，JSON也是基于文本的，且它们都使用Unicode编码，且其与XML一样具有可读性。主观上来看，JSON更为清晰且冗余更少些。JSON网站提供了对JSON语法的严格描述，只是描述较简短。从总体来看，<font color="#ff1493">XML比较适合于标记文档，而JSON却更适于进行数据交换处理</font>。一个JSON文档的每一个实例都负责描述一个对象—具体的描述是通过使用嵌套的对象，数组，字符串，数字，布尔值或null值来实现的。</div><div>上面地址卡例子的JSON版本更为小些，仅占用大约682字节的空间，而XML版本需要744字节空间。当然，这不是什么惊人的节省。其实，JSON的真正优点在于数据分析方面。</div><div><strong>三、JSON与XML数据分析对比</strong></div><div>借助于XMLHttpRequest对象，你可以从自己的基于AJAX的应用程序内部检索XML和JSON文件。典型情况下，你可以使用类似如下的交互：</div><table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="90%" align="center" bordercolorlight="#000000" border="1"><tbody><tr><td class="code" bgcolor="#e6e6e6"><divre><div>var req = new XMLHttpRequest();<br />req.open("GET"，"http://localhost/addr?cardID=32"， /*async*/true);<br />req. = myHandler;<br />req.send(/*no params*/null);</div><divre><pre></pre></divre></divre></td></tr></tbody></table><div>随着对Web服务器的不断响应，被你传递的处理器函数（在本例中是myHandler）被反复调用，这种特征提供给你一种时机—及早地取消事务，更新一个进度条，等等。通常，你只是在Web请求完成时才采取行动（应用返回的数据）。</div><div>为了处理上面地址卡程序的XML版本，myHandler的编码可以类似如下：</div><table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="90%" align="center" bordercolorlight="#000000" border="1"><tbody><tr><td class="code" bgcolor="#e6e6e6"><divre><div>function myHandler() {<br />if (req.readyState == 4 /*完成*/) {<br />//用第一个街道地址更新表单中的地址域<br />var addrField = document.getElementById('addr');<br />var root = req.responseXML;<br />var addrsElem = root.getElementsByTagName('addresses')[0];<br />var firstAddr = addrsElem.getElementsByTagName('address')[0];<br />var addrText = fistAddr.firstChild;<br />var addrValue = addrText.nodeValue;<br />addrField.value = addrValue;<br />}<br />}</div><divre><pre></pre></divre></divre></td></tr></tbody></table><div>注意，你不必自己分析XML文档，分析任务可以由XMLHttpRequest对象为你自动完成。之后，这个XMLHttpRequest对象使得由分析生成的DOM树可应用于responseXML属性中。然后，你可以借助这个responseXML属性并调用getElementsByTagName方法来查找文档中的addresses部分，但仅能使用找到的第一个（其实只有一个）。然后，你再次在找到的address上调用getElementsByTagName方法来查找下一层中的第一个address元素，然后再次使用找到的第一个address……然后，你得到该元素的第一个DOM子结点（它是一个文本结点）并得到该结点的值（它正是你想找的街道地址）。最后，你就可以在表单域中显示它。</div><div>显然，这是一项工作量很大的工作！现在，让我们试用一下JSON：</div><table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="90%" align="center" bordercolorlight="#000000" border="1"><tbody><tr><td class="code" bgcolor="#e6e6e6"><divre><div>function myHandler() {<br />if (req.readyState == 4 /*complete*/) {<br />var addrField = document.getElementById('addr');<br />var card = eval('(' + req.resp + ')');<br />addrField.value = card.addresses[0].value;<br />}<br />}</div><divre><pre></pre></divre></divre></td></tr></tbody></table><div>你需要做的第一件事情是手工地分析JSON响应。然而，因为JSON是JavaScript的一个子集，所以你可以通过调用eval方法使用JavaScript自己的编译器来完成这些。分析JSON是非常简单的！而且，在产生于JSON中的一个对象中导航与在任何JavaScript对象中导航完全一样。这比在DOM树中导航要容易得多。例如：</div><div>•card.addresses[0].value对应第一条街道地址：“1234 Main Stb &amp;”；<br />•card.addresses[0].type对应地址的类型：“work”；<br />•card.addresses[1]对应一个家庭地址对象；<br />•card.fullname对应卡片名：“Sean Kelly”。</div><div>如果仔细观察，那么你可能注意到，示例程序的XML版本至少要处理包含在文档中的一个对象—根文档元素card。这在JSON版本中是不存在的。为什么？如果你曾开发过存取一个Web服务的JavaScript，那么你就会知道你要从Web服务中取回什么。然而，你可以在JSON中包括下面一种更为简练的形式：</div><table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="90%" align="center" bordercolorlight="#000000" border="1"><tbody><tr><td class="code" bgcolor="#e6e6e6"><divre><div>{"card": {"fullname": ...}}</div><divre><pre></pre></divre></divre></td></tr></tbody></table><div>通过使用这一技术，你的JSON文件总是以一个对象开头并且用单个命名的属性来标记该对象的“类型”。</div><div><strong>四、JSON的快速可靠性</strong></div><div>JSON能够生成更小的文档，且其在JavaScript脚本中更易于使用。XMLHttpRequest能够为你自动分析XML文档，然而你必须手工分析JSON。这样以来，你可能质疑：分析JSON是否比分析XML更慢？对比JSON，我针对上面的地址卡测试了嵌入到XMLHttpRequest中的XML分析器—通过把这些数据置入上千次的循环中。最终结果表明，<font color="#ff1493">分析JSON比分析XML快大约10倍</font>！如果想实现AJAX程序的行为类似于桌面应用程序，<font color="#ff1493">那么速度就是一切</font>。很明显，JSON是胜者。</div><div>当然，你不可能一直控制为你的AJAX应用程序产生数据的服务器端。你可以使用一种第三方服务器来处理你的数据，而且让该服务器仅提供XML输出。然而，如果该服务器中恰巧能够提供JSON支持，那么你能否确定并敢于使用这一支持？</div><div>注意，在上面的示例中，你是直接把响应文本传递到一个对eval的调用中。如果你信任并控制了服务器，这是没有问题的；然而，另外一些情况下，一个恶意的服务器有可能给你的浏览器执行带来危险操作。为此，你最好使用一个用JavaScript编写的JSON分析器。幸好，已经存在可用的分析器了。</div><div>谈到分析器，Python迷们可能还没有注意到，JSON不仅是JavaScript的一个子集，而且它还是Python的一个子集。你可以直接在Python中使用JSON，或利用一种安全的JSON分析器。现在，针对于JSON的分析器也大量地存在于其它语言中；你可以参考JSON.org网站来选择使用相应的分析器。</div><div><strong>五、服务器端技术对JSON的支持</strong></div><div>到目前为止，我们一直集中于讨论如何把JSON应用于客户端浏览器上的基于AJAX技术的Web应用程序。当然，Web服务器端必须存在一定的技术支持才能实现首先生成JSON，然后由客户端使用JSON。幸好，基于现有数据结构创建JSON是一件相当直接的事情。另外，一些Web应用程序框架（例如TurboGears）已经自动包括支持JSON输出。</div><div>另外，商业Web服务供应商也都特别关注JSON。Yahoo最近在其Web服务中大量地加入对JSON的支持。Yahoo的多种搜索服务，旅行规划者，del.icio.us和高速公路交通服务都支持JSON输出。无疑，其它一些主要的Web服务供应商也都会逐渐地提供对JSON的支持。</div><div><strong>六、结论</strong></div><div>JSON的基本思想是，把自己实现为JavaScript（和Pyth 2.0开发中XML数据操作的主要替代者。任何开发者，无论是开发标准桌面应用程序还是开发Web应用程序，只要使用XML数据处理，都会欣赏JSON的简易特征。最后，我衷心祝愿JSON能加快你的基于AJAX技术的Web 2.0应用程序的开发。</div><div><a href="http://tech.51cto.com/art/200604/25607.htm"><a href="http://tech.51cto.com/art/200604/25607.htm" target="_blank">http://tech.51cto.com/art/200604/25607.htm</a></a></div></span></td></tr></tbody></table></div><br /></div>
<img src ="http://www.blogjava.net/site120/aggbug/92692.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/site120/" target="_blank">姜利阳</a> 2007-01-10 23:44 <a href="http://www.blogjava.net/site120/archive/2007/01/10/92692.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于JSPackage的一些看法</title><link>http://www.blogjava.net/site120/archive/2007/01/10/93016.html</link><dc:creator>姜利阳</dc:creator><author>姜利阳</author><pubDate>Wed, 10 Jan 2007 14:42:00 GMT</pubDate><guid>http://www.blogjava.net/site120/archive/2007/01/10/93016.html</guid><wfw:comment>http://www.blogjava.net/site120/comments/93016.html</wfw:comment><comments>http://www.blogjava.net/site120/archive/2007/01/10/93016.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/site120/comments/commentRss/93016.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/site120/services/trackbacks/93016.html</trackback:ping><description><![CDATA[
		<p>
				<strong>一 概述<br /><br /></strong>
				<span>JSPackage 旨在提供一个<strong>开放的、无侵入</strong>的脚本库管理解决方案，让类库编写者可以以简洁的程序语言描述好自己编写的类库的相关依赖，让最终用户从繁琐的依赖管理中解脱出来，使得使用起来更加简洁方便 </span>
				<span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 12.0pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">。此外，还提供了一种对象有效域的封装机制，方便于</span>
				<span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">
				</span>
				<span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 12.0pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">重用、组织第三方脚本，<font color="#ff0000">避免它们带来的命名污染问题</font>。同时做到简洁，不加入特殊语法，被管理的脚本无框架依赖.<br /></span>
				<br />以类似Java 包的管理机制管理Javascript脚本 , 也能达到动态加载Javascript类或者函数.<br />使用方式也比较方便:<br /><br />1)   &lt;script language="javascript" src="/scripts/startup.js"&gt;&lt;/script&gt;<br /> &lt;script language="javascript"&gt;<br />&lt;!--<br />2)   $import("cn.com.site120.*");<br />3)   //调用这个包中的类,或者函数<br />--&gt;<br />&lt;/script&gt;<br /><br /><strong>二 不足之处</strong><br />我们可以发现,<br />1) 浏览器首先加载 "/scripts/startup.js"这个JSPackage启动程序<br />2) 之后遇到$import("cn.com.site120.*")这个方法的时候,它首先检查"cn.com.site120.*"这个包是否已经加载过,<br />   如果已经加载过,则跳过,直接调用 , <br />如果没有加载, 则<font color="#ff0000">程序暂停</font>,<font color="#ff0000">转而去下载这个包下的类, 直到下载完加载后,才继续执行.如果待下载的这些类又有$import("cn.com.other.*")这样的语句,它也检查这个包是否已经加载过,如果没有,则程序也暂停,转而去下载"cn.com.other.*"这个包下的文件,依此类推..形成一种嵌套的结构,环环相扣, 在第一次打开页面时,  如果网速快的话,则表现不出来, 但当网速慢的话,有明显的慢的感觉. 而且这里面的类越多,速度就越慢.<br /></font></p>
<img src ="http://www.blogjava.net/site120/aggbug/93016.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/site120/" target="_blank">姜利阳</a> 2007-01-10 22:42 <a href="http://www.blogjava.net/site120/archive/2007/01/10/93016.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[正则表达式]-----贪婪模式与非贪婪模式 </title><link>http://www.blogjava.net/site120/archive/2006/11/29/84303.html</link><dc:creator>姜利阳</dc:creator><author>姜利阳</author><pubDate>Wed, 29 Nov 2006 03:23:00 GMT</pubDate><guid>http://www.blogjava.net/site120/archive/2006/11/29/84303.html</guid><wfw:comment>http://www.blogjava.net/site120/comments/84303.html</wfw:comment><comments>http://www.blogjava.net/site120/archive/2006/11/29/84303.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/site120/comments/commentRss/84303.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/site120/services/trackbacks/84303.html</trackback:ping><description><![CDATA[
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<span style="COLOR: #008080"> 1</span> <span style="COLOR: #000000"><br /></span><span style="COLOR: #008080"> 2</span> <span style="COLOR: #000000"></span><span style="COLOR: #008000">/*</span><span style="COLOR: #008000">*<br /></span><span style="COLOR: #008080"> 3</span> <span style="COLOR: #008000">**   author: site120<br /></span><span style="COLOR: #008080"> 4</span> <span style="COLOR: #008000">**   function : get script part from html document<br /></span><span style="COLOR: #008080"> 5</span> <span style="COLOR: #008000">*</span><span style="COLOR: #008000">*/</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080"> 6</span> <span style="COLOR: #000000"><br /></span><span style="COLOR: #008080"> 7</span> <span style="COLOR: #000000"></span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000"> loadJs </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000">(str , delayTime)<br /></span><span style="COLOR: #008080"> 8</span> <span style="COLOR: #000000">{<br /></span><span style="COLOR: #008080"> 9</span> <span style="COLOR: #000000">    </span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000"> delayTime </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> delayTime </span><span style="COLOR: #000000">||</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">100</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080">10</span> <span style="COLOR: #000000">    </span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000"> regExp_scriptTag </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> RegExp(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&lt;\\s*script([^&gt;]*)&gt;([\\s\\S]*?)&lt;/\\s*script\\s*&gt;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> , </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">gi</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br /></span><span style="COLOR: #008080">11</span> <span style="COLOR: #000000">    </span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000"> regExp_scriptAttrib_src </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> RegExp(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">\\s*src?\\s*=\\s*(\</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">([</span><span style="COLOR: #000000">^</span><span style="COLOR: #000000">\</span><span style="COLOR: #000000">"</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">^</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">\\s</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">([</span><span style="COLOR: #000000">^</span><span style="COLOR: #000000">\\s]</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">)\\s</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> , </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">gi</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br /></span><span style="COLOR: #008080">12</span> <span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">13</span> <span style="COLOR: #000000">    var arr_scriptTag = null;<br /></span><span style="COLOR: #008080">14</span> <span style="COLOR: #000000">    var arr_scriptAttib = null;<br /></span><span style="COLOR: #008080">15</span> <span style="COLOR: #000000">    <br /></span><span style="COLOR: #008080">16</span> <span style="COLOR: #000000">    var scriptData = </span><span style="COLOR: #000000">""</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080">17</span> <span style="COLOR: #000000">    var jsList = new Array();<br /></span><span style="COLOR: #008080">18</span> <span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">19</span> <span style="COLOR: #000000">    while ((arr_scriptTag=regExp_scriptTag.exec(str)) != null)<br /></span><span style="COLOR: #008080">20</span> <span style="COLOR: #000000">    {<br /></span><span style="COLOR: #008080">21</span> <span style="COLOR: #000000">        while ((arr_scriptAttib=regExp_scriptAttrib_src.exec(arr_scriptTag[1])) != null)<br /></span><span style="COLOR: #008080">22</span> <span style="COLOR: #000000">        { <br /></span><span style="COLOR: #008080">23</span> <span style="COLOR: #000000">            if (arr_scriptAttib[3])<br /></span><span style="COLOR: #008080">24</span> <span style="COLOR: #000000">            {<br /></span><span style="COLOR: #008080">25</span> <span style="COLOR: #000000">                jsList.push(arr_scriptAttib[3]);<br /></span><span style="COLOR: #008080">26</span> <span style="COLOR: #000000">            }<br /></span><span style="COLOR: #008080">27</span> <span style="COLOR: #000000">            else if (arr_scriptAttib[2])<br /></span><span style="COLOR: #008080">28</span> <span style="COLOR: #000000">            {<br /></span><span style="COLOR: #008080">29</span> <span style="COLOR: #000000">                jsList.push(arr_scriptAttib[2]);<br /></span><span style="COLOR: #008080">30</span> <span style="COLOR: #000000">            }<br /></span><span style="COLOR: #008080">31</span> <span style="COLOR: #000000">            else<br /></span><span style="COLOR: #008080">32</span> <span style="COLOR: #000000">            {<br /></span><span style="COLOR: #008080">33</span> <span style="COLOR: #000000">                jsList.push(arr_scriptAttib[1]);<br /></span><span style="COLOR: #008080">34</span> <span style="COLOR: #000000">            }<br /></span><span style="COLOR: #008080">35</span> <span style="COLOR: #000000">        }<br /></span><span style="COLOR: #008080">36</span> <span style="COLOR: #000000">        scriptData += (arr_scriptTag[2]);<br /></span><span style="COLOR: #008080">37</span> <span style="COLOR: #000000">    }<br /></span><span style="COLOR: #008080">38</span> <span style="COLOR: #000000">    <br /></span><span style="COLOR: #008080">39</span> <span style="COLOR: #000000">    <br /></span><span style="COLOR: #008080">40</span> <span style="COLOR: #000000">    for (var i=0; i&lt;jsList.length; i++)<br /></span><span style="COLOR: #008080">41</span> <span style="COLOR: #000000">    {<br /></span><span style="COLOR: #008080">42</span> <span style="COLOR: #000000">        var script = document.createElement(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">script</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br /></span><span style="COLOR: #008080">43</span> <span style="COLOR: #000000">        script.src = jsList[i];<br /></span><span style="COLOR: #008080">44</span> <span style="COLOR: #000000">        document.body.appendChild(script);<br /></span><span style="COLOR: #008080">45</span> <span style="COLOR: #000000">    }<br /></span><span style="COLOR: #008080">46</span> <span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">47</span> <span style="COLOR: #000000">    if (scriptData.length &gt; 0)<br /></span><span style="COLOR: #008080">48</span> <span style="COLOR: #000000">    {<br /></span><span style="COLOR: #008080">49</span> <span style="COLOR: #000000">        var fn = </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">_siteFunction_</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> + new Date().getTime() + </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">_</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> + parseInt(Math.random()*10000) + </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">_120</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080">50</span> <span style="COLOR: #000000">        scriptData = </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> + fn + </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000">(){ </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> + scriptData + </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> };  </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">+fn+</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">();</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">51</span> <span style="COLOR: #000000">        <br /></span><span style="COLOR: #008080">52</span> <span style="COLOR: #000000">        window.eval(scriptData);<br /></span><span style="COLOR: #008080">53</span> <span style="COLOR: #000000">    }<br /></span><span style="COLOR: #008080">54</span> <span style="COLOR: #000000">}<br /></span><span style="COLOR: #008080">55</span> <span style="COLOR: #000000"></span></div>
		<br />
		<p>
				<font size="2">这是用Js的处理正则表达式来获取符合条件的特定内容，原理与Java一样，</font>
		</p>
		<p>
				<font size="2">功能是读取一段网页源代码，并将它里面所有的script标签，截取,加载, 并运行。</font>
		</p>
		<p>
				<font size="2">这里面的 <strong>[\s\S]*?</strong> 利用<strong>非贪婪模式</strong>来匹配<strong>最近</strong>script标签之间的所有代码。包括换行</font>
		</p>
<img src ="http://www.blogjava.net/site120/aggbug/84303.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/site120/" target="_blank">姜利阳</a> 2006-11-29 11:23 <a href="http://www.blogjava.net/site120/archive/2006/11/29/84303.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>