﻿<?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/CopyHoo/category/36472.html</link><description>不懂，慢慢懂。</description><language>zh-cn</language><lastBuildDate>Thu, 18 Dec 2008 17:57:31 GMT</lastBuildDate><pubDate>Thu, 18 Dec 2008 17:57:31 GMT</pubDate><ttl>60</ttl><item><title>获取当前节点 - 通过事件来获取。</title><link>http://www.blogjava.net/CopyHoo/articles/247026.html</link><dc:creator>CopyHoo</dc:creator><author>CopyHoo</author><pubDate>Thu, 18 Dec 2008 01:30:00 GMT</pubDate><guid>http://www.blogjava.net/CopyHoo/articles/247026.html</guid><wfw:comment>http://www.blogjava.net/CopyHoo/comments/247026.html</wfw:comment><comments>http://www.blogjava.net/CopyHoo/articles/247026.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/CopyHoo/comments/commentRss/247026.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/CopyHoo/services/trackbacks/247026.html</trackback:ping><description><![CDATA[FROM： <a href="http://topic.csdn.net/u/20081015/00/a4588ce0-5c8d-4684-b8fb-a41a3975dc8b.html">http://topic.csdn.net/u/20081015/00/a4588ce0-5c8d-4684-b8fb-a41a3975dc8b.html</a><br />
<br />
我的任务是这样的<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"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">table</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">tr</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">td</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">要获取的内容</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">td</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">td</span><span style="color: #0000ff">&gt;&lt;</span><span style="color: #800000">a&nbsp;</span><span style="color: #ff0000">href</span><span style="color: #0000ff">=javascript:getcontent()</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">点击获取</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">a</span><span style="color: #0000ff">&gt;&lt;/</span><span style="color: #800000">td</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">tr</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">table</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br />
<img id="Codehighlighter1_125_250_Open_Image" onclick="this.style.display='none'; Codehighlighter1_125_250_Open_Text.style.display='none'; Codehighlighter1_125_250_Closed_Image.style.display='inline'; Codehighlighter1_125_250_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_125_250_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_125_250_Closed_Text.style.display='none'; Codehighlighter1_125_250_Open_Image.style.display='inline'; Codehighlighter1_125_250_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">script&nbsp;</span><span style="color: #ff0000">language</span><span style="color: #0000ff">="javascript"</span><span style="color: #0000ff">&gt;</span><span id="Codehighlighter1_125_250_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 alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_125_250_Open_Text"><span style="color: #000000; background-color: #f5f5f5"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #0000ff; background-color: #f5f5f5">var</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;curNode&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;document.elementFromPoint(event.x,event.y);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />alert&nbsp;(&nbsp;curNode.parentElement.parentElement.firstChild.innerText);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">script</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></div>
<br />
这个程序很简单的了。就是点击的时候获取上一个目录里面的内容。 <br />
<br />
当我点击的时候，却提示我 &#8220;Error:缺少对象&#8221;。请高手解释一下，如何获得当前位置，希望能在ie和firefox中都通过。 <br />
<br />
<br />
我知道迅雷右键菜单中用到了 <br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; var srcEvent = external.menuArguments.event; <br />
var EventElement; <br />
<br />
if(typeof(srcEvent.clientX) == "undefined") <br />
{ <br />
EventElement = external.menuArguments.document.elementFromPoint ( srcEvent.pointerX, srcEvent.pointerY ); <br />
} <br />
else <br />
{ <br />
EventElement = external.menuArguments.document.elementFromPoint ( srcEvent.clientX, srcEvent.clientY ); <br />
} <br />
<br />
来获取右键菜单的位置，但是我不知道如何左键该如何做，谢谢大家。 <br />
<br />
<br />
答案：<br />
var curNode = document.activeElement<br />
<br />
真正准确的答案：<br />
以下可以获取： <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"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">table</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">tr</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">td</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">要获取的内容</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">td</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">td</span><span style="color: #0000ff">&gt;&lt;</span><span style="color: #800000">a&nbsp;</span><span style="color: #ff0000">onclick</span><span style="color: #0000ff">=javascript:getcontent()</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">点击获取</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">a</span><span style="color: #0000ff">&gt;&lt;/</span><span style="color: #800000">td</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">tr</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">table</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br />
<img id="Codehighlighter1_152_302_Open_Image" onclick="this.style.display='none'; Codehighlighter1_152_302_Open_Text.style.display='none'; Codehighlighter1_152_302_Closed_Image.style.display='inline'; Codehighlighter1_152_302_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_152_302_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_152_302_Closed_Text.style.display='none'; Codehighlighter1_152_302_Open_Image.style.display='inline'; Codehighlighter1_152_302_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">script&nbsp;</span><span style="color: #ff0000">language</span><span style="color: #0000ff">="javascript"</span><span style="color: #0000ff">&gt;</span><span id="Codehighlighter1_152_302_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 alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_152_302_Open_Text"><span style="color: #000000; background-color: #f5f5f5"><br />
<img id="Codehighlighter1_174_301_Open_Image" onclick="this.style.display='none'; Codehighlighter1_174_301_Open_Text.style.display='none'; Codehighlighter1_174_301_Closed_Image.style.display='inline'; Codehighlighter1_174_301_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_174_301_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_174_301_Closed_Text.style.display='none'; Codehighlighter1_174_301_Open_Image.style.display='inline'; Codehighlighter1_174_301_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" /></span><span style="color: #0000ff; background-color: #f5f5f5">function</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;getcontent()</span><span id="Codehighlighter1_174_301_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 alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_174_301_Open_Text"><span style="color: #000000; background-color: #f5f5f5">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #0000ff; background-color: #f5f5f5">var</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;curNode&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;document.elementFromPoint(event.x,event.y);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />alert&nbsp;(&nbsp;curNode.parentElement.parentElement.firstChild.innerText);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="color: #000000; background-color: #f5f5f5"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">script</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></div>
<br />
以下不能获取： <br />
<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"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">table</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">tr</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">td</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">要获取的内容</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">td</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">td</span><span style="color: #0000ff">&gt;&lt;</span><span style="color: #800000">a&nbsp;</span><span style="color: #ff0000">href</span><span style="color: #0000ff">=javascript:getcontent()</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">点击获取</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">a</span><span style="color: #0000ff">&gt;&lt;/</span><span style="color: #800000">td</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">tr</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">table</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br />
<img id="Codehighlighter1_149_299_Open_Image" onclick="this.style.display='none'; Codehighlighter1_149_299_Open_Text.style.display='none'; Codehighlighter1_149_299_Closed_Image.style.display='inline'; Codehighlighter1_149_299_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_149_299_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_149_299_Closed_Text.style.display='none'; Codehighlighter1_149_299_Open_Image.style.display='inline'; Codehighlighter1_149_299_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">script&nbsp;</span><span style="color: #ff0000">language</span><span style="color: #0000ff">="javascript"</span><span style="color: #0000ff">&gt;</span><span id="Codehighlighter1_149_299_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 alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_149_299_Open_Text"><span style="color: #000000; background-color: #f5f5f5"><br />
<img id="Codehighlighter1_171_298_Open_Image" onclick="this.style.display='none'; Codehighlighter1_171_298_Open_Text.style.display='none'; Codehighlighter1_171_298_Closed_Image.style.display='inline'; Codehighlighter1_171_298_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_171_298_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_171_298_Closed_Text.style.display='none'; Codehighlighter1_171_298_Open_Image.style.display='inline'; Codehighlighter1_171_298_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" /></span><span style="color: #0000ff; background-color: #f5f5f5">function</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;getcontent()</span><span id="Codehighlighter1_171_298_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 alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_171_298_Open_Text"><span style="color: #000000; background-color: #f5f5f5">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #0000ff; background-color: #f5f5f5">var</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;curNode&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;document.elementFromPoint(event.x,event.y);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />alert&nbsp;(&nbsp;curNode.parentElement.parentElement.firstChild.innerText);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="color: #000000; background-color: #f5f5f5"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">script</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></div>
两者的区别在于，第一个用的是 onclick ，第二个用的是 href . <br />
<br />
楼上的老大告诉一下为什么啊<br />
<br />
<br />
<br />
都是调用 JS 函数，区别咋这么大呢？<br />
<br />
我自己测试了一下。<br />
也就是楼主的疑问，说为什么用 href 就不能获得正确的结果，而 onclick 确实可以的？<br />
呵呵。。我就对事件源进行 alert(e); 果然不出所料， href 的时候， alert(e) ;&nbsp; //output "null"<br />
也就是说 href 并没有产生是事件，而你用 onclick 就是产生了 click 事件。！<br />
<br />
<img src ="http://www.blogjava.net/CopyHoo/aggbug/247026.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/CopyHoo/" target="_blank">CopyHoo</a> 2008-12-18 09:30 <a href="http://www.blogjava.net/CopyHoo/articles/247026.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>1、在Baidu空间中的发现</title><link>http://www.blogjava.net/CopyHoo/articles/246270.html</link><dc:creator>CopyHoo</dc:creator><author>CopyHoo</author><pubDate>Sun, 14 Dec 2008 13:30:00 GMT</pubDate><guid>http://www.blogjava.net/CopyHoo/articles/246270.html</guid><wfw:comment>http://www.blogjava.net/CopyHoo/comments/246270.html</wfw:comment><comments>http://www.blogjava.net/CopyHoo/articles/246270.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/CopyHoo/comments/commentRss/246270.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/CopyHoo/services/trackbacks/246270.html</trackback:ping><description><![CDATA[转自: <font style="background-color: #cce8cc">http://www.itokit.com/web/13/2008/11/11634.html</font><br />
<br />
超链接的href 和onclick引发的思考.<br />
<strong>1、在Baidu空间中的发现</strong><br />
空间是一个功能简洁的Blog，但是它提供操作是比较方便的，一些常用的功能都使用模拟窗口作为界面，而不是要页面跳转或者新开窗口。<font style="font-size: 0px; color: #fff">&amp; f* P- W- {0 r) f# s</font><br />
我从HTML代码里面找到了创建分类的链接代码：<br />
<font style="font-size: 0px; color: #fff">E% F</font><br />
&lt;a href=&#8221;/heero0w/creat/category/&#8221; target=&#8221;_blank&#8221; onClick=&#8221;openaddcat(&#8217;/heero0w/creat/category/&#8217;);return false;&#8221; tabindex=&#8221;-1&#8243;&gt;增加新分类&lt;/a&gt;<font style="font-size: 0px; color: #fff">: <br />
</font>这是一种非常健壮的代码结构，onclick里面的javascript代码执行后返回了false，相当于链接功能被屏蔽。但是，当 javascript被禁用或者onclick里面的代码执行出错时，链接功能还是正常的。当网速很慢导致openaddcat函数的代码还未被读取时，单击链接就会弹出了一个新页面。因此，用户点击这个链接之后就不会出现什么都没发生的情况，提高了用户体验<br />
<strong>2、用同样的思路进行SEO优化</strong><br />
某些网站的列表页使用了AJAX进行分页，即换页的时候只刷新列表的部分，而不是整页刷新。代码可能是<br />
&lt;a href=&#8221;###&#8221; onclick=&#8221;jumpPage(2)&#8221;&gt;第二页&lt;/a&gt;<br />
<br />
这种方式向来有一种缺点：SEO非常糟糕。搜索引擎基本上是不认识Javascript代码的，所以它搜不到除了第一页之后的内容。按照上面的思路，我们需要给href加上一个有意义的链接，让搜索引擎可以搜到该页。改进如下：&lt;a href=&#8221;?page=2&#8243; onclick=&#8221;jumpPage(2);return false;&#8221;&gt;第二页&lt;/a&gt;<font style="font-size: 0px; color: #fff">' <br />
</font>当然，这样写的前提是做两份页面，一份是AJAX分页时的处理请求的页面，另一份是常规分页页面。<br />
<br />
<strong>3、改进</strong><br />
上面的链接代码不符合HTML与Javascript分离的原则，而且在openaddcat未被读取时按下链接的时候会导致浏览器报错（虽然功能正常），改进的方法是后期动态添加事件。HTML修改如下：<br />
&lt;a href=&#8221;/heero0w/creat/category/&#8221; id=&#8221;newCate&#8221; target=&#8221;_blank&#8221; tabindex=&#8221;-1&#8243;&gt;增加新分类&lt;/a&gt;<br />
在页面底部写上添加事件的脚本：[code]var newCate = document.getElementById(&#8221;newCate&#8221;);<br />
var createCategory = function(e) {<br />
&nbsp; openaddcat(&#8217;/heero0w/creat/category/');<br />
e = e || event;<br />
e.preventDefault ? e.preventDefault() : e.returnValue = false;<br />
return false;<br />
};<br />
if (newCate.addEventListener) {&nbsp;<br />
&nbsp; &nbsp; newCate.addEventListener(&#8221;click&#8221;, createCategory, false);<br />
} else if (newCate.attachEvent) {<br />
newCate.attachEvent(&#8221;onclick&#8221;, createCategory);<font style="font-size: 0px; color: #fff">! </font><br />
}[/code]<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<img src ="http://www.blogjava.net/CopyHoo/aggbug/246270.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/CopyHoo/" target="_blank">CopyHoo</a> 2008-12-14 21:30 <a href="http://www.blogjava.net/CopyHoo/articles/246270.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何让 href 失效。</title><link>http://www.blogjava.net/CopyHoo/articles/246251.html</link><dc:creator>CopyHoo</dc:creator><author>CopyHoo</author><pubDate>Sun, 14 Dec 2008 11:04:00 GMT</pubDate><guid>http://www.blogjava.net/CopyHoo/articles/246251.html</guid><wfw:comment>http://www.blogjava.net/CopyHoo/comments/246251.html</wfw:comment><comments>http://www.blogjava.net/CopyHoo/articles/246251.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/CopyHoo/comments/commentRss/246251.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/CopyHoo/services/trackbacks/246251.html</trackback:ping><description><![CDATA[<p><font style="background-color: #cce8cc">&nbsp;合理使用 return&nbsp; false; <br />
注意其中的原理:<br />
<br />
<br />
</font></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"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">a&nbsp;</span><span style="color: #ff0000">href</span><span style="color: #0000ff">="http://www.google.cn"</span><span style="color: #ff0000">&nbsp;onclick</span><span style="color: #0000ff">="return&nbsp;myclick();"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">链接到谷歌</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">a</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br />
<img id="Codehighlighter1_101_175_Open_Image" onclick="this.style.display='none'; Codehighlighter1_101_175_Open_Text.style.display='none'; Codehighlighter1_101_175_Closed_Image.style.display='inline'; Codehighlighter1_101_175_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_101_175_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_101_175_Closed_Text.style.display='none'; Codehighlighter1_101_175_Open_Image.style.display='inline'; Codehighlighter1_101_175_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">script&nbsp;</span><span style="color: #ff0000">type</span><span style="color: #0000ff">="text/javascript"</span><span style="color: #0000ff">&gt;</span><span id="Codehighlighter1_101_175_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 alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_101_175_Open_Text"><span style="color: #000000; background-color: #f5f5f5"><br />
<img id="Codehighlighter1_123_174_Open_Image" onclick="this.style.display='none'; Codehighlighter1_123_174_Open_Text.style.display='none'; Codehighlighter1_123_174_Closed_Image.style.display='inline'; Codehighlighter1_123_174_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_123_174_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_123_174_Closed_Text.style.display='none'; Codehighlighter1_123_174_Open_Image.style.display='inline'; Codehighlighter1_123_174_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">function</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;myclick()</span><span id="Codehighlighter1_123_174_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 alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_123_174_Open_Text"><span style="color: #000000; background-color: #f5f5f5">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert('呵呵，我失效了吗？');<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">return</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">false</span><span style="color: #000000; background-color: #f5f5f5">;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000; background-color: #f5f5f5"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">script</span><span style="color: #0000ff">&gt;</span></div>
<br />
<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"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">a&nbsp;</span><span style="color: #ff0000">href</span><span style="color: #0000ff">="javascript:goto();"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">链接失效咯。</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">a</span><span style="color: #0000ff">&gt;</span></div>
<br />
================================<br />
<br />
&lt;html&gt; &nbsp; <br />
&nbsp; &lt;head&gt; &nbsp; <br />
&nbsp; &lt;/head&gt; &nbsp; <br />
&nbsp; &lt;body&gt; &nbsp; <br />
&nbsp; &lt;a &nbsp; href="http://www.sina.com"&gt;连接&lt;/a&gt; &nbsp; <br />
&nbsp; &lt;input &nbsp; type=button &nbsp; value="dian"&gt; &nbsp; <br />
&nbsp; &lt;/body&gt; &nbsp; <br />
&nbsp; &lt;/html&gt; &nbsp; <br />
&nbsp; &nbsp; <br />
&nbsp; 当点击button后 &nbsp; ，如何使上面超链接无效？？&nbsp;&nbsp; <br />
<br />
<br />
&lt;a &nbsp; href="http://www.sina.com" &nbsp; id="mylink"&gt;连接&lt;/a&gt; &nbsp; <br />
&nbsp; &lt;input &nbsp; type=button &nbsp; value="dian" &nbsp; onclick="mylink.href='#'"&gt;&nbsp;&nbsp; <br />
<br />
&lt;html&gt; &nbsp; <br />
&nbsp; &lt;head&gt; &nbsp; <br />
&nbsp; &lt;/head&gt; &nbsp; <br />
&nbsp; &lt;body&gt; &nbsp; <br />
&nbsp; &lt;a &nbsp; href="http://www.sina.com"&gt;连接&lt;/a&gt; &nbsp; <br />
&nbsp; &lt;input &nbsp; type=button &nbsp; value="dian" &nbsp; onclick="mylink.href=''"&gt; &nbsp; <br />
&nbsp; &lt;/body&gt; &nbsp; <br />
&nbsp; &lt;/html&gt;<br />
<br />
&lt;html&gt; &nbsp; <br />
&nbsp; &lt;head&gt; &nbsp; <br />
&nbsp; &lt;SCRIPT &nbsp; LANGUAGE="JavaScript"&gt; &nbsp; <br />
&nbsp; &lt;!-- &nbsp; <br />
&nbsp; function &nbsp; test(){ &nbsp; <br />
&nbsp; aaa.disabled=true; &nbsp; <br />
&nbsp; aaa.onclick=function(){return &nbsp; false} &nbsp; <br />
&nbsp; } &nbsp; <br />
&nbsp; //--&gt; &nbsp; <br />
&nbsp; &lt;/SCRIPT&gt; &nbsp; <br />
&nbsp; &lt;/head&gt; &nbsp; <br />
&nbsp; &lt;body&gt; &nbsp; <br />
&nbsp; &lt;a &nbsp; href="http://www.sina.com" &nbsp; id=aaa&gt;连接&lt;/a&gt; &nbsp; <br />
&nbsp; &lt;input &nbsp; type=button &nbsp; value="dian" &nbsp; onclick="test()"&gt; &nbsp; <br />
&nbsp; &lt;/body&gt; &nbsp; <br />
&nbsp; &lt;/html&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
这一个比较经典，我，曾经见过！！！<br />
&lt;a &nbsp; href="http://www.sina.com" &nbsp; id="mylink"&gt;连接&lt;/a&gt; &nbsp; <br />
&nbsp; &lt;input &nbsp; type=button &nbsp; value="dian" &nbsp; ID=Button1 &nbsp; onclick="document.links('mylink').outerHTML='连接';"&gt;<br />
<br />
&lt;a &nbsp; href="http://www.sina.com" &nbsp; id="mylink"&gt;连接&lt;/a&gt; &nbsp; <br />
&nbsp; &lt;input &nbsp; type=button &nbsp; value="dian" &nbsp; ID=Button1 &nbsp; onclick="document.links('mylink').disabled=!document.links('mylink').disabled;"&gt; <br />
<br />
&lt;html&gt; &nbsp; <br />
&nbsp; &lt;head&gt; &nbsp; <br />
&nbsp; &lt;script &nbsp; language="javascript"&gt; &nbsp; <br />
&nbsp; function &nbsp; Disable(){ &nbsp; <br />
&nbsp; var &nbsp; strTxt=mylink.innerText; &nbsp; <br />
&nbsp; mylink.outerHTML="&lt;font &nbsp; id='mylink' &nbsp; color='black'&gt;"+strTxt+"&lt;/font&gt;"; &nbsp; <br />
&nbsp; } &nbsp; <br />
&nbsp; &lt;/script&gt; &nbsp; <br />
&nbsp; &lt;/head&gt; &nbsp; <br />
&nbsp; &lt;body&gt; &nbsp; <br />
&nbsp; &lt;a &nbsp; id="mylink" &nbsp; href="http://www.sina.com"&gt;连接&lt;/a&gt; &nbsp; <br />
&nbsp; &lt;input &nbsp; type=button &nbsp; value="dian" &nbsp; onclick="Disable()"&gt; &nbsp; <br />
&nbsp; &lt;/body&gt; &nbsp; <br />
&nbsp; &lt;/html&gt;<br />
<br />
============================================<br />
这是一个很经典的通过 css 来控制的：<br />
<br />
<font style="background-color: #cce8cc">&lt;HTML&gt; &lt;HEAD&gt; <br />
&lt;meta http-equiv="Content-Language" content="zh-cn"&gt;<br />
&nbsp;&lt;TITLE&gt;建站学|www.jzxue.com|---让网页上的超链接失效，不能点击&lt;/TITLE&gt; <br />
&lt;style&gt; a {poorfish:expression(this.onclick=function kill(){return false})} &lt;/style&gt;<br />
&nbsp;&lt;/HEAD&gt;<br />
&nbsp;&lt;BODY&gt; <br />
&lt;p&gt;&lt;a target="_blank" href="http://www.jzxue.com"&gt;建站学&lt;/a&gt;&lt;/p&gt;<br />
&nbsp;&lt;p&gt;<br />
&lt;a href="http://www.163.com"&gt;www.163.com&lt;/a&gt;<br />
&lt;/p&gt;<br />
&nbsp;&lt;p&gt;<br />
&lt;a href="http://www.sohu.com"&gt;www.sohu.com&lt;/a&gt;&lt;/p&gt; &lt;p&gt;　<br />
&lt;/p&gt;<br />
&nbsp;&lt;/BODY&gt; <br />
&lt;/HTML&gt; <br />
<br />
===================================<br />
在开发中时常会遇到这样的需求:让某些描述信息(这些描述信息已经进行过安全html过滤,所以不会包含Javascript等脚本语言,但是允许正常的链接)里的链接失效,但是不要或者这些描述信息.如要以下代码块里的链接失效
<p><code>&lt;div id="desc"&gt;<br />
　 &lt;a href="http://www.9i56.cn"&gt;无聊网&lt;/a&gt;<br />
&lt;/div&gt;</code></p>
<p>　　只需要再后面插入下段Javascript既可<code>&lt;script type="text/javascript"&gt;<br />
　　var elements = document.getElementById('desc').getElementsByTagName('A');<br />
　　for (var i = 0, len = elements.length; i &lt; len; ++i) {<br />
　　　　elements[i].onclick = function(){return false;};<br />
　　　　elements[i].href = "#";<br />
　　}<br />
　　var elementsArea = document.getElementById('desc').getElementsByTagName('area');<br />
　　for (var i = 0, len = elementsArea.length; i &lt; len; ++i) {<br />
　　　　elementsArea[i].onclick = function(){return false;};<br />
　　　　elementsArea[i].href = "#";<br />
　　}<br />
&lt;/script&gt;</code></p>
<p>　　目前只知道a和area标签可以放href属性来进行跳转,不知道大家还知道有其它的方式可以用href跳转吗?</p>
</font>==========================================<br />
<div class="postTitle"><a class="postTitle2" id="AjaxHolder_ctl01_TitleUrl" href="http://www.cnblogs.com/blodfox777/archive/2008/08/27/1277997.html">捕获超链接的Ctrl+Click事件(handling onclick event on a hyperlink when Ctrl key is pressed)</a> </div>
<p>（奇怪，不知道客户要这个效果做什么）</p>
<p>&nbsp;</p>
<p>效果：</p>
<p>如果点击超链接，将正常导向；</p>
<p>如果按住Ctrl键并点击超链接，将执行一段JS代码，并且浏览器不会导向或打开新页面</p>
<p>&nbsp;</p>
<div class="cnblogs_code"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008000">&lt;!--</span><span style="color: #008000">Work&nbsp;in&nbsp;IE&nbsp;6.0/7.0&nbsp;and&nbsp;FF&nbsp;3.0</span><span style="color: #008000">--&gt;</span><span style="color: #000000"><br />
</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">a&nbsp;</span><span style="color: #ff0000">href</span><span style="color: #0000ff">="#"</span><span style="color: #ff0000">&nbsp;onclick</span><span style="color: #0000ff">="if(event.ctrlKey){alert('Hello&nbsp;World!');return&nbsp;false;}window.location.href='http://www.google.com'"</span><span style="color: #ff0000">;</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">google</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">a</span><span style="color: #0000ff">&gt;</span></div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<div id="MySignature">
<p id="LyjSignature" style="border-right: #e0e0e0 1px dashed; padding-right: 10px; border-top: #e0e0e0 1px dashed; padding-left: 60px; background: url(http://www.cnblogs.com/images/cnblogs_com/lyj/o_info.png) #fffeee no-repeat 1% 50%; padding-bottom: 10px; border-left: #e0e0e0 1px dashed; padding-top: 10px; border-bottom: #e0e0e0 1px dashed; font-family: 微软雅黑"><br />
作者：<a href="http://blodfox777.cnblogs.com/" target="_blank">Lance Zhang</a>（<a href="http://blodfox777.cnblogs.com/" target="_blank">Lance Zhang's Tech Blog</a>）<br />
出处：<a href="http://blodfox777.cnblogs.com/" target="_blank">http://blodfox777.cnblogs.com/</a><br />
本文版权归作者和博客园共有，欢迎转载，但未经作者同意必须保留此段声明，且在文章页面明显位置给出原文连接，否则保留追究法律责任的权利。 </p>
</div>
<br />
<br />
以前点某个链接希望停留在本页面的时候，往往会用<strong><u>href=&#8220;#&#8221;</u></strong>来做、今天学会了用<u><strong>onclick="return false;"</strong></u>。<br />
因为解释器是根据link的onclick方法的返回值来判断是否继续操作的。<br />
<br />
这样就可以进一步提高javascript的兼容性，比如写一个弹出窗口就可以这样：<br />
&lt;a href = "http://www.javaeye.com" onclick = "window.open(......); return false;"&gt;JavaEye&lt;/a&gt;<br />
这样支持javascript的用户可以看到弹出窗口，不支持的可以直接链接到页面。<br />
<br />
在实际的测试中，firefox2可以实现，ie6不行。 <br />
<br />
<br />
=============================================<br />
一个冠冕堂皇的理由来解释为什么 onclick 返回 false 之后就可以进行使链接失效:<br />
<font style="background-color: #cce8cc">onclick="return fn()" 与onclick"fn()"有什么区别?好像两个都可以调用吧?</font>&nbsp;&nbsp;&nbsp;&nbsp;<br />
<font style="background-color: #cce8cc">返回到哪里了关键????<br />
<font style="background-color: #cce8cc">这就像一个回调函数吧.?</font><br />
<font style="background-color: #cce8cc">返回给onclick?????</font><br />
<font style="background-color: #cce8cc">回调,越来越晕了,呵呵<br />
</font><br />
<font style="background-color: #cce8cc">这就像一个回调函数吧.?<br />
</font></font><font style="background-color: #cce8cc">onclick 方法的之行需要 事件告诉他 执行还是不执行</font><br />
<br />
<p><font style="background-color: #cce8cc">因为JAVASCRIPT在事件中调用函数时用return返回值实际上是对window.event.returnvalue进行设置。 </font></p>
<p><font style="background-color: #cce8cc">而该值决定了当前操作是否继续。 <br />
当返回的是TRUE时，将继续操作。 <br />
当返回是false时，将中断操作。 </font></p>
<p><font style="background-color: #cce8cc">而直接执行时。将不会对window.event.returnvalue进行设置 <br />
所以会默认地继续执行操作 </font></p>
<p><font style="background-color: #cce8cc">当在 &lt;a href="abc.htm" onclick="return add_onclick()"&gt;open&lt;/a&gt; 中 <br />
如果函数 add_onclick() 返回 true, 那么 页面就会打开 abc.htm <br />
否则, (返回 false), 那么页面不会跳转到 abc.htm, 只会执行你的 add_onclick() 函数里的内容. (add_onclick函数中控制页面转到 abc.htm除外) </font></p>
<p><font style="background-color: #cce8cc">而 &lt;a href="abc.htm" onclick="add_onclick()"&gt;open&lt;/a&gt; <br />
不管 add_onclick() 返回什么值, 都会在执行完 add_onclick 后打开页面 abc.htm <br />
</font></p>
<br />
<br />
不过注意： 这个使链接失效的代码是不是版本兼容的，也不是浏览器兼容的。<br />
IE6 可以 ,IE7 不行。。。<br />
FireFox 据说也不行。
<img src ="http://www.blogjava.net/CopyHoo/aggbug/246251.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/CopyHoo/" target="_blank">CopyHoo</a> 2008-12-14 19:04 <a href="http://www.blogjava.net/CopyHoo/articles/246251.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JS类 检测上传图片的大小,宽,高及格式检查  -  封装控件的思想</title><link>http://www.blogjava.net/CopyHoo/articles/245816.html</link><dc:creator>CopyHoo</dc:creator><author>CopyHoo</author><pubDate>Thu, 11 Dec 2008 16:08:00 GMT</pubDate><guid>http://www.blogjava.net/CopyHoo/articles/245816.html</guid><wfw:comment>http://www.blogjava.net/CopyHoo/comments/245816.html</wfw:comment><comments>http://www.blogjava.net/CopyHoo/articles/245816.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/CopyHoo/comments/commentRss/245816.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/CopyHoo/services/trackbacks/245816.html</trackback:ping><description><![CDATA[&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;<br />
&lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;<br />
&lt;head&gt;<br />
&lt;meta http-equiv="Content-Type" content="text/html; charset=gb2312" /&gt;<br />
&lt;title&gt;无标题文档&lt;/title&gt;<br />
&lt;script&gt;
<p><font face="Courier New">&nbsp;UpLoadFileCheck=function()<br />
&nbsp;{&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;this.AllowExt=".jpg,.gif";//允许上传的文件类型 0为无限制 每个扩展名后边要加一个"," 小写字母表示 <br />
&nbsp;&nbsp;&nbsp;this.AllowImgFileSize=0;//允许上传文件的大小 0为无限制 单位：KB <br />
&nbsp;&nbsp;&nbsp;this.AllowImgWidth=0;//允许上传的图片的宽度 0为无限制　单位：px(像素) <br />
&nbsp;&nbsp;&nbsp;this.AllowImgHeight=0;//允许上传的图片的高度 0为无限制　单位：px(像素) <br />
&nbsp;&nbsp;&nbsp;this.ImgObj=new Image();<br />
&nbsp;&nbsp;&nbsp;this.ImgFileSize=0;<br />
&nbsp;&nbsp;&nbsp;this.ImgWidth=0;<br />
&nbsp;&nbsp;&nbsp;this.ImgHeight=0;<br />
&nbsp;&nbsp;&nbsp;this.FileExt="";<br />
&nbsp;&nbsp;&nbsp;this.ErrMsg="";<br />
&nbsp;&nbsp;&nbsp;this.IsImg=false;//全局变量<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;}<br />
&nbsp;<br />
&nbsp;UpLoadFileCheck.prototype.CheckExt=function(obj)<br />
&nbsp;{<br />
&nbsp;&nbsp;this.ErrMsg=""; <br />
&nbsp;&nbsp;this.ImgObj.src=obj.value; <br />
&nbsp;&nbsp;//this.HasChecked=false; &nbsp;<br />
&nbsp;&nbsp;if(obj.value=="")<br />
&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;this.ErrMsg="\n请选择一个文件";&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;else<br />
&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;this.FileExt=obj.value.substr(obj.value.lastIndexOf(".")).toLowerCase(); <br />
&nbsp;&nbsp;&nbsp;if(this.AllowExt!=0&amp;&amp;this.AllowExt.indexOf(this.FileExt)==-1)//判断文件类型是否允许上传 <br />
&nbsp;&nbsp;&nbsp;{ <br />
&nbsp;&nbsp;&nbsp;&nbsp;this.ErrMsg="\n该文件类型不允许上传。请上传 "+this.AllowExt+" 类型的文件，当前文件类型为"+this.FileExt; &nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;} <br />
&nbsp;&nbsp;if(this.ErrMsg!="") <br />
&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;this.ShowMsg(this.ErrMsg,false); <br />
&nbsp;&nbsp;&nbsp;return false;<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;else&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;return this.CheckProperty(obj); &nbsp;&nbsp;&nbsp;<br />
&nbsp;}<br />
&nbsp;<br />
&nbsp;UpLoadFileCheck.prototype.CheckProperty=function(obj)<br />
&nbsp;{<br />
&nbsp;&nbsp;if(this.ImgObj.readyState!="complete")//<br />
&nbsp;&nbsp;&nbsp;{ <br />
&nbsp;&nbsp;&nbsp;&nbsp;sleep(1000);//一秒使用图能完全加载&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;if(this.IsImg==true)<br />
&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;this.ImgWidth=this.ImgObj.width;//取得图片的宽度 <br />
&nbsp;&nbsp;&nbsp;this.ImgHeight=this.ImgObj.height;//取得图片的高度<br />
&nbsp;&nbsp;&nbsp;if(this.AllowImgWidth!=0&amp;&amp;this.AllowImgWidth&lt;this.ImgWidth) <br />
&nbsp;&nbsp;&nbsp;this.ErrMsg=this.ErrMsg+"\n图片宽度超过限制。请上传宽度小于"+this.AllowImgWidth+"px的文件，当前图片宽度为"+this.ImgWidth+"px"; <br />
&nbsp;<br />
&nbsp;&nbsp;&nbsp;if(this.AllowImgHeight!=0&amp;&amp;this.AllowImgHeight&lt;this.ImgHeight) <br />
&nbsp;&nbsp;&nbsp;this.ErrMsg=this.ErrMsg+"\n图片高度超过限制。请上传高度小于"+this.AllowImgHeight+"px的文件，当前图片高度为"+this.ImgHeight+"px";&nbsp; <br />
&nbsp;&nbsp;}<br />
&nbsp;<br />
&nbsp;&nbsp;this.ImgFileSize=Math.round(this.ImgObj.fileSize/1024*100)/100;//取得图片文件的大小 &nbsp;<br />
&nbsp;&nbsp;if(this.AllowImgFileSize!=0&amp;&amp;this.AllowImgFileSize&lt;this.ImgFileSize) <br />
&nbsp;&nbsp;&nbsp;this.ErrMsg=this.ErrMsg+"\n文件大小超过限制。请上传小于"+this.AllowImgFileSize+"KB的文件，当前文件大小为"+this.ImgFileSize+"KB"; <br />
&nbsp;<br />
&nbsp;&nbsp;if(this.ErrMsg!="") <br />
&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;this.ShowMsg(this.ErrMsg,false); <br />
&nbsp;&nbsp;&nbsp;return false;<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;else <br />
&nbsp;&nbsp;&nbsp;return true; <br />
&nbsp;}&nbsp;<br />
&nbsp;<br />
&nbsp;UpLoadFileCheck.prototype.ShowMsg=function(msg,tf)//显示提示信息 tf=false 显示错误信息 msg-信息内容 <br />
&nbsp;{ <br />
&nbsp;&nbsp;/*msg=msg.replace("\n","&lt;li&gt;"); <br />
&nbsp;&nbsp;msg=msg.replace(/\n/gi,"&lt;li&gt;"); <br />
&nbsp;&nbsp; */<br />
&nbsp;&nbsp;alert(msg);<br />
&nbsp;}<br />
&nbsp;function&nbsp;&nbsp; sleep(num)&nbsp;&nbsp; <br />
&nbsp;&nbsp; {&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; var&nbsp;&nbsp; tempDate=new&nbsp;&nbsp; Date();&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; var&nbsp;&nbsp; tempStr="";&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; var&nbsp;&nbsp; theXmlHttp&nbsp;&nbsp; =&nbsp;&nbsp; new&nbsp;&nbsp; ActiveXObject(&nbsp;&nbsp; "Microsoft.XMLHTTP"&nbsp;&nbsp; );&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; while((new&nbsp;&nbsp; Date()-tempDate)&lt;num&nbsp;&nbsp; )&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; {&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; tempStr+="\n"+(new&nbsp;&nbsp; Date()-tempDate);&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; try{&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; theXmlHttp&nbsp;&nbsp; .open(&nbsp;&nbsp; "get",&nbsp;&nbsp; "about:blank?JK="+Math.random(),&nbsp;&nbsp; false&nbsp;&nbsp; );&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; theXmlHttp&nbsp;&nbsp; .send();&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; catch(e){;}&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp; <br />
&nbsp;&nbsp; //containerDiv.innerText=tempStr;&nbsp;&nbsp; <br />
&nbsp;&nbsp; return;&nbsp;&nbsp; <br />
&nbsp;&nbsp; }&nbsp;&nbsp; </font></p>
<p><font face="Courier New">&nbsp;function c(obj)<br />
&nbsp;{<br />
&nbsp;&nbsp;var d=new UpLoadFileCheck(); <br />
&nbsp;&nbsp;d.IsImg=true;<br />
&nbsp;&nbsp;d.AllowImgFileSize=100;<br />
&nbsp;&nbsp;d.CheckExt(obj)<br />
&nbsp;}<br />
&lt;/script&gt;</font></p>
<p><font face="Courier New">&lt;/head&gt;</font></p>
<p><font face="Courier New">&lt;body&gt;<br />
&lt;input name="" type="file"&nbsp;&nbsp; onchange="c(this)"/&gt;</font></p>
<p><font face="Courier New"><br />
&lt;/body&gt;<br />
<br />
<font face="Courier New"><span style="color: red"><font face="Courier New"><a href="http://files.cnblogs.com/solucky/Untitled-2.rar"><font face="Courier New"><span style="color: red"><font face="Courier New">下载源程序:</font></span></font></a></font></span></font><br />
&lt;/html&gt;</font></p>
<img src ="http://www.blogjava.net/CopyHoo/aggbug/245816.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/CopyHoo/" target="_blank">CopyHoo</a> 2008-12-12 00:08 <a href="http://www.blogjava.net/CopyHoo/articles/245816.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>js 判断上传文件类型</title><link>http://www.blogjava.net/CopyHoo/articles/245815.html</link><dc:creator>CopyHoo</dc:creator><author>CopyHoo</author><pubDate>Thu, 11 Dec 2008 15:59:00 GMT</pubDate><guid>http://www.blogjava.net/CopyHoo/articles/245815.html</guid><wfw:comment>http://www.blogjava.net/CopyHoo/comments/245815.html</wfw:comment><comments>http://www.blogjava.net/CopyHoo/articles/245815.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/CopyHoo/comments/commentRss/245815.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/CopyHoo/services/trackbacks/245815.html</trackback:ping><description><![CDATA[<span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;Check_FileType(str)<br />
<img id="Codehighlighter1_29_319_Open_Image" onclick="this.style.display='none'; Codehighlighter1_29_319_Open_Text.style.display='none'; Codehighlighter1_29_319_Closed_Image.style.display='inline'; Codehighlighter1_29_319_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_29_319_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_29_319_Closed_Text.style.display='none'; Codehighlighter1_29_319_Open_Image.style.display='inline'; Codehighlighter1_29_319_Open_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span id="Codehighlighter1_29_319_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.cnblogs.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_29_319_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;pos&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;str.lastIndexOf(</span><span style="color: #000000">"</span><span style="color: #000000">.</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;lastname&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;str.substring(pos,str.length)&nbsp;&nbsp;<span style="color: #808080">//此处文件后缀名也可用数组方式获得str.split(".") <br />
</span><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(lastname.toLowerCase()</span><span style="color: #000000">!=</span><span style="color: #000000">"</span><span style="color: #000000">.jpg</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">&amp;&amp;</span><span style="color: #000000">&nbsp;lastname.toLowerCase()</span><span style="color: #000000">!=</span><span style="color: #000000">"</span><span style="color: #000000">.gif</span><span style="color: #000000">"</span><span style="color: #000000">)<br />
<img id="Codehighlighter1_182_289_Open_Image" onclick="this.style.display='none'; Codehighlighter1_182_289_Open_Text.style.display='none'; Codehighlighter1_182_289_Closed_Image.style.display='inline'; Codehighlighter1_182_289_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_182_289_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_182_289_Closed_Text.style.display='none'; Codehighlighter1_182_289_Open_Image.style.display='inline'; Codehighlighter1_182_289_Open_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;</span><span id="Codehighlighter1_182_289_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.cnblogs.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_182_289_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp; 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">lastname</span><span style="color: #000000">+</span><span style="color: #000000">"</span><span style="color: #000000">，图片必须为.jpg,.gif类型</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.myform.pic.focus();<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">false</span><span style="color: #000000">;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000">&nbsp;<br />
<img id="Codehighlighter1_299_317_Open_Image" onclick="this.style.display='none'; Codehighlighter1_299_317_Open_Text.style.display='none'; Codehighlighter1_299_317_Closed_Image.style.display='inline'; Codehighlighter1_299_317_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_299_317_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_299_317_Closed_Text.style.display='none'; Codehighlighter1_299_317_Open_Image.style.display='inline'; Codehighlighter1_299_317_Open_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;</span><span id="Codehighlighter1_299_317_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.cnblogs.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_299_317_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">true</span><span style="color: #000000">;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span>
<img src ="http://www.blogjava.net/CopyHoo/aggbug/245815.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/CopyHoo/" target="_blank">CopyHoo</a> 2008-12-11 23:59 <a href="http://www.blogjava.net/CopyHoo/articles/245815.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>javascript 弱弱的限制上传文件大小（一定要服务器再判断一遍。）</title><link>http://www.blogjava.net/CopyHoo/articles/245813.html</link><dc:creator>CopyHoo</dc:creator><author>CopyHoo</author><pubDate>Thu, 11 Dec 2008 15:51:00 GMT</pubDate><guid>http://www.blogjava.net/CopyHoo/articles/245813.html</guid><wfw:comment>http://www.blogjava.net/CopyHoo/comments/245813.html</wfw:comment><comments>http://www.blogjava.net/CopyHoo/articles/245813.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/CopyHoo/comments/commentRss/245813.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/CopyHoo/services/trackbacks/245813.html</trackback:ping><description><![CDATA[<br />
准备一个在客户端判断上传文件大小，限制大小的好方法，但是实在没有找到，<br />
因为即使你用&nbsp; Ajax ,可能结果还没有返回，表单就已经被提交了。。。<br />
所以服务器必须重新判断。。。。<br />
<br />
以下为弱弱的判断。。<br />
<p>&lt;form name=Myform onsubmit="return CheckFileSize()"&gt; <br />
&lt;input type=file name=photo&gt;&lt;br/&gt; <br />
&lt;input type=submit value=submit&gt;&lt;/form&gt; <br />
<br />
&lt;SCRIPT LANGUAGE="JavaScript"&gt;&lt;!-- <br />
function CheckFileSize() <br />
{ <br />
var s = document.Myform.photo.value; <br />
if(s==" ")return false; <br />
var img = new Image(); <br />
img.src = s; <br />
alert("高 = " img.height "n宽 = " img.width); <br />
alert("fileSize = " img.fileSize " 字节"); <br />
return false; <br />
} <br />
//--&gt;&lt;/SCRIPT&gt; </p>
<p>应用了javascript和在IE下img本身的fileSize属性。另外img还有其他的几个属性，如fileCreatedDate、fileModifiedDate、fileSize、fileUpdatedDate、filters，我们可以通过这些属性来获取图片文件的部分信息，如文件大小，我们用file表单同img标签结合，就能够在上传之前判断图片文件的大小是否合法了。<br />
<br />
限制：&lt;input type="text" size="4" value="10" name="fileSizeLimit" id="fileSizeLimit"/&gt; K<br />
&lt;input type="file" name="file1" id="file1" size="40" onchange="changeSrc(this)"/&gt;<br />
&lt;img src="about:blank" id="fileChecker" alt="test" height="18"/&gt;<br />
<br />
&lt;script type="text/javascript"&gt;<br />
var oFileChecker = document.getElementById("fileChecker");<br />
<br />
function changeSrc(filePicker)<br />
{<br />
oFileChecker.src = filePicker.value;<br />
}<br />
<br />
oFileChecker.onreadystatechange = function ()<br />
{<br />
if (oFileChecker.readyState == "complete")<br />
<br />
}<br />
<br />
function checkSize()<br />
{<br />
var limit = document.getElementById("fileSizeLimit").value * 1024;<br />
<br />
if (oFileChecker.fileSize &gt; limit)<br />
{<br />
alert("too large");<br />
}<br />
else<br />
<br />
}<br />
&lt;/script&gt; </p>
<p>我的一个项目里这样用（pendlehill）<br />
</p>
<p>function CheckFileSize() <br />
{ <br />
var FileMaxSize = 100;//限制上传的文件大小，单位(k)<br />
var s = document.RegForm.Img_1.value; <br />
//if(s==""){alert("No image,please select again!");document.RegForm.Img_1.focus(); return false;} <br />
var img = new Image(); <br />
<br />
img.src = s; <br />
<br />
if(img.fileSize&gt;FileMaxSize*1024){alert("The file size exceeds " FileMaxSize "K，please choose a smaller one!");document.RegForm.Img_1.focus();return false;}<br />
<br />
//--&gt;&lt;/SCRIPT&gt; </p>
<p>&lt;FORM action="**.asp" method="post" onSubmit="return CheckFileSize()" enctype="multipart/form-data" name="RegForm"&gt;</p>
<p>&lt;input name="Next" type="submit" class="pBttn" id="Next" value="Save"&gt;</p>
<div class="pages"><script type="text/javascript"><!-- google_ad_client="pub-7345584400661736" ;
/* 728x15, 创建于 08-4-7一起美容（文字链接） */ google_ad_slot="6959625474" ; google_ad_width="728;
google_ad_height" = 15;
//-->
</script><script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript">
</script><script>window.google_render_ad();</script><iframe name="google_ads_frame" marginwidth="0" marginheight="0" src="http://googleads.g.doubleclick.net/pagead/ads?client=ca-pub-7345584400661736&amp;dt=1229010062937&amp;lmt=1229010062&amp;prev_slotnames=6079382880&amp;output=html&amp;slotname=6959625474&amp;correlator=1229010062812&amp;url=http%3A%2F%2Fblog.chinaunix.net%2Fu2%2F68125%2Fshowart_660533.html&amp;ea=0&amp;ref=http%3A%2F%2Fwww.google.cn%2Fsearch%3Fhl%3Dzh-CN%26newwindow%3D1%26q%3Djs%2B%25E9%2599%2590%25E5%2588%25B6%25E4%25B8%258A%25E4%25BC%25A0%25E6%2596%2587%25E4%25BB%25B6%25E7%259A%2584%25E5%25A4%25A7%25E5%25B0%258F%26meta%3D%26aq%3Df%26oq%3D&amp;frm=0&amp;ga_vid=1787097436.1229010063&amp;ga_sid=1229010063&amp;ga_hid=817854565&amp;flash=10.0.12.36&amp;u_h=768&amp;u_w=1024&amp;u_ah=738&amp;u_aw=1024&amp;u_cd=32&amp;u_tz=480&amp;u_java=true&amp;dtd=109" frameborder="0" width="728" scrolling="no" height="15" allowTransparency></iframe>
<p>&lt;form name=Myform onsubmit="return CheckFileSize()"&gt; <br />
&lt;input type=file name=photo&gt;&lt;br/&gt; <br />
&lt;input type=submit value=submit&gt;&lt;/form&gt; <br />
<br />
&lt;SCRIPT LANGUAGE="JavaScript"&gt;&lt;!-- <br />
function CheckFileSize() <br />
{ <br />
var s = document.Myform.photo.value; <br />
if(s==" ")return false; <br />
var img = new Image(); <br />
img.src = s; <br />
alert("高 = " img.height "n宽 = " img.width); <br />
alert("fileSize = " img.fileSize " 字节"); <br />
return false; <br />
} <br />
//--&gt;&lt;/SCRIPT&gt; </p>
<p>应用了javascript和在IE下img本身的fileSize属性。另外img还有其他的几个属性，如fileCreatedDate、fileModifiedDate、fileSize、fileUpdatedDate、filters，我们可以通过这些属性来获取图片文件的部分信息，如文件大小，我们用file表单同img标签结合，就能够在上传之前判断图片文件的大小是否合法了。<br />
<br />
限制：&lt;input type="text" size="4" value="10" name="fileSizeLimit" id="fileSizeLimit"/&gt; K<br />
&lt;input type="file" name="file1" id="file1" size="40" onchange="changeSrc(this)"/&gt;<br />
&lt;img src="about:blank" id="fileChecker" alt="test" height="18"/&gt;<br />
<br />
&lt;script type="text/javascript"&gt;<br />
var oFileChecker = document.getElementById("fileChecker");<br />
<br />
function changeSrc(filePicker)<br />
{<br />
oFileChecker.src = filePicker.value;<br />
}<br />
<br />
oFileChecker.onreadystatechange = function ()<br />
{<br />
if (oFileChecker.readyState == "complete")<br />
<br />
}<br />
<br />
function checkSize()<br />
{<br />
var limit = document.getElementById("fileSizeLimit").value * 1024;<br />
<br />
if (oFileChecker.fileSize &gt; limit)<br />
{<br />
alert("too large");<br />
}<br />
else<br />
<br />
}<br />
&lt;/script&gt; </p>
<p>我的一个项目里这样用（pendlehill）<br />
</p>
<p>function CheckFileSize() <br />
{ <br />
var FileMaxSize = 100;//限制上传的文件大小，单位(k)<br />
var s = document.RegForm.Img_1.value; <br />
//if(s==""){alert("No image,please select again!");document.RegForm.Img_1.focus(); return false;} <br />
var img = new Image(); <br />
<br />
img.src = s; <br />
<br />
if(img.fileSize&gt;FileMaxSize*1024){alert("The file size exceeds " FileMaxSize "K，please choose a smaller one!");document.RegForm.Img_1.focus();return false;}<br />
<br />
//--&gt;&lt;/SCRIPT&gt; </p>
<p>&lt;FORM action="**.asp" method="post" onSubmit="return CheckFileSize()" enctype="multipart/form-data" name="RegForm"&gt;</p>
<p>&lt;input name="Next" type="submit" class="pBttn" id="Next" value="Save"&gt;</p>
</div>
<br />
<img src ="http://www.blogjava.net/CopyHoo/aggbug/245813.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/CopyHoo/" target="_blank">CopyHoo</a> 2008-12-11 23:51 <a href="http://www.blogjava.net/CopyHoo/articles/245813.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>需要 fos 对象对客户端上传文件大小进行限制的例子</title><link>http://www.blogjava.net/CopyHoo/articles/245812.html</link><dc:creator>CopyHoo</dc:creator><author>CopyHoo</author><pubDate>Thu, 11 Dec 2008 15:44:00 GMT</pubDate><guid>http://www.blogjava.net/CopyHoo/articles/245812.html</guid><wfw:comment>http://www.blogjava.net/CopyHoo/comments/245812.html</wfw:comment><comments>http://www.blogjava.net/CopyHoo/articles/245812.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/CopyHoo/comments/commentRss/245812.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/CopyHoo/services/trackbacks/245812.html</trackback:ping><description><![CDATA[<table style="table-layout: fixed" cellspacing="1" cellpadding="8" width="100%" border="0">
    <tbody>
        <tr>
            <td bgcolor="#ffffff"><font color="#000000"><strong>发表于： 2007/06/01 02:20pm</strong><br />
            </font></td>
        </tr>
        <tr>
            <td style="left: 0px; width: 100%; word-wrap: break-word" bgcolor="#ffffff">问题已经解决了,回贴一下,与大家共享;如果大家有更好的解决办法,请尽快回复噢<br />
            <br />
            javascript这样来写:<br />
            <br />
            //文件大小验证函数,超过规定的上限,就不让上传,给用户提示<br />
            //如果文件超过5M,就不让上传<br />
            function fileSizeValidate() <br />
            <br />
            { &nbsp;<br />
            &nbsp;var filestr = document.all.UploadFile.value;<br />
            &nbsp;var fso,f; &nbsp;<br />
            &nbsp;fso=new ActiveXObject("Scripting.FileSystemObject"); &nbsp;<br />
            &nbsp;f=fso.GetFile(filestr); &nbsp;<br />
            &nbsp;if(f.size&gt;5*1024*1024){<br />
            &nbsp;alert("The size of .dbf is more than 5M"); <br />
            &nbsp;return false;<br />
            &nbsp;}<br />
            &nbsp;return true;<br />
            } &nbsp;<br />
            <br />
            页面里是这样的:<br />
            <br />
            &lt;TR valign=middle align=center height=40 width="100%"&gt;<br />
            &nbsp; &lt;form name=Uploadform method=post encType="multipart/form-data"&gt;<br />
            &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />
            &nbsp; &nbsp; &lt;TD align=left width="60%"&gt;<br />
            &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;INPUT class=input id=UploadFile type=file size=30 name=UploadFile&gt;<br />
            &nbsp; &nbsp; &lt;/TD&gt;<br />
            &nbsp; &lt;/form&gt;<br />
            &nbsp; &nbsp; &lt;TD align=center width="20%"&gt;<br />
            &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;INPUT class=Btn1_w60 onclick="fileSizeValidate()" type=button value=upload&gt; <br />
            &nbsp; &nbsp; &lt;/TD&gt;<br />
            &lt;/TR&gt;<br />
            <br />
            <br />
            </td>
        </tr>
        <tr>
            <td align="right" bgcolor="#eeeeee" colspan="2">&nbsp;<a href="http://www.chinajavalab.com/cgi-bin/view.cgi?forum=8&amp;topic=756#top"><img height="15" alt="" src="http://www.chinajavalab.com/non-cgi/images/gotop.gif" align="absMiddle" border="0" weight="15" />顶部</a></td>
        </tr>
    </tbody>
</table>
<table style="table-layout: fixed" cellspacing="1" cellpadding="8" width="100%" border="0">
    <tbody>
        <tr>
            <td valign="top" width="100" bgcolor="#ffffff" rowspan="2" 24="211.167.238.29"  210.51.170.><font color="#000000"><strong><a href="http://www.chinajavalab.com/cgi-bin/profile.cgi?action=show&amp;member=zhangxin" target="_blank">zhangxin</a></strong></font></td>
            <td bgcolor="#ffffff"><font color="#000000"><strong>发表于： 2007/06/01 02:35pm</strong><br />
            </font></td>
        </tr>
        <tr>
            <td style="left: 0px; width: 100%; word-wrap: break-word" bgcolor="#ffffff">其实之前我也对文件类型做了判断,在此一并与大家共享一下:<br />
            <br />
            function pstn2ngnMigration(){<br />
            &nbsp; &nbsp;if (dbfFileNameValidate()){<br />
            &nbsp; &nbsp; &nbsp; if(fileSizeValidate()){<br />
            &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(confirm("do you want to execute migration ?")){<br />
            &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;lockSystem('please waiting...',false) <br />
            &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;setTimeout("dbfFileMigration()",3000); &nbsp; &nbsp;<br />
            &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />
            &nbsp; &nbsp; &nbsp; }<br />
            &nbsp; &nbsp;}<br />
            }<br />
            <br />
            //判断是否是.DBF文件,是返回true<br />
            function dbfFileNameValidate()<br />
            {<br />
            &nbsp; var filestr = document.all.UploadFile.value;<br />
            &nbsp; if(filestr==""){<br />
            &nbsp; &nbsp; &nbsp;alert("Please select a migration file!");<br />
            &nbsp; &nbsp; &nbsp;document.all.UploadFile.focus();<br />
            &nbsp; &nbsp; &nbsp;return false;<br />
            &nbsp; }else if(filestr.toLowerCase().lastIndexOf(".dbf")==-1){<br />
            &nbsp; &nbsp; &nbsp; &nbsp; alert("Please select a file with DBF extension !");<br />
            &nbsp; &nbsp; &nbsp; &nbsp; document.all.UploadFile.focus();<br />
            &nbsp; &nbsp; &nbsp; &nbsp; return false;<br />
            &nbsp; }<br />
            &nbsp; return true;<br />
            }<br />
            &nbsp; &nbsp;<br />
            //条件成立,提交<br />
            function dbfFileMigration()<br />
            { &nbsp; <br />
            &nbsp; &nbsp;document.Uploadform.action="MigrationSendOrder.jsp";<br />
            &nbsp; &nbsp;document.Uploadform.submit();<br />
            &nbsp; &nbsp;unlockSystem();<br />
            &nbsp; &nbsp;<br />
            }<br />
            <br />
            //上传文件大小限制<br />
            function fileSizeValidate() <br />
            { &nbsp;<br />
            &nbsp;var filestr = document.all.UploadFile.value;<br />
            &nbsp;var fso,f; &nbsp;<br />
            &nbsp;fso=new ActiveXObject("Scripting.FileSystemObject"); &nbsp;<br />
            &nbsp;f=fso.GetFile(filestr); &nbsp;<br />
            &nbsp;if(f.size&gt;5*1024*1024){<br />
            &nbsp;alert("The size of .dbf is more than 5M"); <br />
            &nbsp;return false;<br />
            &nbsp;}<br />
            &nbsp;return true;<br />
            } &nbsp;<br />
            <br />
            页面代码如下:<br />
            <br />
            &lt;TR valign=middle align=center height=40 width="100%"&gt;<br />
            &nbsp;&lt;form name=Uploadform method=post encType="multipart/form-data"&gt;<br />
            &nbsp; &nbsp; &nbsp; &nbsp; <br />
            &nbsp; &nbsp;&lt;TD align=left width="60%"&gt;<br />
            &nbsp; &nbsp; &nbsp; &nbsp; &lt;INPUT class=input id=UploadFile type=file size=30 name=UploadFile&gt;<br />
            &nbsp; &nbsp;&lt;/TD&gt;<br />
            &nbsp;&lt;/form&gt;<br />
            &nbsp; &nbsp;&lt;TD align=center width="20%"&gt;<br />
            &nbsp; &nbsp; &nbsp; &nbsp; &lt;INPUT class=Btn1_w60 onclick="pstn2ngnMigration()" type=button value=upload&gt; <br />
            &nbsp; &nbsp;&lt;/TD&gt;<br />
            &lt;/TR&gt;</td>
        </tr>
    </tbody>
</table>
<br />
<br />
=====================================================<br />
包括文件类型的判断：<br />
function checkSize(files)&nbsp; <br />
{&nbsp; <br />
&nbsp; var fso,f;&nbsp; <br />
&nbsp; fso=new ActiveXObject("Scripting.FileSystemObject");&nbsp; <br />
&nbsp; f=fso.GetFile(files); <br />
&nbsp; var mySize = f.size/1024; <br />
&nbsp; alert(mySize+" K "); <br />
} <br />
<br />
<br />
&lt;!-- Begin <br />
extArray = new Array(".gif", ".jpg", ".png"); <br />
function LimitAttach(form, file) { <br />
allowSubmit = false; <br />
if (!file) return; <br />
while (file.indexOf("\\") != -1) <br />
file = file.slice(file.indexOf("\\") + 1); <br />
ext = file.slice(file.indexOf(".")).toLowerCase(); <br />
for (var i = 0; i &lt; extArray.length; i++) { <br />
if (extArray[i] == ext) { allowSubmit = true; break; } <br />
} <br />
if (!allowSubmit) <br />
alert("对不起，只能上传以下格式的文件:&nbsp; " <br />
+ (extArray.join("&nbsp; ")) + "\n请重新选择符合条件的文件" <br />
+ "再上传."); <br />
} <br />
//&nbsp; End --&gt; <br />
<br />
<img src ="http://www.blogjava.net/CopyHoo/aggbug/245812.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/CopyHoo/" target="_blank">CopyHoo</a> 2008-12-11 23:44 <a href="http://www.blogjava.net/CopyHoo/articles/245812.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>言简意赅的一篇 js 操作 dom</title><link>http://www.blogjava.net/CopyHoo/articles/245683.html</link><dc:creator>CopyHoo</dc:creator><author>CopyHoo</author><pubDate>Thu, 11 Dec 2008 05:35:00 GMT</pubDate><guid>http://www.blogjava.net/CopyHoo/articles/245683.html</guid><wfw:comment>http://www.blogjava.net/CopyHoo/comments/245683.html</wfw:comment><comments>http://www.blogjava.net/CopyHoo/articles/245683.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/CopyHoo/comments/commentRss/245683.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/CopyHoo/services/trackbacks/245683.html</trackback:ping><description><![CDATA[<h3 class="" title=""><a href="http://approach.javaeye.com/blog/125342">Javascript dom操作</a></h3>
<strong>关键字: xml dom</strong>
<div class="blog_content"><strong><span style="font-family: 黑体">用于处理</span><span lang="EN-US">XML</span><span style="font-family: 黑体">文档的</span><span lang="EN-US">DOM</span></strong><span style="font-family: 黑体"><strong>元素属性</strong><br />
</span>
<table class="MsoNormalTable" style="border-right: medium none; border-top: medium none; border-left: medium none; width: 416.65pt; border-bottom: medium none; border-collapse: collapse" cellspacing="0" cellpadding="0" width="556" border="1">
    <tbody>
        <tr>
            <td style="border-right: 1pt solid; padding-right: 5.4pt; border-top: 1pt solid; padding-left: 5.4pt; padding-bottom: 0cm; border-left: medium none; width: 165.9pt; padding-top: 0cm; border-bottom: 1pt solid" valign="top" width="221">
            <p class="MsoNormal" style="margin: 1.65pt 0cm; text-indent: 0cm; text-align: center" align="center"><span style="font-size: 8pt; font-family: 黑体">属性名</span></p>
            </td>
            <td style="border-right: medium none; padding-right: 5.4pt; border-top: 1pt solid; padding-left: 5.4pt; padding-bottom: 0cm; border-left: medium none; width: 250.75pt; padding-top: 0cm; border-bottom: 1pt solid" valign="top" width="334">
            <p class="MsoNormal" style="margin: 1.65pt 0cm; text-indent: 0cm; text-align: center" align="center"><span style="font-size: 8pt; font-family: 黑体">描述</span></p>
            </td>
        </tr>
        <tr>
            <td style="border-right: 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: medium none; width: 165.9pt; padding-top: 0cm; border-bottom: medium none" valign="top" width="221">
            <p class="MsoNormal" style="margin: 1.65pt 0cm; text-indent: 8pt"><span lang="EN-US" style="font-size: 8pt; font-family: 'Courier New'">childNodes</span></p>
            </td>
            <td style="border-right: medium none; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: medium none; width: 250.75pt; padding-top: 0cm; border-bottom: medium none" valign="top" width="334">
            <p class="MsoNormal" style="margin: 1.65pt 0cm; text-indent: 8pt"><span style="font-size: 8pt; font-family: 宋体">返回当前元素所有子元素的数组</span></p>
            </td>
        </tr>
        <tr>
            <td style="border-right: 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: medium none; width: 165.9pt; padding-top: 0cm; border-bottom: medium none" valign="top" width="221">
            <p class="MsoNormal" style="margin: 1.65pt 0cm; text-indent: 8pt"><span lang="EN-US" style="font-size: 8pt; font-family: 'Courier New'">firstChild</span></p>
            </td>
            <td style="border-right: medium none; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: medium none; width: 250.75pt; padding-top: 0cm; border-bottom: medium none" valign="top" width="334">
            <p class="MsoNormal" style="margin: 1.65pt 0cm; text-indent: 8pt"><span style="font-size: 8pt; font-family: 宋体">返回当前元素的第一个下级子元素</span></p>
            </td>
        </tr>
        <tr>
            <td style="border-right: 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: medium none; width: 165.9pt; padding-top: 0cm; border-bottom: medium none" valign="top" width="221">
            <p class="MsoNormal" style="margin: 1.65pt 0cm; text-indent: 8pt"><span lang="EN-US" style="font-size: 8pt; font-family: 'Courier New'">lastChild</span></p>
            </td>
            <td style="border-right: medium none; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: medium none; width: 250.75pt; padding-top: 0cm; border-bottom: medium none" valign="top" width="334">
            <p class="MsoNormal" style="margin: 1.65pt 0cm; text-indent: 8pt"><span style="font-size: 8pt; font-family: 宋体">返回当前元素的最后一个子元素</span></p>
            </td>
        </tr>
        <tr>
            <td style="border-right: 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: medium none; width: 165.9pt; padding-top: 0cm; border-bottom: medium none" valign="top" width="221">
            <p class="MsoNormal" style="margin: 1.65pt 0cm; text-indent: 8pt"><span lang="EN-US" style="font-size: 8pt; font-family: 'Courier New'">nextSibling</span></p>
            </td>
            <td style="border-right: medium none; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: medium none; width: 250.75pt; padding-top: 0cm; border-bottom: medium none" valign="top" width="334">
            <p class="MsoNormal" style="margin: 1.65pt 0cm; text-indent: 8pt"><span style="font-size: 8pt; font-family: 宋体">返回紧跟在当前元素后面的元素</span></p>
            </td>
        </tr>
        <tr>
            <td style="border-right: 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: medium none; width: 165.9pt; padding-top: 0cm; border-bottom: medium none" valign="top" width="221">
            <p class="MsoNormal" style="margin: 1.65pt 0cm; text-indent: 8pt"><span lang="EN-US" style="font-size: 8pt; font-family: 'Courier New'">nodeValue</span></p>
            </td>
            <td style="border-right: medium none; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: medium none; width: 250.75pt; padding-top: 0cm; border-bottom: medium none" valign="top" width="334">
            <p class="MsoNormal" style="margin: 1.65pt 0cm; text-indent: 8pt"><span style="font-size: 8pt; font-family: 宋体">指定表示元素值的读</span><span lang="EN-US" style="font-size: 8pt">/</span><span style="font-size: 8pt; font-family: 宋体">写属性</span></p>
            </td>
        </tr>
        <tr>
            <td style="border-right: 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: medium none; width: 165.9pt; padding-top: 0cm; border-bottom: medium none" valign="top" width="221">
            <p class="MsoNormal" style="margin: 1.65pt 0cm; text-indent: 8pt"><span lang="EN-US" style="font-size: 8pt; font-family: 'Courier New'">parentNode</span></p>
            </td>
            <td style="border-right: medium none; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: medium none; width: 250.75pt; padding-top: 0cm; border-bottom: medium none" valign="top" width="334">
            <p class="MsoNormal" style="margin: 1.65pt 0cm; text-indent: 8pt"><span style="font-size: 8pt; font-family: 宋体">返回元素的父节点</span></p>
            </td>
        </tr>
        <tr>
            <td style="border-right: 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: medium none; width: 165.9pt; padding-top: 0cm; border-bottom: 1pt solid" valign="top" width="221">
            <p class="MsoNormal" style="margin: 1.65pt 0cm; text-indent: 8pt"><span lang="EN-US" style="font-size: 8pt; font-family: 'Courier New'">previousSibling</span></p>
            </td>
            <td style="border-right: medium none; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: medium none; width: 250.75pt; padding-top: 0cm; border-bottom: 1pt solid" valign="top" width="334">
            <p class="MsoNormal" style="margin: 1.65pt 0cm; text-indent: 8pt"><span style="font-size: 8pt; font-family: 宋体">返回紧邻当前元素之前的元素</span></p>
            </td>
        </tr>
    </tbody>
</table>
<strong><span style="font-family: 黑体">用于遍历</span><span lang="EN-US">XML</span><span style="font-family: 黑体">文档的</span><span lang="EN-US">DOM</span></strong><span style="font-family: 黑体"><strong>元素方法</strong><br />
</span>
<table class="MsoNormalTable" style="border-right: medium none; border-top: medium none; border-left: medium none; width: 416.65pt; border-bottom: medium none; border-collapse: collapse" cellspacing="0" cellpadding="0" width="556" border="1">
    <tbody>
        <tr>
            <td style="border-right: 1pt solid; padding-right: 5.4pt; border-top: 1pt solid; padding-left: 5.4pt; padding-bottom: 0cm; border-left: medium none; width: 165.85pt; padding-top: 0cm; border-bottom: 1pt solid" valign="top" width="221">
            <p class="MsoNormal" style="margin: 1.65pt 0cm; text-indent: 0cm; text-align: center" align="center"><span style="font-size: 8pt; font-family: 黑体">方法名</span></p>
            </td>
            <td style="border-right: medium none; padding-right: 5.4pt; border-top: 1pt solid; padding-left: 5.4pt; padding-bottom: 0cm; border-left: medium none; width: 250.8pt; padding-top: 0cm; border-bottom: 1pt solid" valign="top" width="334">
            <p class="MsoNormal" style="margin: 1.65pt 0cm; text-indent: 0cm; text-align: center" align="center"><span style="font-size: 8pt; font-family: 黑体">描述</span></p>
            </td>
        </tr>
        <tr>
            <td style="border-right: 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: medium none; width: 165.85pt; padding-top: 0cm; border-bottom: medium none" valign="top" width="221">
            <p class="MsoNormal" style="margin: 1.65pt 0cm; text-indent: 8pt"><span lang="EN-US" style="font-size: 8pt; font-family: 'Courier New'">getElementById(id) (document)</span></p>
            </td>
            <td style="border-right: medium none; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: medium none; width: 250.8pt; padding-top: 0cm; border-bottom: medium none" valign="top" width="334">
            <p class="MsoNormal" style="margin: 1.65pt 0cm; text-indent: 8pt"><span style="font-size: 8pt; font-family: 宋体">获取有指定惟一</span><span lang="EN-US" style="font-size: 8pt">ID</span><span style="font-size: 8pt; font-family: 宋体">属性值文档中的元素</span></p>
            </td>
        </tr>
        <tr>
            <td style="border-right: 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: medium none; width: 165.85pt; padding-top: 0cm; border-bottom: medium none" valign="top" width="221">
            <p class="MsoNormal" style="margin: 1.65pt 0cm; text-indent: 8pt"><span lang="EN-US" style="font-size: 8pt; font-family: 'Courier New'">getElementsByTagName(name)</span></p>
            </td>
            <td style="border-right: medium none; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: medium none; width: 250.8pt; padding-top: 0cm; border-bottom: medium none" valign="top" width="334">
            <p class="MsoNormal" style="margin: 1.65pt 0cm; text-indent: 8pt"><span style="font-size: 8pt; font-family: 宋体">返回当前元素中有指定标记名的子元素的数组</span></p>
            </td>
        </tr>
        <tr>
            <td style="border-right: 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: medium none; width: 165.85pt; padding-top: 0cm; border-bottom: medium none" valign="top" width="221">
            <p class="MsoNormal" style="margin: 1.65pt 0cm; text-indent: 8pt"><span lang="EN-US" style="font-size: 8pt; font-family: 'Courier New'">hasChildNodes()</span></p>
            </td>
            <td style="border-right: medium none; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: medium none; width: 250.8pt; padding-top: 0cm; border-bottom: medium none" valign="top" width="334">
            <p class="MsoNormal" style="margin: 1.65pt 0cm; text-indent: 8pt"><span style="font-size: 8pt; font-family: 宋体">返回一个布尔值，指示元素是否有子元素</span></p>
            </td>
        </tr>
        <tr>
            <td style="border-right: 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: medium none; width: 165.85pt; padding-top: 0cm; border-bottom: 1pt solid" valign="top" width="221">
            <p class="MsoNormal" style="margin: 1.65pt 0cm; text-indent: 8pt"><span lang="EN-US" style="font-size: 8pt; font-family: 'Courier New'">getAttribute(name)</span></p>
            </td>
            <td style="border-right: medium none; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: medium none; width: 250.8pt; padding-top: 0cm; border-bottom: 1pt solid" valign="top" width="334">
            <p class="MsoNormal" style="margin: 1.65pt 0cm; text-indent: 8pt"><span style="font-size: 8pt; font-family: 宋体">返回元素的属性值，属性由</span><span lang="EN-US" style="font-size: 8pt; font-family: 'Courier New'">name</span><span style="font-size: 8pt; font-family: 宋体">指定</span></p>
            </td>
        </tr>
    </tbody>
</table>
<br />
<p class="MsoNormal" style="margin-top: 11.55pt; text-indent: 21pt"><font size="1"><span style="font-family: 宋体">有了</span><span lang="EN-US">W3C DOM</span><span style="font-family: 宋体">，就能编写简单的跨浏览器脚本，从而充分利用</span><span lang="EN-US">XML</span><span style="font-family: 宋体">的强大功能和灵活性，将</span><span lang="EN-US">XML</span><span style="font-family: 宋体">作为浏览器和服务器之间的通信介质。</span></font></p>
相关链接：<a href="http://book.csdn.net/bookfiles/11/10011450.shtml">http://book.csdn.net/bookfiles/11/10011450.shtml</a> </div>
<img src ="http://www.blogjava.net/CopyHoo/aggbug/245683.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/CopyHoo/" target="_blank">CopyHoo</a> 2008-12-11 13:35 <a href="http://www.blogjava.net/CopyHoo/articles/245683.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>这是一个一应俱全的实例</title><link>http://www.blogjava.net/CopyHoo/articles/245680.html</link><dc:creator>CopyHoo</dc:creator><author>CopyHoo</author><pubDate>Thu, 11 Dec 2008 05:31:00 GMT</pubDate><guid>http://www.blogjava.net/CopyHoo/articles/245680.html</guid><wfw:comment>http://www.blogjava.net/CopyHoo/comments/245680.html</wfw:comment><comments>http://www.blogjava.net/CopyHoo/articles/245680.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/CopyHoo/comments/commentRss/245680.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/CopyHoo/services/trackbacks/245680.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: JAVASCRIPT中使用DOM操作XML文档 &lt;script&nbsp;language="JavaScript"&gt;&lt;!--var&nbsp;doc&nbsp;=&nbsp;new&nbsp;ActiveXObject("Msxml2.DOMDocument");&nbsp;//ie5.5+,CreateObject("Microsoft.XMLDOM")&nb...&nbsp;&nbsp;<a href='http://www.blogjava.net/CopyHoo/articles/245680.html'>阅读全文</a><img src ="http://www.blogjava.net/CopyHoo/aggbug/245680.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/CopyHoo/" target="_blank">CopyHoo</a> 2008-12-11 13:31 <a href="http://www.blogjava.net/CopyHoo/articles/245680.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>基础:Javascript DOM操作: 子窗口操作父窗口table</title><link>http://www.blogjava.net/CopyHoo/articles/245673.html</link><dc:creator>CopyHoo</dc:creator><author>CopyHoo</author><pubDate>Thu, 11 Dec 2008 05:16:00 GMT</pubDate><guid>http://www.blogjava.net/CopyHoo/articles/245673.html</guid><wfw:comment>http://www.blogjava.net/CopyHoo/comments/245673.html</wfw:comment><comments>http://www.blogjava.net/CopyHoo/articles/245673.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/CopyHoo/comments/commentRss/245673.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/CopyHoo/services/trackbacks/245673.html</trackback:ping><description><![CDATA[<p>转自:<font style="background-color: #cce8cc">http://blog.csdn.net/grueclan/archive/2008/01/23/2062125.aspx</font><br />
<br />
通过createElement可以创建html元素，并通过appendChild方法可以为html增加元素，同样可以通过这种方式来动态的控制table的行、列的增删，在普通的单个页面以内操作本页面的元素时一般是没有问题的，但是如果有这样一种情况：</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在一个页面Parent上通过window.open打开一个新的页面Child时，&nbsp;在Child页面通过js操作Parent页面上的元素时，如下（这是在Child页面上的一段js）：</p>
<p>&nbsp;</p>
<div style="border-right: windowtext 0.5pt solid; padding-right: 5.4pt; border-top: windowtext 0.5pt solid; padding-left: 5.4pt; background: rgb(230,230,230); padding-bottom: 4px; border-left: windowtext 0.5pt solid; width: 95%; padding-top: 4px; border-bottom: windowtext 0.5pt solid; moz-background-clip: -moz-initial; moz-background-origin: -moz-initial; moz-background-inline-policy: -moz-initial">
<div><span style="color: rgb(0,128,0)">//</span><span style="color: rgb(0,128,0)">&nbsp;获取Parent的句柄</span><span style="color: rgb(0,128,0)"><br />
</span><span style="color: rgb(0,0,255)">var</span><span style="color: rgb(0,0,0)">&nbsp;parent&nbsp;</span><span style="color: rgb(0,0,0)">=</span><span style="color: rgb(0,0,0)">&nbsp;parent.window;<br />
<br />
</span><span style="color: rgb(0,128,0)">//</span><span style="color: rgb(0,128,0)">&nbsp;获取Parent中的一个元素的句柄，假设Parent中有一个ID为a的一行两列的table;</span><span style="color: rgb(0,128,0)"><br />
</span><span style="color: rgb(0,0,255)">var</span><span style="color: rgb(0,0,0)">&nbsp;&nbsp;pTable&nbsp;</span><span style="color: rgb(0,0,0)">=</span><span style="color: rgb(0,0,0)">&nbsp;parent.document.getElementById(</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">a</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">);<br />
<br />
</span><span style="color: rgb(0,128,0)">//</span><span style="color: rgb(0,128,0)">&nbsp;我们为该table添加一行数据;</span><span style="color: rgb(0,128,0)"><br />
//</span><span style="color: rgb(0,128,0)">&nbsp;先创建一个tr</span><span style="color: rgb(0,128,0)"><br />
</span><span style="color: rgb(0,0,255)">var</span><span style="color: rgb(0,0,0)">&nbsp;tr&nbsp;</span><span style="color: rgb(0,0,0)">=</span><span style="color: rgb(0,0,0)">&nbsp;document.createElement(</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">tr</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">);<br />
</span><span style="color: rgb(0,128,0)">//</span><span style="color: rgb(0,128,0)">&nbsp;再创建两个td</span><span style="color: rgb(0,128,0)"><br />
</span><span style="color: rgb(0,0,255)">var</span><span style="color: rgb(0,0,0)">&nbsp;td1&nbsp;</span><span style="color: rgb(0,0,0)">=</span><span style="color: rgb(0,0,0)">&nbsp;document.createElement(</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">td</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">);<br />
</span><span style="color: rgb(0,0,255)">var</span><span style="color: rgb(0,0,0)">&nbsp;td1&nbsp;</span><span style="color: rgb(0,0,0)">=</span><span style="color: rgb(0,0,0)">&nbsp;document.createElement(</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">td</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">);<br />
<br />
</span><span style="color: rgb(0,128,0)">//</span><span style="color: rgb(0,128,0)">&nbsp;将这两个td添加到刚才创建的行中</span><span style="color: rgb(0,128,0)"><br />
</span><span style="color: rgb(0,0,0)">tr.appendChild(td1);<br />
tr.appendChild(td1);<br />
<br />
</span><span style="color: rgb(0,128,0)">//</span><span style="color: rgb(0,128,0)">&nbsp;将这行添加到Parent的table中</span><span style="color: rgb(0,128,0)"><br />
</span><span style="color: rgb(0,0,0)">pTable.tBodies[</span><span style="color: rgb(0,0,0)">0</span><span style="color: rgb(0,0,0)">].appendChild(tr);</span></div>
</div>
<p>&nbsp;</p>
<p>这段代码的运行结果是：<br />
Firefox中：可以正确的为Parent页面的table添加一行<br />
IE中：不能正确的为Parent页面的table添加一行<br />
<br />
解决办法：<br />
将代码改为如下所示：</p>
<p>&nbsp;</p>
<div style="border-right: windowtext 0.5pt solid; padding-right: 5.4pt; border-top: windowtext 0.5pt solid; padding-left: 5.4pt; background: rgb(230,230,230); padding-bottom: 4px; border-left: windowtext 0.5pt solid; width: 95%; padding-top: 4px; border-bottom: windowtext 0.5pt solid; moz-background-clip: -moz-initial; moz-background-origin: -moz-initial; moz-background-inline-policy: -moz-initial">
<div><span style="color: rgb(0,128,0)">//</span><span style="color: rgb(0,128,0)">&nbsp;获取Parent的句柄</span><span style="color: rgb(0,128,0)"><br />
</span><span style="color: rgb(0,0,255)">var</span><span style="color: rgb(0,0,0)">&nbsp;parent&nbsp;</span><span style="color: rgb(0,0,0)">=</span><span style="color: rgb(0,0,0)">&nbsp;parent.window;<br />
<br />
</span><span style="color: rgb(0,128,0)">//</span><span style="color: rgb(0,128,0)">&nbsp;获取Parent中的一个元素的句柄，假设Parent中有一个ID为a的一行两列的table;</span><span style="color: rgb(0,128,0)"><br />
</span><span style="color: rgb(0,0,255)">var</span><span style="color: rgb(0,0,0)">&nbsp;&nbsp;pTable&nbsp;</span><span style="color: rgb(0,0,0)">=</span><span style="color: rgb(0,0,0)">&nbsp;parent.document.getElementById(</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">a</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">);<br />
<br />
</span><span style="color: rgb(0,128,0)">//</span><span style="color: rgb(0,128,0)">&nbsp;我们为该table添加一行数据;</span><span style="color: rgb(0,128,0)"><br />
//</span><span style="color: rgb(0,128,0)">&nbsp;先创建一个tr</span><span style="color: rgb(0,128,0)"><br />
</span><span style="color: rgb(0,0,255)">var</span><span style="color: rgb(0,0,0)">&nbsp;tr&nbsp;</span><span style="color: rgb(0,0,0)">=</span><span style="color: rgb(0,0,0)">&nbsp;parent.document.createElement(</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">tr</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">);&nbsp;</span><span style="color: rgb(0,128,0)">//</span><span style="color: rgb(0,128,0)">&nbsp;改动部分：通过父页面的句柄来创建元素</span><span style="color: rgb(0,128,0)"><br />
//</span><span style="color: rgb(0,128,0)">&nbsp;再创建两个td</span><span style="color: rgb(0,128,0)"><br />
</span><span style="color: rgb(0,0,255)">var</span><span style="color: rgb(0,0,0)">&nbsp;td1&nbsp;</span><span style="color: rgb(0,0,0)">=</span><span style="color: rgb(0,0,0)">&nbsp;&nbsp;parent.document.createElement(</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">td</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">);&nbsp;</span><span style="color: rgb(0,128,0)">//</span><span style="color: rgb(0,128,0)">&nbsp;改动部分：通过父页面的句柄来创建元素&nbsp;</span><span style="color: rgb(0,128,0)"><br />
</span><span style="color: rgb(0,0,255)">var</span><span style="color: rgb(0,0,0)">&nbsp;td1&nbsp;</span><span style="color: rgb(0,0,0)">=</span><span style="color: rgb(0,0,0)">&nbsp;&nbsp;parent.document.createElement(</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">td</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">);&nbsp;</span><span style="color: rgb(0,128,0)">//</span><span style="color: rgb(0,128,0)">&nbsp;改动部分：通过父页面的句柄来创建元素&nbsp;</span><span style="color: rgb(0,128,0)"><br />
</span><span style="color: rgb(0,0,0)"><br />
</span><span style="color: rgb(0,128,0)">//</span><span style="color: rgb(0,128,0)">&nbsp;将这两个td添加到刚才创建的行中</span><span style="color: rgb(0,128,0)"><br />
</span><span style="color: rgb(0,0,0)">tr.appendChild(td1);<br />
tr.appendChild(td1);<br />
<br />
</span><span style="color: rgb(0,128,0)">//</span><span style="color: rgb(0,128,0)">&nbsp;将这行添加到Parent的table中</span><span style="color: rgb(0,128,0)"><br />
</span><span style="color: rgb(0,0,0)">pTable.tBodies[</span><span style="color: rgb(0,0,0)">0</span><span style="color: rgb(0,0,0)">].appendChild(tr);</span></div>
</div>
<p><br />
原因:IE中，本页面内创建的元素只能添加在本页面以内。</p>
<img src ="http://www.blogjava.net/CopyHoo/aggbug/245673.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/CopyHoo/" target="_blank">CopyHoo</a> 2008-12-11 13:16 <a href="http://www.blogjava.net/CopyHoo/articles/245673.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>js 操作 dom</title><link>http://www.blogjava.net/CopyHoo/articles/245670.html</link><dc:creator>CopyHoo</dc:creator><author>CopyHoo</author><pubDate>Thu, 11 Dec 2008 05:07:00 GMT</pubDate><guid>http://www.blogjava.net/CopyHoo/articles/245670.html</guid><wfw:comment>http://www.blogjava.net/CopyHoo/comments/245670.html</wfw:comment><comments>http://www.blogjava.net/CopyHoo/articles/245670.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/CopyHoo/comments/commentRss/245670.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/CopyHoo/services/trackbacks/245670.html</trackback:ping><description><![CDATA[<h2 class="post-title">javascript DOM操作基础[转载]</h2>
<div class="post-body">经常用到javascript对dom，今天在网上找了篇文章，作者整理了《javascript高级程序设计》中关于DOM操作基础部分的内容<br />
来源：<a href="javascript:void(0);/*1216699697195*/">http://www.blogjava.net/ilovezmh/archive/2007/04/24/113336.html</a><br />
一、DOM基础<br />
1.节点(node)层次<br />
Document－－最顶层的节点，所有的其他节点都是附属于它的。<br />
DocumentType－－DTD引用（使用&lt;!DOCTYPE&gt;语法）的对象表现形式，它不能包含子节点。<br />
DocumentFragment－－可以像Document一样来保存其他节点。<br />
Element－－表示起始标签和结束标签之间的内容，例如&lt;tag&gt;&lt;/tab&gt;或者&lt;tag/&gt;。这是唯一可以同时包含特性和子节点的节点类型。<br />
Attr－－代表一对特性名和特性值。这个节点类型不能包含子节点。<br />
Text－－代表XML文档中的在起始标签和结束标签之间，或者CDataSection内包含的普通文本。这个节点类型不能包含子节点。<br />
CDataSection－－&lt;![CDATA[]]&gt;的对象表现形式。这个节点类型仅能包含文本节点Text作为子节点。<br />
Entity－－表示在DTD中的一个实体定义，例如&lt;!ENTITY foo"foo"&gt;。这个节点类型不能包含子节点。<br />
EntityReference－－代表一个实体引用，例如&amp;quot;。这个节点类型不能包含子节点。<br />
ProcessingInstruction－－代表一个PI。这个节点类型不能包含子节点。<br />
Comment－－代表XML注释。这个节点不能包含子节点。<br />
Notation－－代表在DTD中定义的记号。这个很少用到。<br />
<br />
Node接口定义了所有节点类型都包含的特性和方法。<br />
<table style="width: 862px; border-collapse: collapse; height: 417px" cellspacing="0" cellpadding="3" border="1">
    <tbody>
        <tr>
            <td>特性/方法</td>
            <td>类型/返回类型</td>
            <td>说明</td>
        </tr>
        <tr>
            <td>nodeName</td>
            <td>String</td>
            <td>节点的名字;根据节点的类型而定义</td>
        </tr>
        <tr>
            <td>nodeValue</td>
            <td>String</td>
            <td>节点的值;根据节点的类型而定义</td>
        </tr>
        <tr>
            <td>nodeType</td>
            <td>Number</td>
            <td>节点的类型常量值之一</td>
        </tr>
        <tr>
            <td>ownerDocument</td>
            <td>Document</td>
            <td>指向这个节点所属的文档</td>
        </tr>
        <tr>
            <td>firstChild</td>
            <td>Node</td>
            <td>指向在childNodes列表中的第一个节点</td>
        </tr>
        <tr>
            <td>lastChild</td>
            <td>Node</td>
            <td>指向在childNodes列表中的最后一个节点</td>
        </tr>
        <tr>
            <td>childNodes</td>
            <td>NodeList</td>
            <td>所有子节点的列表</td>
        </tr>
        <tr>
            <td>previousSibling</td>
            <td>Node</td>
            <td>指向前一个兄弟节点;如果这个节点就是第一个兄弟节点，那么该值为null</td>
        </tr>
        <tr>
            <td>nextSibling</td>
            <td>Node</td>
            <td>指向后一个兄弟节点;如果这个节点就是最后一个兄弟节点，那么该值为null</td>
        </tr>
        <tr>
            <td>hasChildNodes()</td>
            <td>Boolean</td>
            <td>当childNodes包含一个或多个节点时,返回真</td>
        </tr>
        <tr>
            <td>attributes</td>
            <td>NamedNodeMap</td>
            <td>包含了代表一个元素的特性的Attr对象;仅用于Element节点</td>
        </tr>
        <tr>
            <td>appendChild(node)</td>
            <td>Node</td>
            <td>将node添加到childNodes的末尾</td>
        </tr>
        <tr>
            <td>removeChild(node)</td>
            <td>Node</td>
            <td>从childNodes中删除node</td>
        </tr>
        <tr>
            <td>replaceChild(newnode,oldnode)</td>
            <td>Node</td>
            <td>将childNodes中的oldnode替换成newnode</td>
        </tr>
        <tr>
            <td>insertBefore(newnode,refnode)</td>
            <td>Node</td>
            <td>在childNodes中的refnode之前插入newnodd</td>
        </tr>
    </tbody>
</table>
<br />
除节点外，DOM还定义了一些助手对象，它们可以和节点一起使用，但不是DOM文档必有的部分。<br />
NodeList－－节点数组，按照数值进行索引;用来表示和一个元素的子节点。<br />
NamedNodeMap－－同时使用数值和名字进行索引的节点表;用于表示元素特性。<br />
<br />
2.访问相关的节点<br />
下面的几节中考虑下面的HTML页面<br />
<div style="border-right: rgb(204,204,204) 1px solid; padding-right: 5px; border-top: rgb(204,204,204) 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: rgb(204,204,204) 1px solid; width: 98%; padding-top: 4px; border-bottom: rgb(204,204,204) 1px solid; background-color: rgb(238,238,238)"><span style="color: rgb(0,0,255)">&lt;</span><span style="color: rgb(128,0,0)">html</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">&lt;</span><span style="color: rgb(128,0,0)">head</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">&lt;</span><span style="color: rgb(128,0,0)">title</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)">DOM&nbsp;Example</span><span style="color: rgb(0,0,255)">&lt;/</span><span style="color: rgb(128,0,0)">title</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">&lt;/</span><span style="color: rgb(128,0,0)">head</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">&lt;</span><span style="color: rgb(128,0,0)">body</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">&lt;</span><span style="color: rgb(128,0,0)">p</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)">Hello&nbsp;World!</span><span style="color: rgb(0,0,255)">&lt;/</span><span style="color: rgb(128,0,0)">p</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">&lt;</span><span style="color: rgb(128,0,0)">p</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)">Isn't&nbsp;this&nbsp;exciting?</span><span style="color: rgb(0,0,255)">&lt;/</span><span style="color: rgb(128,0,0)">p</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">&lt;</span><span style="color: rgb(128,0,0)">p</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)">You're&nbsp;learning&nbsp;to&nbsp;use&nbsp;the&nbsp;DOM!</span><span style="color: rgb(0,0,255)">&lt;/</span><span style="color: rgb(128,0,0)">p</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">&lt;/</span><span style="color: rgb(128,0,0)">body</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
</span><span style="color: rgb(0,0,255)">&lt;/</span><span style="color: rgb(128,0,0)">html</span><span style="color: rgb(0,0,255)">&gt;</span></div>
要访问&lt;html/&gt;元素（你应该明白这是该文件的document元素），你可以使用document的documentElement特性：<br />
var oHtml = document.documentElement;<br />
现在变量oHtml包含一个表示&lt;html/&gt;的HTMLElement对象。如果你想取得&lt;head/&gt;和&lt;body/&gt;元素，下面的可以实现：<br />
var oHead = oHtml.firstChild;<br />
var oBody = oHtml.lastChild;<br />
也可以使用childNodes特性来完成同样的工作。只需把它当成普通的javascript array，使用方括号标记：<br />
var oHead = oHtml.childNodes[0];<br />
var oBody = oHtml.childNodes[1];<br />
注意方括号标记其实是NodeList在javascript中的简便实现。实际上正式的从childNodes列表中获取子节点的方法是使用item()方法：<br />
var oHead = oHtml.childNodes.item(0);<br />
var oBody = oHtml.childNodes.item(1);<br />
HTML DOM页定义了document.body作为指向&lt;body/&gt;元素的指针。<br />
var oBody = ducument.body;<br />
有了oHtml,oHead和oBody这三个变量，就可以尝试确定它们之间的关系：<br />
alert(oHead.parentNode==oHtml);<br />
alert(oBody.parentNode==oHtml);<br />
alert(oBody.previousSibling==oHead);<br />
alert(bHead.nextSibling==oBody);<br />
alert(oHead.ownerDocument==document);<br />
以上均outputs "true"。<br />
<br />
3.处理特性<br />
正如前面所提到的，即便Node接口已具有attributes方法，且已被所有类型的节点继承，然而，只有<br />
Element节点才能有特性。Element节点的attributes属性其实是NameNodeMap,它提供一些用于访问和处理其内容的方法：<br />
getNamedItem(name)－－返回nodename属性值等于name的节点;<br />
removeNamedItem(name)－－删除nodename属性值等于name的节点;<br />
setNamedItem(node)－－将node添加到列表中，按其nodeName属性进行索引;<br />
item(pos)－－像NodeList一样，返回在位置pos的节点;<br />
注：请记住这些方法都是返回一个Attr节点，而非特性值。<br />
<br />
NamedNodeMap对象也有一个length属性来指示它所包含的节点的数量。<br />
当NamedNodeMap用于表示特性时，其中每个节点都是Attr节点，这的nodeName属性被设置为特性名称，而nodeValue属性被设置为特性的值。例如，假设有这样一个元素：<br />
&lt;p style="color:red" id="p1"&gt;Hello world!&lt;/p&gt;<br />
同时，假设变量oP包含指向这个元素的一个引用。于是可以这样访问id特性的值:<br />
var sId = oP.attributes.getNamedItem("id").nodeValue;<br />
当然，还可以用数值方式访问id特性，但这样稍微有些不直观：<br />
var sId = oP.attributes.item(1).nodeValue;<br />
还可以通过给nodeValue属性赋新值来改变id特性：<br />
oP.attributes.getNamedItem("id").nodeValue="newId";<br />
Attr节点也有一个完全等同于(同时也完全同步于)nodeValue属性的value属性，并且有name属性和nodeName属性保持同步。我们可以随意使用这些属性来修改或变更特性。<br />
因为这个方法有些累赘，DOM又定义了三个元素方法来帮助访问特性：<br />
getAttribute(name)－－等于attributes.getNamedItem(name).value;<br />
setAttribute(name,newvalue)－－等于attribute.getNamedItem(name).value=newvalue;<br />
removeAttribute(name)－－等于attribute.removeNamedItem(name)。<br />
<br />
4.访问指定节点<br />
(1)<strong>getElementsByTagName()<br />
</strong>核 心(XML) DOM定义了getElementsByTagName()方法，用来返回一个包含所有的tagName(标签名)特性等于某个指定值的元素的 NodeList。在Element对象中，tagName特性总是等于小于号之后紧跟随的名称－－例如，&lt;img /&gt;的tagName是"img"。下一行代码返回文档中所有&lt;img /&gt;元素的列表：<br />
var oImgs = document.getElementsByTagName("img");<br />
把所有图形都存于oImgs后，只需使用方括号或者Item()方法（getElementsByTagName()返回一个和childNodes一样的NodeList），就可以像访问子节点那样逐个访问这些节点了：<br />
alert(oImgs[0].tagName);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//outputs "IMG"<br />
假如只想获取在某个页面第一个段落的所有图像，可以通过对第一个段落元素调用getElementsByTagName()来完成，像这样：<br />
var oPs = document.getElementByTagName("p");<br />
var oImgsInp = oPs[0].getElementByTagName("img");<br />
可以使用一个星号的方法来获取document中的所有元素：<br />
var oAllElements = document.getElementsByTagName("*");<br />
当参数是一个星号的时候，IE6.0并不返回所有的元素。必须使用document.all来替代它。<br />
(2)<strong>getElementsByName()<br />
</strong>HTML DOM 定义了getElementsByName()，这用来获取所有name特性等于指定值的元素的。<br />
(3)<strong>getElementById()<br />
</strong>这是HTML DOM定义的第二种方法，它将返回id特性等于指定值的元素。在HTML中，id特性是唯一的－－这意味着没有两个元素可以共享同一个id。毫无疑问这是从文档树中获取单个指定元素最快的方法。<br />
注：如果给定的ID匹配某个元素的name特性，IE6.0还会返回这个元素。这是一个bug，也是必须非常小心的一个问题。<br />
<br />
5.创建新节点<br />
最常用到的几个方法是<br />
createDocumentFragment()－－创建文档碎片节点<br />
createElement(tagname)－－创建标签名为tagname的元素<br />
createTextNode(text)－－创建包含文本text的文本节点<br />
<br />
<strong>createElement()、createTextNode()、appendChild()</strong><br />
<div style="border-right: rgb(204,204,204) 1px solid; padding-right: 5px; border-top: rgb(204,204,204) 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: rgb(204,204,204) 1px solid; width: 98%; padding-top: 4px; border-bottom: rgb(204,204,204) 1px solid; background-color: rgb(238,238,238)"><span style="color: rgb(0,0,255)">&lt;</span><span style="color: rgb(128,0,0)">html</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">&lt;</span><span style="color: rgb(128,0,0)">head</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">&lt;</span><span style="color: rgb(128,0,0)">title</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)">createElement()&nbsp;Example</span><span style="color: rgb(0,0,255)">&lt;/</span><span style="color: rgb(128,0,0)">title</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">&lt;</span><span style="color: rgb(128,0,0)">script&nbsp;</span><span style="color: rgb(255,0,0)">type</span><span style="color: rgb(0,0,255)">="text/javascript"</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255); background-color: rgb(245,245,245)">function</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">&nbsp;createMessage()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255); background-color: rgb(245,245,245)">var</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">&nbsp;oP&nbsp;</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">=</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">&nbsp;document.createElement(</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">"</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">p</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">"</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255); background-color: rgb(245,245,245)">var</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">&nbsp;oText&nbsp;</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">=</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">&nbsp;document.createTextNode(</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">"</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">Hello&nbsp;World!</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">"</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;oP.appendChild(oText);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.body.appendChild(oP);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">&lt;/</span><span style="color: rgb(128,0,0)">script</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">&lt;/</span><span style="color: rgb(128,0,0)">head</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">&lt;</span><span style="color: rgb(128,0,0)">body&nbsp;</span><span style="color: rgb(255,0,0)">onload</span><span style="color: rgb(0,0,255)">="createMessage()"</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">&lt;/</span><span style="color: rgb(128,0,0)">body</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
</span><span style="color: rgb(0,0,255)">&lt;/</span><span style="color: rgb(128,0,0)">html</span><span style="color: rgb(0,0,255)">&gt;</span></div>
<br />
<strong>removeChild()、replaceChild()、insertBefore()<br />
</strong>删除节点<br />
<div style="border-right: rgb(204,204,204) 1px solid; padding-right: 5px; border-top: rgb(204,204,204) 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: rgb(204,204,204) 1px solid; width: 98%; padding-top: 4px; border-bottom: rgb(204,204,204) 1px solid; background-color: rgb(238,238,238)"><span style="color: rgb(0,0,255)">&lt;</span><span style="color: rgb(128,0,0)">html</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">&lt;</span><span style="color: rgb(128,0,0)">head</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">&lt;</span><span style="color: rgb(128,0,0)">title</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)">removeChild()&nbsp;Example</span><span style="color: rgb(0,0,255)">&lt;/</span><span style="color: rgb(128,0,0)">title</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">&lt;</span><span style="color: rgb(128,0,0)">script&nbsp;</span><span style="color: rgb(255,0,0)">type</span><span style="color: rgb(0,0,255)">="text/javascript"</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255); background-color: rgb(245,245,245)">function</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">&nbsp;removeMessage()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255); background-color: rgb(245,245,245)">var</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">&nbsp;oP&nbsp;</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">=</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">&nbsp;document.body.getElementsByTagName(</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">"</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">p</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">"</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">)[</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">0</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;oP.parentNode.removeChild(oP);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">&lt;/</span><span style="color: rgb(128,0,0)">script</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">&lt;/</span><span style="color: rgb(128,0,0)">head</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">&lt;</span><span style="color: rgb(128,0,0)">body&nbsp;</span><span style="color: rgb(255,0,0)">onload</span><span style="color: rgb(0,0,255)">="removeMessage()"</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">&lt;</span><span style="color: rgb(128,0,0)">p</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)">Hello&nbsp;World!</span><span style="color: rgb(0,0,255)">&lt;/</span><span style="color: rgb(128,0,0)">p</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">&lt;/</span><span style="color: rgb(128,0,0)">body</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
</span><span style="color: rgb(0,0,255)">&lt;/</span><span style="color: rgb(128,0,0)">html</span><span style="color: rgb(0,0,255)">&gt;</span></div>
替换<br />
<div style="border-right: rgb(204,204,204) 1px solid; padding-right: 5px; border-top: rgb(204,204,204) 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: rgb(204,204,204) 1px solid; width: 98%; padding-top: 4px; border-bottom: rgb(204,204,204) 1px solid; background-color: rgb(238,238,238)"><span style="color: rgb(0,0,255)">&lt;</span><span style="color: rgb(128,0,0)">html</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">&lt;</span><span style="color: rgb(128,0,0)">head</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">&lt;</span><span style="color: rgb(128,0,0)">title</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)">replaceChild()&nbsp;Example</span><span style="color: rgb(0,0,255)">&lt;/</span><span style="color: rgb(128,0,0)">title</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">&lt;</span><span style="color: rgb(128,0,0)">script&nbsp;</span><span style="color: rgb(255,0,0)">type</span><span style="color: rgb(0,0,255)">="text/javascript"</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255); background-color: rgb(245,245,245)">function</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">&nbsp;replaceMessage()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255); background-color: rgb(245,245,245)">var</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">&nbsp;oNewP&nbsp;</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">=</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">&nbsp;document.createElement(</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">"</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">p</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">"</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255); background-color: rgb(245,245,245)">var</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">&nbsp;oText&nbsp;</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">=</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">&nbsp;document.createTextNode(</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">"</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">Hello&nbsp;Universe!</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">"</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;oNewP.appendChild(oText);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255); background-color: rgb(245,245,245)">var</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">&nbsp;oOldP&nbsp;</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">=</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">&nbsp;document.body.getElementsByTagName(</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">"</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">p</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">"</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">)[</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">0</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;oOldP.parentNode.replaceChild(oNewP,&nbsp;oOldP);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">&lt;/</span><span style="color: rgb(128,0,0)">script</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">&lt;/</span><span style="color: rgb(128,0,0)">head</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">&lt;</span><span style="color: rgb(128,0,0)">body&nbsp;</span><span style="color: rgb(255,0,0)">onload</span><span style="color: rgb(0,0,255)">="replaceMessage()"</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">&lt;</span><span style="color: rgb(128,0,0)">p</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)">Hello&nbsp;World!</span><span style="color: rgb(0,0,255)">&lt;/</span><span style="color: rgb(128,0,0)">p</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">&lt;/</span><span style="color: rgb(128,0,0)">body</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
</span><span style="color: rgb(0,0,255)">&lt;/</span><span style="color: rgb(128,0,0)">html</span><span style="color: rgb(0,0,255)">&gt;</span></div>
新消息添加到旧消息之前<br />
<div style="border-right: rgb(204,204,204) 1px solid; padding-right: 5px; border-top: rgb(204,204,204) 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: rgb(204,204,204) 1px solid; width: 98%; padding-top: 4px; border-bottom: rgb(204,204,204) 1px solid; background-color: rgb(238,238,238)"><span style="color: rgb(0,0,255)">&lt;</span><span style="color: rgb(128,0,0)">html</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">&lt;</span><span style="color: rgb(128,0,0)">head</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">&lt;</span><span style="color: rgb(128,0,0)">title</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)">insertBefore()&nbsp;Example</span><span style="color: rgb(0,0,255)">&lt;/</span><span style="color: rgb(128,0,0)">title</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">&lt;</span><span style="color: rgb(128,0,0)">script&nbsp;</span><span style="color: rgb(255,0,0)">type</span><span style="color: rgb(0,0,255)">="text/javascript"</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255); background-color: rgb(245,245,245)">function</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">&nbsp;insertMessage()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255); background-color: rgb(245,245,245)">var</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">&nbsp;oNewP&nbsp;</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">=</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">&nbsp;document.createElement(</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">"</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">p</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">"</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255); background-color: rgb(245,245,245)">var</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">&nbsp;oText&nbsp;</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">=</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">&nbsp;document.createTextNode(</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">"</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">Hello&nbsp;Universe!</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">"</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;oNewP.appendChild(oText);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255); background-color: rgb(245,245,245)">var</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">&nbsp;oOldP&nbsp;</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">=</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">&nbsp;document.getElementsByTagName(</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">"</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">p</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">"</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">)[</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">0</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.body.insertBefore(oNewP,&nbsp;oOldP);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">&lt;/</span><span style="color: rgb(128,0,0)">script</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">&lt;/</span><span style="color: rgb(128,0,0)">head</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">&lt;</span><span style="color: rgb(128,0,0)">body&nbsp;</span><span style="color: rgb(255,0,0)">onload</span><span style="color: rgb(0,0,255)">="insertMessage()"</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">&lt;</span><span style="color: rgb(128,0,0)">p</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)">Hello&nbsp;World!</span><span style="color: rgb(0,0,255)">&lt;/</span><span style="color: rgb(128,0,0)">p</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">&lt;/</span><span style="color: rgb(128,0,0)">body</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
</span><span style="color: rgb(0,0,255)">&lt;/</span><span style="color: rgb(128,0,0)">html</span><span style="color: rgb(0,0,255)">&gt;</span></div>
<br />
<strong>createDocumentFragment()<br />
</strong>一旦把节点添加到document.body（或 者它的后代节点）中，页面就会更新并反映出这个变化。对于少量的更新，这是很好的，然而，当要向document添加大量数据时，如果逐个添加这些变动， 这个过程有可能会十分缓慢。为解决这个问题，可以创建一个文档碎片，把所有的新节点附加其上，然后把文档碎片的内容一次性添加到document中，假如 想创建十个新段落。<br />
<div style="border-right: rgb(204,204,204) 1px solid; padding-right: 5px; border-top: rgb(204,204,204) 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: rgb(204,204,204) 1px solid; width: 98%; padding-top: 4px; border-bottom: rgb(204,204,204) 1px solid; background-color: rgb(238,238,238)"><span style="color: rgb(0,0,255)">&lt;</span><span style="color: rgb(128,0,0)">html</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">&lt;</span><span style="color: rgb(128,0,0)">head</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">&lt;</span><span style="color: rgb(128,0,0)">title</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)">insertBefore()&nbsp;Example</span><span style="color: rgb(0,0,255)">&lt;/</span><span style="color: rgb(128,0,0)">title</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">&lt;</span><span style="color: rgb(128,0,0)">script&nbsp;</span><span style="color: rgb(255,0,0)">type</span><span style="color: rgb(0,0,255)">="text/javascript"</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255); background-color: rgb(245,245,245)">function</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">&nbsp;addMessages()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255); background-color: rgb(245,245,245)">var</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">&nbsp;arrText&nbsp;</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">=</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">&nbsp;[</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">"</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">first</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">"</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">,&nbsp;</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">"</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">second</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">"</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">,&nbsp;</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">"</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">third</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">"</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">,&nbsp;</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">"</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">fourth</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">"</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">,&nbsp;</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">"</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">fifth</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">"</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">,&nbsp;</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">"</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">sixth</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">"</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">,&nbsp;</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">"</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">seventh</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">"</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">,&nbsp;</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">"</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">eighth</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">"</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">,&nbsp;</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">"</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">ninth</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">"</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">,&nbsp;</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">"</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">tenth</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">"</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255); background-color: rgb(245,245,245)">var</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">&nbsp;oFragment&nbsp;</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">=</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">&nbsp;document.createDocumentFragment();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255); background-color: rgb(245,245,245)">for</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">&nbsp;(</span><span style="color: rgb(0,0,255); background-color: rgb(245,245,245)">var</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">&nbsp;i</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">=</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">0</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">;&nbsp;i&nbsp;</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">&lt;</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">&nbsp;arrText.length;&nbsp;i</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">++</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255); background-color: rgb(245,245,245)">var</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">&nbsp;oP&nbsp;</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">=</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">&nbsp;document.createElement(</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">"</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">p</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">"</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255); background-color: rgb(245,245,245)">var</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">&nbsp;oText&nbsp;</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">=</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">&nbsp;document.createTextNode(arrText[i]);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;oP.appendChild(oText);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;oFragment.appendChild(oP);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.body.appendChild(oFragment);<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">&lt;/</span><span style="color: rgb(128,0,0)">script</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">&lt;/</span><span style="color: rgb(128,0,0)">head</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">&lt;</span><span style="color: rgb(128,0,0)">body&nbsp;</span><span style="color: rgb(255,0,0)">onload</span><span style="color: rgb(0,0,255)">="addMessages()"</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">&lt;/</span><span style="color: rgb(128,0,0)">body</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
</span><span style="color: rgb(0,0,255)">&lt;/</span><span style="color: rgb(128,0,0)">html</span><span style="color: rgb(0,0,255)">&gt;</span></div>
<br />
6.让特性像属性一样<br />
大部分情况下，HTML DOM元素中包含的所有特性都是可作为属性。<br />
假设有如下图像元素：<br />
&lt;img src = "mypicture.jpg" border=0 /&gt;<br />
如果要使用核心的DOM来获取和设置src和border特性，那么要用getAttribute()和setAttribute()方法：<br />
alert(oImg.getAttribute("src"));<br />
alert(oImg.getAttribute("border"));<br />
oImg.setAttribute("src","mypicture2.jpg");<br />
oImg.setAttribute("border",1);<br />
然而，使用HTML DOM，可以使用同样名称的属性来获取和设置这些值：<br />
alert(oImg.src);<br />
alert(oImg.border);<br />
oImg.src="mypicture2.jpg";<br />
oImg.border ="1";<br />
唯一的特性名和属性名不一样的特例是class属性，它是用来指定应用于某个元素的一个CSS类，因为class在ECMAScript中是一个保留字，在javascript中，它不能被作为变量名、属性名或都函数名。于是，相应的属性名就变成了className;<br />
注：IE在setAttribute()上有很大的问题，最好尽可能使用属性。<br />
<br />
7.table方法<br />
为了协助建立表格，HTML DOM给&lt;table/&gt;,&lt;tbody/&gt;和&lt;tr/&gt;等元素添加了一些特性和方法。<br />
给&lt;table/&gt;元素添加了以下内容：<br />
<table style="width: 861px; border-collapse: collapse; height: 365px" cellspacing="0" cellpadding="3" border="1">
    <tbody>
        <tr>
            <td>特性/方法</td>
            <td>说明</td>
        </tr>
        <tr>
            <td>caption</td>
            <td>指向&lt;caption/&gt;元素并将其放入表格</td>
        </tr>
        <tr>
            <td>tBodies</td>
            <td>&lt;tbody/&gt;元素的集合</td>
        </tr>
        <tr>
            <td>tFoot</td>
            <td>指向&lt;tfoot/&gt;元素（如果存在）</td>
        </tr>
        <tr>
            <td>tHead</td>
            <td>指向&lt;thead/&gt;元素（如果存在）</td>
        </tr>
        <tr>
            <td>rows</td>
            <td>表格中所有行的集合</td>
        </tr>
        <tr>
            <td>createTHead()</td>
            <td>创建&lt;thead/&gt;元素并将其放入表格</td>
        </tr>
        <tr>
            <td>createTFood()</td>
            <td>创建&lt;tfoot/&gt;元素并将其放入表格</td>
        </tr>
        <tr>
            <td>createCpation()</td>
            <td>创建&lt;caption/&gt;元素并将其放入表格</td>
        </tr>
        <tr>
            <td>deleteTHead()</td>
            <td>删除&lt;thead/&gt;元素</td>
        </tr>
        <tr>
            <td>deleteTFood()</td>
            <td>删除&lt;tfoot/&gt;元素</td>
        </tr>
        <tr>
            <td>deleteCaption()</td>
            <td>删除&lt;caption/&gt;元素</td>
        </tr>
        <tr>
            <td>deleteRow(position)</td>
            <td>删除指定位置上的行</td>
        </tr>
        <tr>
            <td>insertRow(position)</td>
            <td>在rows集合中的指定位置上插入一个新行</td>
        </tr>
    </tbody>
</table>
<br />
&lt;tbody/&gt;元素添加了以下内容<br />
<table style="width: 862px; border-collapse: collapse; height: 105px" cellspacing="0" cellpadding="3" border="1">
    <tbody>
        <tr>
            <td>特性/方法</td>
            <td>说明</td>
        </tr>
        <tr>
            <td>rows</td>
            <td>&lt;tbody/&gt;中所有行的集合</td>
        </tr>
        <tr>
            <td>deleteRow(position)</td>
            <td>删除指定位置上的行</td>
        </tr>
        <tr>
            <td>insertRow(position)</td>
            <td>在rows集合中的指定位置上插入一个新行</td>
        </tr>
    </tbody>
</table>
<br />
&lt;tr/&gt;元素添加了以下内容<br />
<table style="width: 860px; border-collapse: collapse; height: 105px" cellspacing="0" cellpadding="3" border="1">
    <tbody>
        <tr>
            <td>特性/方法</td>
            <td>说明</td>
        </tr>
        <tr>
            <td>cells</td>
            <td>&lt;tr/&gt;元素中所有的单元格的集合</td>
        </tr>
        <tr>
            <td>deleteCell(postion)</td>
            <td>删除给定位置上的单元格</td>
        </tr>
        <tr>
            <td>insertCell(postion)</td>
            <td>在cells集合的给点位置上插入一个新的单元格</td>
        </tr>
    </tbody>
</table>
<br />
8.遍历DOM<br />
<strong>NodeIterator，TreeWalker</strong><br />
DOM Level2的功能，这些功能只有在Mozilla和Konqueror/Safari中才有，这里就不介绍了。 <script type="text/javascript">
addthis_pub= 'wolfit';
addthis_logo= 'http://download.rainbowsoft.org/image/common/zbloglogo.gif';
addthis_brand= 'Attention!';
addthis_options= 'favorites, delicious, twitter, digg, myspace, facebook, google, live,  email, more';
</script></div>
<img src ="http://www.blogjava.net/CopyHoo/aggbug/245670.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/CopyHoo/" target="_blank">CopyHoo</a> 2008-12-11 13:07 <a href="http://www.blogjava.net/CopyHoo/articles/245670.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于 html 的base</title><link>http://www.blogjava.net/CopyHoo/articles/245633.html</link><dc:creator>CopyHoo</dc:creator><author>CopyHoo</author><pubDate>Thu, 11 Dec 2008 02:37:00 GMT</pubDate><guid>http://www.blogjava.net/CopyHoo/articles/245633.html</guid><wfw:comment>http://www.blogjava.net/CopyHoo/comments/245633.html</wfw:comment><comments>http://www.blogjava.net/CopyHoo/articles/245633.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/CopyHoo/comments/commentRss/245633.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/CopyHoo/services/trackbacks/245633.html</trackback:ping><description><![CDATA[<br />
&lt;a href="#" &gt;&lt;/a&gt;<br />
<br />
这里的 # 并不是说永远指向当前文件，而是指向<br />
&lt;base href=""&nbsp;/&gt; 所指定的文件或者目录!!!
<img src ="http://www.blogjava.net/CopyHoo/aggbug/245633.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/CopyHoo/" target="_blank">CopyHoo</a> 2008-12-11 10:37 <a href="http://www.blogjava.net/CopyHoo/articles/245633.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>checkbox 使用</title><link>http://www.blogjava.net/CopyHoo/articles/245566.html</link><dc:creator>CopyHoo</dc:creator><author>CopyHoo</author><pubDate>Wed, 10 Dec 2008 13:24:00 GMT</pubDate><guid>http://www.blogjava.net/CopyHoo/articles/245566.html</guid><wfw:comment>http://www.blogjava.net/CopyHoo/comments/245566.html</wfw:comment><comments>http://www.blogjava.net/CopyHoo/articles/245566.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/CopyHoo/comments/commentRss/245566.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/CopyHoo/services/trackbacks/245566.html</trackback:ping><description><![CDATA[<p><font style="background-color: #cce8cc">2008-12-10 17:30:55,562 DEBUG [com.years5000.service5000.subject.web.SubjectController] - on</font></p>
<font style="background-color: #cce8cc">
<p><br />
我直接就晕了:</p>
<p>1.&nbsp; checkbox 如果没有提交到后台，那么你进行 request.getParameter()<br />
&nbsp;&nbsp; 或者 request.getParameters() 是得不到值的，也就是说，只有被 checked 的值才<br />
&nbsp;&nbsp; 能够传递到你的 controller&nbsp; 中</p>
<p>2. 很重要，很要命的一条。!!!<br />
&nbsp; 一定要为 checkbox 赋值！！！我开始认为，默认情况下，会返回 true ,<br />
&nbsp; 但是，很令人失望。。！！！害我找 BUG 找了半天！！<br />
&nbsp; 默认情况下，如上所示，返回的是 on 这个字<br />
&nbsp; 以后再不敢犯傻了。。</p>
<p><br />
冤冤相报。。。。 你怎么对人，别人就怎么对你，所以，小聪明就不能够耍了。。<br />
</font></p>
<img src ="http://www.blogjava.net/CopyHoo/aggbug/245566.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/CopyHoo/" target="_blank">CopyHoo</a> 2008-12-10 21:24 <a href="http://www.blogjava.net/CopyHoo/articles/245566.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于 disabled 的个小说明</title><link>http://www.blogjava.net/CopyHoo/articles/245448.html</link><dc:creator>CopyHoo</dc:creator><author>CopyHoo</author><pubDate>Wed, 10 Dec 2008 03:33:00 GMT</pubDate><guid>http://www.blogjava.net/CopyHoo/articles/245448.html</guid><wfw:comment>http://www.blogjava.net/CopyHoo/comments/245448.html</wfw:comment><comments>http://www.blogjava.net/CopyHoo/articles/245448.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/CopyHoo/comments/commentRss/245448.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/CopyHoo/services/trackbacks/245448.html</trackback:ping><description><![CDATA[<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"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">input&nbsp;</span><span style="color: #ff0000">type</span><span style="color: #0000ff">="button"</span><span style="color: #ff0000">&nbsp;value</span><span style="color: #0000ff">="Hello&nbsp;world"</span><span style="color: #ff0000">&nbsp;id</span><span style="color: #0000ff">='btn_say'&nbsp;</span><span style="color: #ff0000">disabled</span><span style="color: #0000ff">='disabled'&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">br</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">input&nbsp;</span><span style="color: #ff0000">type</span><span style="color: #0000ff">='button'&nbsp;</span><span style="color: #ff0000">value</span><span style="color: #0000ff">='点击吧'&nbsp;</span><span style="color: #ff0000">onclick</span><span style="color: #0000ff">='take()'&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img id="Codehighlighter1_146_360_Open_Image" onclick="this.style.display='none'; Codehighlighter1_146_360_Open_Text.style.display='none'; Codehighlighter1_146_360_Closed_Image.style.display='inline'; Codehighlighter1_146_360_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_146_360_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_146_360_Closed_Text.style.display='none'; Codehighlighter1_146_360_Open_Image.style.display='inline'; Codehighlighter1_146_360_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">script</span><span style="color: #0000ff">&gt;</span><span id="Codehighlighter1_146_360_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"  alt="" /></span><span id="Codehighlighter1_146_360_Open_Text"><span style="color: #000000; background-color: #f5f5f5"><br />
<img id="Codehighlighter1_164_359_Open_Image" onclick="this.style.display='none'; Codehighlighter1_164_359_Open_Text.style.display='none'; Codehighlighter1_164_359_Closed_Image.style.display='inline'; Codehighlighter1_164_359_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_164_359_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_164_359_Closed_Text.style.display='none'; Codehighlighter1_164_359_Open_Image.style.display='inline'; Codehighlighter1_164_359_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">function</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;take()</span><span id="Codehighlighter1_164_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"  alt="" /></span><span id="Codehighlighter1_164_359_Open_Text"><span style="color: #000000; background-color: #f5f5f5">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;alert('Hello&nbsp;world');<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;alert(document.getElementById('btn_say').disabled&nbsp;)&nbsp;;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;document.getElementById('btn_say').disabled&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">false</span><span style="color: #000000; background-color: #f5f5f5">';<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;document.getElementById('btn_say').disabled&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">false</span><span style="color: #000000; background-color: #f5f5f5">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;}</span></span><span style="color: #000000; background-color: #f5f5f5"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">script</span><span style="color: #0000ff">&gt;</span></div>
<br />
看如上代码，我们进行如下分析：<br />
1. disabled = 'diabled' 实质上，当你进行 <br />
&nbsp; alert (document.getElementById('btn_say').disabled );<br />
&nbsp;的时候，你就知道，它返回的是 true ,也就是说，不论你在值的部分写什么字串，他都默认为 true .即使你用 disabled = 'false '; 也会默认为 true;<br />
<br />
2. 想办法改掉 disabled 为 false 怎么办，开始时，糊涂的用了 disabled = 'false'; 但是不起效，后来使用了 disabled = fasle ;&nbsp; - &gt; 也就是一个 boolean 的值，而非字串，这就知道是怎么回事了。<br />
<br />
3. 我们如果没有更好的办法，也可以用 removeAttribute() 来将 disabled 属性去掉达到效果。<br />
<br />
4. 扩展：<br />
&nbsp;&nbsp;&nbsp;&nbsp; 呵呵。以前是听那些讲师将的，说什么 selected = 'selected',以及 checked = 'checked' 这个设计使网页很恼火，因为一旦选中，就不好用 selected='fasle' 来使他不选中，。。。。<br />
其实，这个的话，应该是跟 disabled = false 一样，要用 boolean 而非 字串 'fasle '
<img src ="http://www.blogjava.net/CopyHoo/aggbug/245448.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/CopyHoo/" target="_blank">CopyHoo</a> 2008-12-10 11:33 <a href="http://www.blogjava.net/CopyHoo/articles/245448.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>alert 会导致页面刷新吗？</title><link>http://www.blogjava.net/CopyHoo/articles/245300.html</link><dc:creator>CopyHoo</dc:creator><author>CopyHoo</author><pubDate>Tue, 09 Dec 2008 09:44:00 GMT</pubDate><guid>http://www.blogjava.net/CopyHoo/articles/245300.html</guid><wfw:comment>http://www.blogjava.net/CopyHoo/comments/245300.html</wfw:comment><comments>http://www.blogjava.net/CopyHoo/articles/245300.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/CopyHoo/comments/commentRss/245300.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/CopyHoo/services/trackbacks/245300.html</trackback:ping><description><![CDATA[我要验证！！！<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"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #008000">&lt;!--</span><span style="color: #008000">&nbsp;&nbsp;为了证明&nbsp;alert()&nbsp;不会刷新而编写的脚本&nbsp;</span><span style="color: #008000">--&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">body&nbsp;</span><span style="color: #ff0000">onload</span><span style="color: #0000ff">="alert(333);"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />Hello&nbsp;world<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">input&nbsp;</span><span style="color: #ff0000">type</span><span style="color: #0000ff">="button"</span><span style="color: #ff0000">&nbsp;value</span><span style="color: #0000ff">="点击我还刷新一下"</span><span style="color: #ff0000">&nbsp;onclick</span><span style="color: #0000ff">="alert(123);"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">body</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">input&nbsp;</span><span style="color: #ff0000">type</span><span style="color: #0000ff">="button"</span><span style="color: #ff0000">&nbsp;value</span><span style="color: #0000ff">="点击我还刷新一下"</span><span style="color: #ff0000">&nbsp;onclick</span><span style="color: #0000ff">="alert(123);&nbsp;&nbsp;window.location.reload();"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />return&nbsp;false;在什么情况下都不会刷新</span></div>
<img src ="http://www.blogjava.net/CopyHoo/aggbug/245300.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/CopyHoo/" target="_blank">CopyHoo</a> 2008-12-09 17:44 <a href="http://www.blogjava.net/CopyHoo/articles/245300.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如果你 js 运用的很熟，这就是效果！ - 替换 html 实体字符</title><link>http://www.blogjava.net/CopyHoo/articles/245299.html</link><dc:creator>CopyHoo</dc:creator><author>CopyHoo</author><pubDate>Tue, 09 Dec 2008 09:42:00 GMT</pubDate><guid>http://www.blogjava.net/CopyHoo/articles/245299.html</guid><wfw:comment>http://www.blogjava.net/CopyHoo/comments/245299.html</wfw:comment><comments>http://www.blogjava.net/CopyHoo/articles/245299.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/CopyHoo/comments/commentRss/245299.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/CopyHoo/services/trackbacks/245299.html</trackback:ping><description><![CDATA[<p><font style="background-color: #cce8cc">&lt;input type="text" value=" 你好中国" /&gt;&nbsp; <br />
对应的效果:<br />
<input value=" 你好中国"  type="text" /> <br />
</font></p>
<font style="background-color: #cce8cc">
<p><br />
Groove Coverage-7 Years And 50 Days 谁能指教下 是什么码？</p>
<p>是空格，那么 32对应ascii码？<br />
</p>
<p>&nbsp;</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"><img id="Codehighlighter1_0_10_Open_Image" onclick="this.style.display='none'; Codehighlighter1_0_10_Open_Text.style.display='none'; Codehighlighter1_0_10_Closed_Image.style.display='inline'; Codehighlighter1_0_10_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_0_10_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_0_10_Closed_Text.style.display='none'; Codehighlighter1_0_10_Open_Image.style.display='inline'; Codehighlighter1_0_10_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /><span id="Codehighlighter1_0_10_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">/**/</span><span id="Codehighlighter1_0_10_Open_Text"><span style="color: #008000">/*</span><span style="color: #008000">&nbsp;很精巧:&nbsp;&nbsp;</span><span style="color: #008000">*/</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />String.prototype.trueEntityReplace&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">()<br />
<img id="Codehighlighter1_60_167_Open_Image" onclick="this.style.display='none'; Codehighlighter1_60_167_Open_Text.style.display='none'; Codehighlighter1_60_167_Closed_Image.style.display='inline'; Codehighlighter1_60_167_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_60_167_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_60_167_Closed_Text.style.display='none'; Codehighlighter1_60_167_Open_Image.style.display='inline'; Codehighlighter1_60_167_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span id="Codehighlighter1_60_167_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 alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_60_167_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.replace(</span><span style="color: #000000">/&amp;</span><span style="color: #000000">#(\d</span><span style="color: #000000">+</span><span style="color: #000000">);</span><span style="color: #000000">?/</span><span style="color: #000000">g,&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">(a,&nbsp;b)<br />
<img id="Codehighlighter1_119_163_Open_Image" onclick="this.style.display='none'; Codehighlighter1_119_163_Open_Text.style.display='none'; Codehighlighter1_119_163_Closed_Image.style.display='inline'; Codehighlighter1_119_163_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_119_163_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_119_163_Closed_Text.style.display='none'; Codehighlighter1_119_163_Open_Image.style.display='inline'; Codehighlighter1_119_163_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;</span><span id="Codehighlighter1_119_163_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 alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_119_163_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;String.fromCharCode(b)<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></div>
</font>
<img src ="http://www.blogjava.net/CopyHoo/aggbug/245299.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/CopyHoo/" target="_blank">CopyHoo</a> 2008-12-09 17:42 <a href="http://www.blogjava.net/CopyHoo/articles/245299.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>你对 js 的掌握程度有多少?</title><link>http://www.blogjava.net/CopyHoo/articles/245269.html</link><dc:creator>CopyHoo</dc:creator><author>CopyHoo</author><pubDate>Tue, 09 Dec 2008 07:41:00 GMT</pubDate><guid>http://www.blogjava.net/CopyHoo/articles/245269.html</guid><wfw:comment>http://www.blogjava.net/CopyHoo/comments/245269.html</wfw:comment><comments>http://www.blogjava.net/CopyHoo/articles/245269.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/CopyHoo/comments/commentRss/245269.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/CopyHoo/services/trackbacks/245269.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"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">&lt;</span><span style="color: #000000">script</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img id="Codehighlighter1_23_176_Open_Image" onclick="this.style.display='none'; Codehighlighter1_23_176_Open_Text.style.display='none'; Codehighlighter1_23_176_Closed_Image.style.display='inline'; Codehighlighter1_23_176_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_23_176_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_23_176_Closed_Text.style.display='none'; Codehighlighter1_23_176_Open_Image.style.display='inline'; Codehighlighter1_23_176_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;foo()</span><span id="Codehighlighter1_23_176_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"  alt="" /></span><span id="Codehighlighter1_23_176_Open_Text"><span style="color: #000000">{<br />
<img id="Codehighlighter1_47_60_Open_Image" onclick="this.style.display='none'; Codehighlighter1_47_60_Open_Text.style.display='none'; Codehighlighter1_47_60_Closed_Image.style.display='inline'; Codehighlighter1_47_60_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_47_60_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_47_60_Closed_Text.style.display='none'; Codehighlighter1_47_60_Open_Image.style.display='inline'; Codehighlighter1_47_60_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;foo.abc&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">()</span><span id="Codehighlighter1_47_60_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"  alt="" /></span><span id="Codehighlighter1_47_60_Open_Text"><span style="color: #000000">{alert('def')}</span></span><span style="color: #000000"><br />
<img id="Codehighlighter1_85_98_Open_Image" onclick="this.style.display='none'; Codehighlighter1_85_98_Open_Text.style.display='none'; Codehighlighter1_85_98_Closed_Image.style.display='inline'; Codehighlighter1_85_98_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_85_98_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_85_98_Closed_Text.style.display='none'; Codehighlighter1_85_98_Open_Image.style.display='inline'; Codehighlighter1_85_98_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.abc&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">()</span><span id="Codehighlighter1_85_98_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"  alt="" /></span><span id="Codehighlighter1_85_98_Open_Text"><span style="color: #000000">{alert('xyz')}</span></span><span style="color: #000000"><br />
<img id="Codehighlighter1_118_133_Open_Image" onclick="this.style.display='none'; Codehighlighter1_118_133_Open_Text.style.display='none'; Codehighlighter1_118_133_Closed_Image.style.display='inline'; Codehighlighter1_118_133_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_118_133_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_118_133_Closed_Text.style.display='none'; Codehighlighter1_118_133_Open_Image.style.display='inline'; Codehighlighter1_118_133_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;abc&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">()</span><span id="Codehighlighter1_118_133_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"  alt="" /></span><span id="Codehighlighter1_118_133_Open_Text"><span style="color: #000000">{alert('@@@@@')}</span></span><span style="color: #000000">;<br />
<img id="Codehighlighter1_158_174_Open_Image" onclick="this.style.display='none'; Codehighlighter1_158_174_Open_Text.style.display='none'; Codehighlighter1_158_174_Closed_Image.style.display='inline'; Codehighlighter1_158_174_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_158_174_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_158_174_Closed_Text.style.display='none'; Codehighlighter1_158_174_Open_Image.style.display='inline'; Codehighlighter1_158_174_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;abc&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">()</span><span id="Codehighlighter1_158_174_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"  alt="" /></span><span id="Codehighlighter1_158_174_Open_Text"><span style="color: #000000">{alert('$$$$$$')}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span><span style="color: #000000"><br />
<img id="Codehighlighter1_208_222_Open_Image" onclick="this.style.display='none'; Codehighlighter1_208_222_Open_Text.style.display='none'; Codehighlighter1_208_222_Closed_Image.style.display='inline'; Codehighlighter1_208_222_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_208_222_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_208_222_Closed_Text.style.display='none'; Codehighlighter1_208_222_Open_Image.style.display='inline'; Codehighlighter1_208_222_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" />foo.prototype.abc&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">()</span><span id="Codehighlighter1_208_222_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"  alt="" /></span><span id="Codehighlighter1_208_222_Open_Text"><span style="color: #000000">{alert('</span><span style="color: #000000">456</span><span style="color: #000000">');}</span></span><span style="color: #000000"><br />
<img id="Codehighlighter1_244_258_Open_Image" onclick="this.style.display='none'; Codehighlighter1_244_258_Open_Text.style.display='none'; Codehighlighter1_244_258_Closed_Image.style.display='inline'; Codehighlighter1_244_258_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_244_258_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_244_258_Closed_Text.style.display='none'; Codehighlighter1_244_258_Open_Image.style.display='inline'; Codehighlighter1_244_258_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" />foo.abc&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">()</span><span id="Codehighlighter1_244_258_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"  alt="" /></span><span id="Codehighlighter1_244_258_Open_Text"><span style="color: #000000">{alert('</span><span style="color: #000000">123</span><span style="color: #000000">');}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;f&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;foo();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />f.abc();&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;output&nbsp;"xyz"&nbsp;</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">foo.abc();&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;output&nbsp;"def"</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">abc();&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;if&nbsp;commend&nbsp;"&nbsp;var&nbsp;abc&nbsp;=&nbsp;function(){alert('$$$$$$')}&nbsp;"&nbsp;then&nbsp;you&nbsp;can&nbsp;get&nbsp;&nbsp;"@@@@@"</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;/</span><span style="color: #000000">script</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span></div>
<br />
看看如上代码，你得到正确结果了吗？<br />
告诉我，为什么。
<img src ="http://www.blogjava.net/CopyHoo/aggbug/245269.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/CopyHoo/" target="_blank">CopyHoo</a> 2008-12-09 15:41 <a href="http://www.blogjava.net/CopyHoo/articles/245269.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于 readonly 与 disabled</title><link>http://www.blogjava.net/CopyHoo/articles/245240.html</link><dc:creator>CopyHoo</dc:creator><author>CopyHoo</author><pubDate>Tue, 09 Dec 2008 06:17:00 GMT</pubDate><guid>http://www.blogjava.net/CopyHoo/articles/245240.html</guid><wfw:comment>http://www.blogjava.net/CopyHoo/comments/245240.html</wfw:comment><comments>http://www.blogjava.net/CopyHoo/articles/245240.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/CopyHoo/comments/commentRss/245240.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/CopyHoo/services/trackbacks/245240.html</trackback:ping><description><![CDATA[<br />
readonly 与 disabled 都可以防止用户键入，<br />
两者的区别：<br />
1. dsiabled 带有默认的样式，使文本框以及字体变灰，但是 readonly 不会<br />
2. disabled 不会提交到后台！！！而 readonly 会随着表单一起提交到后台。<br />
<br />
馊主意：<br />
如果你喜欢 disabled 的变灰的样式，但是又懒得去用样样式表来更改，并且又需要提交到后台。<br />
那么建议你可以这样，利用隐藏域...<br />
<br />
Do you get it ?
<img src ="http://www.blogjava.net/CopyHoo/aggbug/245240.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/CopyHoo/" target="_blank">CopyHoo</a> 2008-12-09 14:17 <a href="http://www.blogjava.net/CopyHoo/articles/245240.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>类似gmail添加附件</title><link>http://www.blogjava.net/CopyHoo/articles/245083.html</link><dc:creator>CopyHoo</dc:creator><author>CopyHoo</author><pubDate>Mon, 08 Dec 2008 11:42:00 GMT</pubDate><guid>http://www.blogjava.net/CopyHoo/articles/245083.html</guid><wfw:comment>http://www.blogjava.net/CopyHoo/comments/245083.html</wfw:comment><comments>http://www.blogjava.net/CopyHoo/articles/245083.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/CopyHoo/comments/commentRss/245083.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/CopyHoo/services/trackbacks/245083.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 想做一个管理后面，想用到gmail添加附件的功能到添加产品图，找了很多源码都不合适，找到了一段，但在FF下有问题。&nbsp;++++++++++++++++&nbsp;&lt;!DOCTYPE&nbsp;HTML&nbsp;PUBLIC&nbsp;"-//W3C//DTD&nbsp;HTML&nbsp;4.0&nbsp;Transitional//EN"&gt;&nbsp;&lt...&nbsp;&nbsp;<a href='http://www.blogjava.net/CopyHoo/articles/245083.html'>阅读全文</a><img src ="http://www.blogjava.net/CopyHoo/aggbug/245083.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/CopyHoo/" target="_blank">CopyHoo</a> 2008-12-08 19:42 <a href="http://www.blogjava.net/CopyHoo/articles/245083.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JavaScript 闭包</title><link>http://www.blogjava.net/CopyHoo/articles/244985.html</link><dc:creator>CopyHoo</dc:creator><author>CopyHoo</author><pubDate>Mon, 08 Dec 2008 03:57:00 GMT</pubDate><guid>http://www.blogjava.net/CopyHoo/articles/244985.html</guid><wfw:comment>http://www.blogjava.net/CopyHoo/comments/244985.html</wfw:comment><comments>http://www.blogjava.net/CopyHoo/articles/244985.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/CopyHoo/comments/commentRss/244985.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/CopyHoo/services/trackbacks/244985.html</trackback:ping><description><![CDATA[<p><font style="background-color: #cce8cc">所谓闭包，是指词法表示包括不必计算的变量的函数，也就是说，该函数能使用函数外定义的变量。<br />
在 ECMAScript 中使用全局变量十一哥简单的闭包实例。考虑下面的代码: <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"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;</span><span style="color: #000000">script</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;sMessage&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">Hello&nbsp;world</span><span style="color: #000000">"</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;<br />
<img id="Codehighlighter1_71_97_Open_Image" onclick="this.style.display='none'; Codehighlighter1_71_97_Open_Text.style.display='none'; Codehighlighter1_71_97_Closed_Image.style.display='inline'; Codehighlighter1_71_97_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_71_97_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_71_97_Closed_Text.style.display='none'; Codehighlighter1_71_97_Open_Image.style.display='inline'; Codehighlighter1_71_97_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;sayHelloWorld()</span><span id="Codehighlighter1_71_97_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"  alt="" /></span><span id="Codehighlighter1_71_97_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert(sMessage);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;sayHelloWorld();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;/</span><span style="color: #000000">script</span><span style="color: #000000">&gt;</span></div>
</font><br />
在这段代码中，脚本被载入内存后，并未为函数 sayHelloWorld() 计算变量 sMessage 的值。该函数捕获 sMessage 的值只是为以后使用，也就是说，解释程序知道在调用该函数时要检查 sMessage 的值。sMessage 将在函数调用 sayHelloWorld()时（最后一行）被赋值，显示消息 "Hello World".<br />
&nbsp; 在一个函数中定义另一个函数会使闭包变得更加复杂，如下所示：<br />
&nbsp;
<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"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">&lt;</span><span style="color: #000000">script</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;iBaseNum&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">10</span><span style="color: #000000">;<br />
<img id="Codehighlighter1_66_172_Open_Image" onclick="this.style.display='none'; Codehighlighter1_66_172_Open_Text.style.display='none'; Codehighlighter1_66_172_Closed_Image.style.display='inline'; Codehighlighter1_66_172_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_66_172_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_66_172_Closed_Text.style.display='none'; Codehighlighter1_66_172_Open_Image.style.display='inline'; Codehighlighter1_66_172_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;addNumbers(iNum1,iNum2)</span><span id="Codehighlighter1_66_172_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"  alt="" /></span><span id="Codehighlighter1_66_172_Open_Text"><span style="color: #000000">{<br />
<img id="Codehighlighter1_94_141_Open_Image" onclick="this.style.display='none'; Codehighlighter1_94_141_Open_Text.style.display='none'; Codehighlighter1_94_141_Closed_Image.style.display='inline'; Codehighlighter1_94_141_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_94_141_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_94_141_Closed_Text.style.display='none'; Codehighlighter1_94_141_Open_Image.style.display='inline'; Codehighlighter1_94_141_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;doAddition()</span><span id="Codehighlighter1_94_141_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"  alt="" /></span><span id="Codehighlighter1_94_141_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;iNum1&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;iNum2&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;iBaseNum;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;doAddition();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;/</span><span style="color: #000000">script</span><span style="color: #000000">&gt;</span></div>
<br />
这里，函数 addNumbers() 包括函数 doAddition( 闭包)。内部函数是个闭包，因为它将获取外部函数的参数 iNum1 和 iNum2 以及全局变量 iBaseNum 的值。 addNumbers() 的最后一步 doAddition() 函数根本不接受参数，<br />
它使用的值是从执行环境中获取的。<br />
&nbsp;&nbsp; 可以看到，闭包是 ECMAScript 中非常强大多用的一部分，可以用于执行复杂的计算。就像使用任何高级函数一样，在使用闭包时要当心，因为它们可能会变得非常复杂。
<img src ="http://www.blogjava.net/CopyHoo/aggbug/244985.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/CopyHoo/" target="_blank">CopyHoo</a> 2008-12-08 11:57 <a href="http://www.blogjava.net/CopyHoo/articles/244985.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>仿163网盘无刷新文件上传系统 </title><link>http://www.blogjava.net/CopyHoo/articles/244967.html</link><dc:creator>CopyHoo</dc:creator><author>CopyHoo</author><pubDate>Mon, 08 Dec 2008 03:04:00 GMT</pubDate><guid>http://www.blogjava.net/CopyHoo/articles/244967.html</guid><wfw:comment>http://www.blogjava.net/CopyHoo/comments/244967.html</wfw:comment><comments>http://www.blogjava.net/CopyHoo/articles/244967.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/CopyHoo/comments/commentRss/244967.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/CopyHoo/services/trackbacks/244967.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 转自: http://www.cnblogs.com/cloudgamer/archive/2008/11/28/1314766.html?本文仅供个人参考资料用，如果您搜索到此博文，请查看原文链接。效果预览:.fu_list {width:600px;background:#ebebeb;font-size:12px;}.fu_list td {p...&nbsp;&nbsp;<a href='http://www.blogjava.net/CopyHoo/articles/244967.html'>阅读全文</a><img src ="http://www.blogjava.net/CopyHoo/aggbug/244967.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/CopyHoo/" target="_blank">CopyHoo</a> 2008-12-08 11:04 <a href="http://www.blogjava.net/CopyHoo/articles/244967.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>测试博客园发表文章的 editor 的原理</title><link>http://www.blogjava.net/CopyHoo/articles/244922.html</link><dc:creator>CopyHoo</dc:creator><author>CopyHoo</author><pubDate>Sun, 07 Dec 2008 15:34:00 GMT</pubDate><guid>http://www.blogjava.net/CopyHoo/articles/244922.html</guid><wfw:comment>http://www.blogjava.net/CopyHoo/comments/244922.html</wfw:comment><comments>http://www.blogjava.net/CopyHoo/articles/244922.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/CopyHoo/comments/commentRss/244922.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/CopyHoo/services/trackbacks/244922.html</trackback:ping><description><![CDATA[<p><br />
如果我直接在文本框中书写&nbsp; script 的脚本，<br />
这些脚本不会直接转义，而会直接成为网页的一部分？<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"><img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" /><span style="color: #000000"><br />
<img id="Codehighlighter1_9_27_Open_Image" onclick="this.style.display='none'; Codehighlighter1_9_27_Open_Text.style.display='none'; Codehighlighter1_9_27_Closed_Image.style.display='inline'; Codehighlighter1_9_27_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_9_27_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_9_27_Closed_Text.style.display='none'; Codehighlighter1_9_27_Open_Image.style.display='inline'; Codehighlighter1_9_27_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">script</span><span style="color: #0000ff">&gt;</span><span id="Codehighlighter1_9_27_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 alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_9_27_Open_Text"><span style="color: #000000; background-color: #f5f5f5"><br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />&nbsp;&nbsp;alert('中国，你好');<br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" /></span></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">script</span><span style="color: #0000ff">&gt;</span></div>
<p><br />
<br />
<script>
  alert( '中国，你好');
</script><br />
<br />
那么我如何组织处一个我能有动态的页面的代码?<br />
</p>
<p>&nbsp;也就是，我如果写一个 button ,并定义了 onclick 事件，那么用户在浏览该页面的时候，点击按钮，会触发 click 事件..<br />
</p><img src ="http://www.blogjava.net/CopyHoo/aggbug/244922.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/CopyHoo/" target="_blank">CopyHoo</a> 2008-12-07 23:34 <a href="http://www.blogjava.net/CopyHoo/articles/244922.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>仿 163 网盘无刷新文件上传效果 1&gt;</title><link>http://www.blogjava.net/CopyHoo/articles/244915.html</link><dc:creator>CopyHoo</dc:creator><author>CopyHoo</author><pubDate>Sun, 07 Dec 2008 15:08:00 GMT</pubDate><guid>http://www.blogjava.net/CopyHoo/articles/244915.html</guid><wfw:comment>http://www.blogjava.net/CopyHoo/comments/244915.html</wfw:comment><comments>http://www.blogjava.net/CopyHoo/articles/244915.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/CopyHoo/comments/commentRss/244915.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/CopyHoo/services/trackbacks/244915.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &lt;!DOCTYPE&nbsp;html&nbsp;PUBLIC&nbsp;"-//W3C//DTD&nbsp;XHTML&nbsp;1.0&nbsp;Transitional//EN"&nbsp;"www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;&lt;html&nbsp;xmlns="www.w3.org/1999/xhtml"...&nbsp;&nbsp;<a href='http://www.blogjava.net/CopyHoo/articles/244915.html'>阅读全文</a><img src ="http://www.blogjava.net/CopyHoo/aggbug/244915.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/CopyHoo/" target="_blank">CopyHoo</a> 2008-12-07 23:08 <a href="http://www.blogjava.net/CopyHoo/articles/244915.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JS 抽象类的进一步理解</title><link>http://www.blogjava.net/CopyHoo/articles/244879.html</link><dc:creator>CopyHoo</dc:creator><author>CopyHoo</author><pubDate>Sun, 07 Dec 2008 10:23:00 GMT</pubDate><guid>http://www.blogjava.net/CopyHoo/articles/244879.html</guid><wfw:comment>http://www.blogjava.net/CopyHoo/comments/244879.html</wfw:comment><comments>http://www.blogjava.net/CopyHoo/articles/244879.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/CopyHoo/comments/commentRss/244879.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/CopyHoo/services/trackbacks/244879.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &lt;script&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;一个有趣的现象，也是一个值得分析的区别:&nbsp;&nbsp;&nbsp;Object.extend&nbsp;=&nbsp;function&nbsp;(destination,source){&nbsp;&nbsp;&nbsp;&nbsp...&nbsp;&nbsp;<a href='http://www.blogjava.net/CopyHoo/articles/244879.html'>阅读全文</a><img src ="http://www.blogjava.net/CopyHoo/aggbug/244879.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/CopyHoo/" target="_blank">CopyHoo</a> 2008-12-07 18:23 <a href="http://www.blogjava.net/CopyHoo/articles/244879.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>仿 hao123 的邮箱登陆</title><link>http://www.blogjava.net/CopyHoo/articles/244792.html</link><dc:creator>CopyHoo</dc:creator><author>CopyHoo</author><pubDate>Sat, 06 Dec 2008 10:54:00 GMT</pubDate><guid>http://www.blogjava.net/CopyHoo/articles/244792.html</guid><wfw:comment>http://www.blogjava.net/CopyHoo/comments/244792.html</wfw:comment><comments>http://www.blogjava.net/CopyHoo/articles/244792.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/CopyHoo/comments/commentRss/244792.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/CopyHoo/services/trackbacks/244792.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&lt;FORM&nbsp;name=gomail&nbsp;onsubmit="return&nbsp;clickMail()"&nbsp;action=""&nbsp;method=post&nbsp;id=FrLgn&gt;&lt;INPUT&nbsp;type=hidden&nbsp;name=url&gt;&lt;INPUT&nbsp;type=hidden&nbsp;...&nbsp;&nbsp;<a href='http://www.blogjava.net/CopyHoo/articles/244792.html'>阅读全文</a><img src ="http://www.blogjava.net/CopyHoo/aggbug/244792.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/CopyHoo/" target="_blank">CopyHoo</a> 2008-12-06 18:54 <a href="http://www.blogjava.net/CopyHoo/articles/244792.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>当存在相同的变量以及方法时，js 调用顺序</title><link>http://www.blogjava.net/CopyHoo/articles/244717.html</link><dc:creator>CopyHoo</dc:creator><author>CopyHoo</author><pubDate>Fri, 05 Dec 2008 16:22:00 GMT</pubDate><guid>http://www.blogjava.net/CopyHoo/articles/244717.html</guid><wfw:comment>http://www.blogjava.net/CopyHoo/comments/244717.html</wfw:comment><comments>http://www.blogjava.net/CopyHoo/articles/244717.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/CopyHoo/comments/commentRss/244717.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/CopyHoo/services/trackbacks/244717.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"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;</span><span style="color: #000000">script&nbsp;type</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">text/javascript</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img id="Codehighlighter1_85_228_Open_Image" onclick="this.style.display='none'; Codehighlighter1_85_228_Open_Text.style.display='none'; Codehighlighter1_85_228_Closed_Image.style.display='inline'; Codehighlighter1_85_228_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_85_228_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_85_228_Closed_Text.style.display='none'; Codehighlighter1_85_228_Open_Image.style.display='inline'; Codehighlighter1_85_228_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;Object.extend&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;(destination,source)</span><span id="Codehighlighter1_85_228_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"  alt="" /></span><span id="Codehighlighter1_85_228_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img id="Codehighlighter1_115_192_Open_Image" onclick="this.style.display='none'; Codehighlighter1_115_192_Open_Text.style.display='none'; Codehighlighter1_115_192_Closed_Image.style.display='inline'; Codehighlighter1_115_192_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_115_192_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_115_192_Closed_Text.style.display='none'; Codehighlighter1_115_192_Open_Image.style.display='inline'; Codehighlighter1_115_192_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">(property&nbsp;</span><span style="color: #0000ff">in</span><span style="color: #000000">&nbsp;source)</span><span id="Codehighlighter1_115_192_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"  alt="" /></span><span id="Codehighlighter1_115_192_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert(source[property]);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;destination[property]&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;source[property];<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;destination;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img id="Codehighlighter1_277_333_Open_Image" onclick="this.style.display='none'; Codehighlighter1_277_333_Open_Text.style.display='none'; Codehighlighter1_277_333_Closed_Image.style.display='inline'; Codehighlighter1_277_333_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_277_333_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_277_333_Closed_Text.style.display='none'; Codehighlighter1_277_333_Open_Image.style.display='inline'; Codehighlighter1_277_333_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;Object.prototype.extend&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;(object)</span><span id="Codehighlighter1_277_333_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"  alt="" /></span><span id="Codehighlighter1_277_333_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;Object.extend.apply(</span><span style="color: #0000ff">this</span><span style="color: #000000">,[</span><span style="color: #0000ff">this</span><span style="color: #000000">,object]);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img id="Codehighlighter1_352_353_Open_Image" onclick="this.style.display='none'; Codehighlighter1_352_353_Open_Text.style.display='none'; Codehighlighter1_352_353_Closed_Image.style.display='inline'; Codehighlighter1_352_353_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_352_353_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_352_353_Closed_Text.style.display='none'; Codehighlighter1_352_353_Open_Image.style.display='inline'; Codehighlighter1_352_353_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" />&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;base()</span><span id="Codehighlighter1_352_353_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"  alt="" /></span><span id="Codehighlighter1_352_353_Open_Text"><span style="color: #000000">{}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img id="Codehighlighter1_373_440_Open_Image" onclick="this.style.display='none'; Codehighlighter1_373_440_Open_Text.style.display='none'; Codehighlighter1_373_440_Closed_Image.style.display='inline'; Codehighlighter1_373_440_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_373_440_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_373_440_Closed_Text.style.display='none'; Codehighlighter1_373_440_Open_Image.style.display='inline'; Codehighlighter1_373_440_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" />&nbsp;base.prototype</span><span style="color: #000000">=</span><span id="Codehighlighter1_373_440_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"  alt="" /></span><span id="Codehighlighter1_373_440_Open_Text"><span style="color: #000000">{<br />
<img id="Codehighlighter1_399_437_Open_Image" onclick="this.style.display='none'; Codehighlighter1_399_437_Open_Text.style.display='none'; Codehighlighter1_399_437_Closed_Image.style.display='inline'; Codehighlighter1_399_437_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_399_437_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_399_437_Closed_Text.style.display='none'; Codehighlighter1_399_437_Open_Image.style.display='inline'; Codehighlighter1_399_437_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;initialize:</span><span style="color: #0000ff">function</span><span style="color: #000000">()</span><span id="Codehighlighter1_399_437_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"  alt="" /></span><span id="Codehighlighter1_399_437_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.oninit();&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">调用了一个虚方法&nbsp;</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;}</span></span><span style="color: #000000">&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img id="Codehighlighter1_446_544_Open_Image" onclick="this.style.display='none'; Codehighlighter1_446_544_Open_Text.style.display='none'; Codehighlighter1_446_544_Closed_Image.style.display='inline'; Codehighlighter1_446_544_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_446_544_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_446_544_Closed_Text.style.display='none'; Codehighlighter1_446_544_Open_Image.style.display='inline'; Codehighlighter1_446_544_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_446_544_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">/**/</span><span id="Codehighlighter1_446_544_Open_Text"><span style="color: #008000">/*</span><span style="color: #008000">&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;如果要让下面的代码继续运行，那么这一句必须被注释掉，也就是我们的&nbsp;base&nbsp;类添加了这个方法后，<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;class1&nbsp;在进行&nbsp;extend&nbsp;（继承）&nbsp;时，会报错。为什么？<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">*/</span></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img id="Codehighlighter1_591_622_Open_Image" onclick="this.style.display='none'; Codehighlighter1_591_622_Open_Text.style.display='none'; Codehighlighter1_591_622_Closed_Image.style.display='inline'; Codehighlighter1_591_622_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_591_622_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_591_622_Closed_Text.style.display='none'; Codehighlighter1_591_622_Open_Image.style.display='inline'; Codehighlighter1_591_622_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;base.prototype.oninit&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;()</span><span id="Codehighlighter1_591_622_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"  alt="" /></span><span id="Codehighlighter1_591_622_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert('方法&nbsp;oninit()&nbsp;被调用');<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;base&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;base();&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;base&nbsp;被实例化了（关键点是，只要在调用的时候，oninit()方法被定义出来了就行!）</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;base.oninit();<br />
<img id="Codehighlighter1_726_730_Open_Image" onclick="this.style.display='none'; Codehighlighter1_726_730_Open_Text.style.display='none'; Codehighlighter1_726_730_Closed_Image.style.display='inline'; Codehighlighter1_726_730_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_726_730_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_726_730_Closed_Text.style.display='none'; Codehighlighter1_726_730_Open_Image.style.display='inline'; Codehighlighter1_726_730_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_726_730_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">/**/</span><span id="Codehighlighter1_726_730_Open_Text"><span style="color: #008000">/*</span><span style="color: #008000">&nbsp;</span><span style="color: #008000">*/</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;让一个&nbsp;class&nbsp;继承于&nbsp;base&nbsp;并实现其中的&nbsp;oninit&nbsp;方法</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000"><br />
<img id="Codehighlighter1_791_792_Open_Image" onclick="this.style.display='none'; Codehighlighter1_791_792_Open_Text.style.display='none'; Codehighlighter1_791_792_Closed_Image.style.display='inline'; Codehighlighter1_791_792_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_791_792_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_791_792_Closed_Text.style.display='none'; Codehighlighter1_791_792_Open_Image.style.display='inline'; Codehighlighter1_791_792_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;class1()</span><span id="Codehighlighter1_791_792_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"  alt="" /></span><span id="Codehighlighter1_791_792_Open_Text"><span style="color: #000000">{}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;class1.prototype&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;base()).extend(<br />
<img id="Codehighlighter1_839_921_Open_Image" onclick="this.style.display='none'; Codehighlighter1_839_921_Open_Text.style.display='none'; Codehighlighter1_839_921_Closed_Image.style.display='inline'; Codehighlighter1_839_921_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_839_921_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_839_921_Closed_Text.style.display='none'; Codehighlighter1_839_921_Open_Image.style.display='inline'; Codehighlighter1_839_921_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_839_921_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"  alt="" /></span><span id="Codehighlighter1_839_921_Open_Text"><span style="color: #000000">{<br />
<img id="Codehighlighter1_864_917_Open_Image" onclick="this.style.display='none'; Codehighlighter1_864_917_Open_Text.style.display='none'; Codehighlighter1_864_917_Closed_Image.style.display='inline'; Codehighlighter1_864_917_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_864_917_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_864_917_Closed_Text.style.display='none'; Codehighlighter1_864_917_Open_Image.style.display='inline'; Codehighlighter1_864_917_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;oninit&nbsp;:&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;()</span><span id="Codehighlighter1_864_917_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"  alt="" /></span><span id="Codehighlighter1_864_917_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;实现抽象基类的&nbsp;oninit&nbsp;虚方法&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;oninit&nbsp;函数实现</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;问题：&nbsp;为什么&nbsp;base&nbsp;中定义了，并实现了&nbsp;oninit&nbsp;方法后，进行&nbsp;继承后，会产生错误？</span><span style="color: #008000"><br />
<img id="Codehighlighter1_983_1122_Open_Image" onclick="this.style.display='none'; Codehighlighter1_983_1122_Open_Text.style.display='none'; Codehighlighter1_983_1122_Closed_Image.style.display='inline'; Codehighlighter1_983_1122_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_983_1122_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_983_1122_Closed_Text.style.display='none'; Codehighlighter1_983_1122_Open_Image.style.display='inline'; Codehighlighter1_983_1122_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;</span><span id="Codehighlighter1_983_1122_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">/**/</span><span id="Codehighlighter1_983_1122_Open_Text"><span style="color: #008000">/*</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;当然从语义上面来讲，继承后，肯定是对抽象方法的实现。但是，为什么语法上有这个限制，<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;而且，我们应该知道，子类是可以对父类方法进行重写的。或许有人站出来说，我将&nbsp;java&nbsp;与&nbsp;js&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;弄混淆了，但是，请注意，我这只是为了发现问题，请告诉我，为什么？<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #008000">*/</span></span><span style="color: #000000">&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img id="Codehighlighter1_1133_1616_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1133_1616_Open_Text.style.display='none'; Codehighlighter1_1133_1616_Closed_Image.style.display='inline'; Codehighlighter1_1133_1616_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1133_1616_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1133_1616_Closed_Text.style.display='none'; Codehighlighter1_1133_1616_Open_Image.style.display='inline'; Codehighlighter1_1133_1616_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_1133_1616_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">/**/</span><span id="Codehighlighter1_1133_1616_Open_Text"><span style="color: #008000">/*</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;一个神奇的解决方法：&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1.&nbsp;用&nbsp;editplus&nbsp;打开<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2.&nbsp;找到&nbsp;var&nbsp;base&nbsp;=&nbsp;new&nbsp;base();&nbsp;这个标准的在39&nbsp;行&nbsp;以及&nbsp;base.oninit();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3.&nbsp;将&nbsp;变量&nbsp;base&nbsp;改为&nbsp;任何其他的变量，比如:<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;ba&nbsp;=&nbsp;new&nbsp;base();&nbsp;ba.oninit();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;问题解决完毕！！<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;也就是说，&nbsp;js&nbsp;是首先搜索当前作用域对象的变量，然后再查找方法块的！！！<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;比如先查找&nbsp;&nbsp;window.base&nbsp;变量，再查找&nbsp;window.base()&nbsp;方法，<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;这样的话，<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;下面的&nbsp;class1.prototype&nbsp;=&nbsp;(new&nbsp;base()).extend{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;这里的&nbsp;new&nbsp;base()&nbsp;就是先将&nbsp;base&nbsp;当做变量，而不是方法！！！<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;关于这个问题，我们可以做一个简单的测试!<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;alert&nbsp;=&nbsp;alert(123);&nbsp;&nbsp;&nbsp;//&nbsp;产生错误，页面没有任何显示.<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert(333);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">*/</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;/</span><span style="color: #000000">script</span><span style="color: #000000">&gt;</span></div>
<img src ="http://www.blogjava.net/CopyHoo/aggbug/244717.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/CopyHoo/" target="_blank">CopyHoo</a> 2008-12-06 00:22 <a href="http://www.blogjava.net/CopyHoo/articles/244717.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一个小 js 应用引发的思考</title><link>http://www.blogjava.net/CopyHoo/articles/244641.html</link><dc:creator>CopyHoo</dc:creator><author>CopyHoo</author><pubDate>Fri, 05 Dec 2008 09:44:00 GMT</pubDate><guid>http://www.blogjava.net/CopyHoo/articles/244641.html</guid><wfw:comment>http://www.blogjava.net/CopyHoo/comments/244641.html</wfw:comment><comments>http://www.blogjava.net/CopyHoo/articles/244641.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/CopyHoo/comments/commentRss/244641.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/CopyHoo/services/trackbacks/244641.html</trackback:ping><description><![CDATA[<br />
有这样一句代码:<br />
document.images.slide .style....<br />
其中 slide 是一个图片的 id<br />
<br />
思考：&nbsp;<br />
&nbsp;images 是一个数组对象，因为可以用 images[0] 这样的方式进行访问，而我们可以 images.slide 这样的方式进行访问，也就是说，object.attribute (对象.属性名)&nbsp;对于数组是同样有效地。而 images 是将 "图片id" 作为 属性来进行访问的，如果换做一般的数组，又会怎样访问呢？<br />
<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"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;</span><span style="color: #000000">script&nbsp;type</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">text/javascript</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;arr&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Array(</span><span style="color: #000000">"</span><span style="color: #000000">China</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">"</span><span style="color: #000000">USA</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">"</span><span style="color: #000000">England</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;这种方式无疑是可以的</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;alert(arr[</span><span style="color: #000000">0</span><span style="color: #000000">]);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;以对象的方式，又如何进行访问呢？object.attribute</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;alert(arr.China);&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;output&nbsp;"undefined"</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;/</span><span style="color: #000000">script</span><span style="color: #000000">&gt;</span></div>
<br />
其实，是我自己理解错了。。<br />
我们应该这样来看，我们应该说，对象拥有两种访问方式，<br />
1.&nbsp; object.attribute&nbsp;&nbsp;&nbsp; 对象.属性名<br />
2. object[index]&nbsp;&nbsp;&nbsp;&nbsp; 像数组一样用下标进行访问<br />
<br />
我们总是在小问题上面分不清楚，闹不清楚。<br />
我，一定要搞清楚。
<img src ="http://www.blogjava.net/CopyHoo/aggbug/244641.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/CopyHoo/" target="_blank">CopyHoo</a> 2008-12-05 17:44 <a href="http://www.blogjava.net/CopyHoo/articles/244641.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JS 常见的几个小问题，以及解决方案</title><link>http://www.blogjava.net/CopyHoo/articles/244636.html</link><dc:creator>CopyHoo</dc:creator><author>CopyHoo</author><pubDate>Fri, 05 Dec 2008 09:28:00 GMT</pubDate><guid>http://www.blogjava.net/CopyHoo/articles/244636.html</guid><wfw:comment>http://www.blogjava.net/CopyHoo/comments/244636.html</wfw:comment><comments>http://www.blogjava.net/CopyHoo/articles/244636.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/CopyHoo/comments/commentRss/244636.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/CopyHoo/services/trackbacks/244636.html</trackback:ping><description><![CDATA[<br />
1. 使用数字类型的时候，经常搞到最后成了一个 NaN ，特别是在一个数字循环递增递减的时候，比如做一个图片轮循，图片的下标就会不断地改变。。。（我同事就碰到了这个问题，喷血呀。。找了半天错误）<br />
&nbsp;&nbsp;解决方法： 在使用时，习惯性的加上 parseInt();<br />
<br />
2.进入一个页面的时候， 有js 函数的调用，但是调用的结果往往是 报错或者 页面没有任何效果。&nbsp;&nbsp;&nbsp;&nbsp;<br />
这往往是你的 js 立即被调用，页面还没有被加载完全，而 js 中试用了页面的元素，比如 div ,img <br />
等等。<br />
解决方法: 1 . 用 setTimeout("",0);&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2. 放在 body 的 onload() 事件中<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3. 将 script 放在页面的结尾<br />
<br />
3. div 不要超过 3层 ，table 不要超过 4 层，否则解释起来，很慢。
<img src ="http://www.blogjava.net/CopyHoo/aggbug/244636.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/CopyHoo/" target="_blank">CopyHoo</a> 2008-12-05 17:28 <a href="http://www.blogjava.net/CopyHoo/articles/244636.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JS 抽象类</title><link>http://www.blogjava.net/CopyHoo/articles/244559.html</link><dc:creator>CopyHoo</dc:creator><author>CopyHoo</author><pubDate>Fri, 05 Dec 2008 03:52:00 GMT</pubDate><guid>http://www.blogjava.net/CopyHoo/articles/244559.html</guid><wfw:comment>http://www.blogjava.net/CopyHoo/comments/244559.html</wfw:comment><comments>http://www.blogjava.net/CopyHoo/articles/244559.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/CopyHoo/comments/commentRss/244559.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/CopyHoo/services/trackbacks/244559.html</trackback:ping><description><![CDATA[<div id="csdn_zhaig_ad_yahoo_2"><span style="color: #ff0000">转载自:<font style="background-color: #cce8cc">http://book.csdn.net/bookfiles/33/10033968.shtml</font></span><br />
<br />
<table cellspacing="0" cellpadding="0" width="100%" border="0">
    <tbody>
        <tr>
            <td class="y_r">
            <dl>
            <dt><a href="http://tagegg.csdn.net/b.aspx?action=click&amp;unionuser=22&amp;adid=1958&amp;tag=&amp;adurl=http%3a%2f%2fwww.itcast.net%2fportal%2fcourses%2funit%2f191" target="_blank">相等性（==及equals方法）详解</a></dt>
            <dd>JAVA面试必看！ Java常见面试题目深度剖析 </dd>
            <dd><a href="http://tagegg.csdn.net/b.aspx?action=click&amp;unionuser=22&amp;adid=1958&amp;tag=&amp;adurl=http%3a%2f%2fwww.itcast.net%2fportal%2fcourses%2funit%2f191" target="_blank">http://info-database.csdn.net/Upload/2008-08-01/logo.jpg</a></dd>
            <dt><a href="http://tagegg.csdn.net/b.aspx?action=click&amp;unionuser=22&amp;adid=1955&amp;tag=&amp;adurl=http%3a%2f%2fwww.itcast.net%2fportal%2fcourses%2funit%2f190" target="_blank">Java数组与异常详解</a></dt>
            <dd>JAVA面试必看！ Java常见笔试题目深度剖析 </dd>
            <dd><a href="http://tagegg.csdn.net/b.aspx?action=click&amp;unionuser=22&amp;adid=1955&amp;tag=&amp;adurl=http%3a%2f%2fwww.itcast.net%2fportal%2fcourses%2funit%2f190" target="_blank">http://info-database.csdn.net/Upload/2008-08-01/logo.jpg</a></dd>
            <dt><a href="http://tagegg.csdn.net/b.aspx?action=click&amp;unionuser=22&amp;adid=1956&amp;tag=&amp;adurl=http%3a%2f%2fwww.itcast.net%2fportal%2fcourses%2funit%2f190" target="_blank">Java数组与异常详解</a></dt>
            <dd>JAVA面试必看！ Java常见笔试题目深度剖析 </dd>
            <dd><a href="http://tagegg.csdn.net/b.aspx?action=click&amp;unionuser=22&amp;adid=1956&amp;tag=&amp;adurl=http%3a%2f%2fwww.itcast.net%2fportal%2fcourses%2funit%2f190" target="_blank">http://info-database.csdn.net/Upload/2008-08-01/logo.jpg</a></dd></dl></td>
        </tr>
    </tbody>
</table>
</div>
<font size="5"><strong>6.7&nbsp; 实现抽象类</strong></font><br />
<br />
<font size="4"><strong>6.7.1&nbsp; 抽象类和虚函数<br />
</strong></font>虚函数是类成员中的概念，是只做了一个声明而未实现的方法，具有虚函数的类就称之为抽象类，这些虚函数在派生类中才被实现。抽象类是不能实例化的，因为其中的虚函数并不是一个完整的函数，不能被调用。所以抽象类一般只作为基类被派生以后再使用。<br />
和类的继承一样，JavaScript并没有任何机制用于支持抽象类。但利用JavaScript语言本身的性质，可以实现自己的抽象类。<br />
<font size="4"><strong><br />
6.7.2&nbsp; 在JavaScript实现抽象类<br />
</strong></font>在传统面向对象语言中，抽象类中的虚方法必须先被声明，但可以在其他方法中被调用。而在JavaScript中，虚方法就可以看作该类中没有定义的方法，但已经通过this指针使用了。和传统面向对象不同的是，这里虚方法不需经过声明，而直接使用了。这些方法将在派生类中实现，例如：<br />
&lt;script language="JavaScript" type="text/javascript"&gt;<br />
&lt;!--<br />
//定义extend方法<br />
Object.extend = function(destination, source) { <br />
&nbsp; for (property in source) { <br />
&nbsp;&nbsp;&nbsp; destination[property] = source[property]; <br />
&nbsp; } <br />
&nbsp; return destination; <br />
}<br />
Object.prototype.extend = function(object) { <br />
&nbsp; return Object.extend.apply(this, [this, object]); <br />
}<br />
//定义一个抽象基类base，无构造函数<br />
function base(){}<br />
base.prototype={<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; initialize:function(){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.oninit();&nbsp;//调用了一个虚方法<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
}<br />
//定义class1<br />
function class1(){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //构造函数<br />
}<br />
//让class1继承于base并实现其中的oninit方法<br />
class1.prototype=(new base()).extend({<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; oninit:function(){ //实现抽象基类中的oninit虚方法<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //oninit函数的实现<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
});<br />
//--&gt;<br />
&lt;/script&gt;<br />
这样，当在class1的实例中调用继承得到的initialize方法时，就会自动执行派生类中的oninit()方法。从这里也可以看到解释型语言执行的特点，它们只有在运行到某一个方法调用时，才会检查该方法是否存在，而不会向编译型语言一样在编译阶段就检查方法存在与否。JavaScript中则避免了这个问题。当然，如果希望在基类中添加虚方法的一个定义，也是可以的，只要在派生类中覆盖此方法即可。例如：<br />
//定义一个抽象基类base，无构造函数<br />
function base(){}<br />
base.prototype={<br />
&nbsp;&nbsp;&nbsp;&nbsp; initialize:function(){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.oninit();&nbsp;//调用了一个虚方法<br />
&nbsp;&nbsp;&nbsp;&nbsp; },<br />
&nbsp;&nbsp;&nbsp;&nbsp; oninit:function(){}&nbsp;//虚方法是一个空方法，由派生类实现<br />
}<br />
<br />
<font size="4"><strong>6.7.3&nbsp; 使用抽象类的示例<br />
</strong></font>仍然以prototype-1.3.1为例，其中定义了一个类的创建模型：<br />
//Class是一个全局对象，有一个方法create，用于返回一个类<br />
var Class = { <br />
&nbsp;&nbsp; create: function() { <br />
&nbsp;&nbsp;&nbsp;&nbsp; return function() { <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.initialize.apply(this, arguments); <br />
&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp; }<br />
}<br />
这里Class是一个全局对象，具有一个方法create，用于返回一个函数（类），从而声明一个类，可以用如下语法：<br />
var class1=Class.create();<br />
这样和函数的定义方式区分开来，使JavaScript语言能够更具备面向对象语言的特点。现在来看这个返回的函数（类）：<br />
function(){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.initialize.apply(this, arguments);<br />
}<br />
这个函数也是一个类的构造函数，当new这个类时便会得到执行。它调用了一个initialize方法，从名字来看，是类的构造函数。而从类的角度来看，它是一个虚方法，是未定义的。但这个虚方法的实现并不是在派生类中实现的，而是创建完一个类后，在prototype中定义的，例如prototype可以这样写：<br />
var class1=Class.create();<br />
class1.prototype={<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; initialize:function(userName){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert(&#8220;hello,&#8221;+userName);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
}<br />
这样，每次创建类的实例时，initialize方法都会得到执行，从而实现了将类的构造函数和类成员一起定义的功能。其中，为了能够给构造函数传递参数，使用了这样的语句：<br />
function(){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.initialize.apply(this, arguments);<br />
}<br />
实际上，这里的arguments是function()中所传进来的参数，也就是new class1(args)中传递进来的args，现在要把args传递给initialize，巧妙的使用了函数的apply方法，注意不能写成：<br />
this.initialize(arguments);<br />
这是将arguments数组作为一个参数传递给initialize方法，而apply方法则可以把arguments数组对象的元素作为一组参数传递过去，这是一种很巧妙的实现。<br />
尽管这个例子在prototype-1.3.1中不是一个抽象类的概念，而是类的一种设计模式。但实际上可以把Class.create()返回的类看作所有类的共同基类，它在构造函数中调用了一个虚方法initialize，所有继承于它的类都必须实现这个方法，完成构造函数的功能。它们得以实现的本质就是对prototype的操作。
<img src ="http://www.blogjava.net/CopyHoo/aggbug/244559.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/CopyHoo/" target="_blank">CopyHoo</a> 2008-12-05 11:52 <a href="http://www.blogjava.net/CopyHoo/articles/244559.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JS 创建对象的几种方式</title><link>http://www.blogjava.net/CopyHoo/articles/244547.html</link><dc:creator>CopyHoo</dc:creator><author>CopyHoo</author><pubDate>Fri, 05 Dec 2008 03:45:00 GMT</pubDate><guid>http://www.blogjava.net/CopyHoo/articles/244547.html</guid><wfw:comment>http://www.blogjava.net/CopyHoo/comments/244547.html</wfw:comment><comments>http://www.blogjava.net/CopyHoo/articles/244547.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/CopyHoo/comments/commentRss/244547.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/CopyHoo/services/trackbacks/244547.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"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">&lt;</span><span style="color: #000000">script&nbsp;type</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">text/javascript</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img id="Codehighlighter1_34_49_Open_Image" onclick="this.style.display='none'; Codehighlighter1_34_49_Open_Text.style.display='none'; Codehighlighter1_34_49_Closed_Image.style.display='inline'; Codehighlighter1_34_49_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_34_49_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_34_49_Closed_Text.style.display='none'; Codehighlighter1_34_49_Open_Image.style.display='inline'; Codehighlighter1_34_49_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span id="Codehighlighter1_34_49_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">/**/</span><span id="Codehighlighter1_34_49_Open_Text"><span style="color: #008000">/*</span><span style="color: #008000">&nbsp;创建对象的几种方式:&nbsp;</span><span style="color: #008000">*/</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;1.&nbsp;工厂方法:能创建并返回特定类型对象的工厂函数(factory&nbsp;function).</span><span style="color: #008000"><br />
<img id="Codehighlighter1_126_381_Open_Image" onclick="this.style.display='none'; Codehighlighter1_126_381_Open_Text.style.display='none'; Codehighlighter1_126_381_Closed_Image.style.display='inline'; Codehighlighter1_126_381_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_126_381_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_126_381_Closed_Text.style.display='none'; Codehighlighter1_126_381_Open_Image.style.display='inline'; Codehighlighter1_126_381_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;createCar(sColor)</span><span id="Codehighlighter1_126_381_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"  alt="" /></span><span id="Codehighlighter1_126_381_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;car&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Object();&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;或者&nbsp;var&nbsp;car&nbsp;=&nbsp;new&nbsp;Object&nbsp;;</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;对象属性</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;car.color&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;sColor&nbsp;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;对象方法</span><span style="color: #008000"><br />
<img id="Codehighlighter1_255_275_Open_Image" onclick="this.style.display='none'; Codehighlighter1_255_275_Open_Text.style.display='none'; Codehighlighter1_255_275_Closed_Image.style.display='inline'; Codehighlighter1_255_275_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_255_275_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_255_275_Closed_Text.style.display='none'; Codehighlighter1_255_275_Open_Image.style.display='inline'; Codehighlighter1_255_275_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;car.showColor&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;()</span><span id="Codehighlighter1_255_275_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"  alt="" /></span><span id="Codehighlighter1_255_275_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert(</span><span style="color: #000000">123</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;记住，这里一定要用&nbsp;;&nbsp;表示结束</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;car;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;这里是&nbsp;return&nbsp;car&nbsp;;&nbsp;而不是&nbsp;return&nbsp;this.car&nbsp;;&nbsp;因为&nbsp;this.car&nbsp;为&nbsp;undefined</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" /></span><span style="color: #000000">}</span></span><span style="color: #000000"><br />
<img id="Codehighlighter1_383_666_Open_Image" onclick="this.style.display='none'; Codehighlighter1_383_666_Open_Text.style.display='none'; Codehighlighter1_383_666_Closed_Image.style.display='inline'; Codehighlighter1_383_666_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_383_666_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_383_666_Closed_Text.style.display='none'; Codehighlighter1_383_666_Open_Image.style.display='inline'; Codehighlighter1_383_666_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span id="Codehighlighter1_383_666_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">/**/</span><span id="Codehighlighter1_383_666_Open_Text"><span style="color: #008000">/*</span><span style="color: #008000">&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;调用此函数时，将创建对象，并赋予它所有必要的属性，使用此方法创建&nbsp;car&nbsp;对象的两个版本，<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;(&nbsp;oCar1&nbsp;和&nbsp;oCar2&nbsp;)&nbsp;,他们的属性完全一样。<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;使用此方法存在的问题:<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;1.&nbsp;语义上看起来不像使用带有构造函数的&nbsp;new&nbsp;运算那么正规.<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;2.&nbsp;使用这种方式必须创建对象的方法。每次调用&nbsp;createCar()，都要创建&nbsp;showColor(),意味着每一个对象<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;都有自己的&nbsp;showColor&nbsp;版本，事实上，每一个对象都共享了是同一个函数.<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;有些开发者在工厂函数外定义对象的方法，然后通过属性指向该方法。从而避免这个问题:<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" /></span><span style="color: #008000">*/</span></span><span style="color: #000000"><br />
<img id="Codehighlighter1_695_788_Open_Image" onclick="this.style.display='none'; Codehighlighter1_695_788_Open_Text.style.display='none'; Codehighlighter1_695_788_Closed_Image.style.display='inline'; Codehighlighter1_695_788_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_695_788_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_695_788_Closed_Text.style.display='none'; Codehighlighter1_695_788_Open_Image.style.display='inline'; Codehighlighter1_695_788_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;createCar2(sColor)</span><span id="Codehighlighter1_695_788_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"  alt="" /></span><span id="Codehighlighter1_695_788_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;car&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Object();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;car.color&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;sColor&nbsp;;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;car.showColor&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;showColor&nbsp;;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;car&nbsp;;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img id="Codehighlighter1_811_833_Open_Image" onclick="this.style.display='none'; Codehighlighter1_811_833_Open_Text.style.display='none'; Codehighlighter1_811_833_Closed_Image.style.display='inline'; Codehighlighter1_811_833_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_811_833_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_811_833_Closed_Text.style.display='none'; Codehighlighter1_811_833_Open_Image.style.display='inline'; Codehighlighter1_811_833_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;showColor()</span><span id="Codehighlighter1_811_833_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"  alt="" /></span><span id="Codehighlighter1_811_833_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;alert(</span><span style="color: #0000ff">this</span><span style="color: #000000">.color);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;oCar1&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;createCar('red');<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;oCar2&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;createCar('yellow');<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;oCar3&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;createCar2('blue');<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;oCar4&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;createCar2('black');<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img id="Codehighlighter1_966_1081_Open_Image" onclick="this.style.display='none'; Codehighlighter1_966_1081_Open_Text.style.display='none'; Codehighlighter1_966_1081_Closed_Image.style.display='inline'; Codehighlighter1_966_1081_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_966_1081_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_966_1081_Closed_Text.style.display='none'; Codehighlighter1_966_1081_Open_Image.style.display='inline'; Codehighlighter1_966_1081_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span id="Codehighlighter1_966_1081_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">/**/</span><span id="Codehighlighter1_966_1081_Open_Text"><span style="color: #008000">/*</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;注意这两个对象(oCar3&nbsp;和&nbsp;oCar4&nbsp;)&nbsp;调用showColor&nbsp;属性的方式，虽然美其名曰是&#8220;属性&#8221;，其实还是方法!!!<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;所以是&nbsp;oCar3.showColor();&nbsp;而不是&nbsp;oCar3.showColor&nbsp;;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" /></span><span style="color: #008000">*/</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />oCar3.showColor();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />oCar4.showColor();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img id="Codehighlighter1_1123_1296_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1123_1296_Open_Text.style.display='none'; Codehighlighter1_1123_1296_Closed_Image.style.display='inline'; Codehighlighter1_1123_1296_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1123_1296_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1123_1296_Closed_Text.style.display='none'; Codehighlighter1_1123_1296_Open_Image.style.display='inline'; Codehighlighter1_1123_1296_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span id="Codehighlighter1_1123_1296_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">/**/</span><span id="Codehighlighter1_1123_1296_Open_Text"><span style="color: #008000">/*</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;在这段重写的代码中，在函数&nbsp;createCar2()&nbsp;前定义了函数showColor(),&nbsp;在&nbsp;createCar2()&nbsp;内部，赋予对象一个已经<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;指向已经存在的&nbsp;showColor()&nbsp;函数的指针，从功能上讲，这样解决了重复创建对象的问题，但该函数看起来不像对象<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;的方法。<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;所有这些问题引起了开发者的定义构造函数的出现<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" /></span><span style="color: #008000">*/</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;2.&nbsp;构造函数方式</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000"><br />
<img id="Codehighlighter1_1333_1412_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1333_1412_Open_Text.style.display='none'; Codehighlighter1_1333_1412_Closed_Image.style.display='inline'; Codehighlighter1_1333_1412_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1333_1412_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1333_1412_Closed_Text.style.display='none'; Codehighlighter1_1333_1412_Open_Image.style.display='inline'; Codehighlighter1_1333_1412_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;Car(sColor)</span><span id="Codehighlighter1_1333_1412_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"  alt="" /></span><span id="Codehighlighter1_1333_1412_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.color&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;sColor;<br />
<img id="Codehighlighter1_1385_1409_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1385_1409_Open_Text.style.display='none'; Codehighlighter1_1385_1409_Closed_Image.style.display='inline'; Codehighlighter1_1385_1409_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1385_1409_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1385_1409_Closed_Text.style.display='none'; Codehighlighter1_1385_1409_Open_Image.style.display='inline'; Codehighlighter1_1385_1409_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.showColor&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">()</span><span id="Codehighlighter1_1385_1409_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"  alt="" /></span><span id="Codehighlighter1_1385_1409_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert(</span><span style="color: #0000ff">this</span><span style="color: #000000">.color);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;car1&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Car('red');<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />car1.showColor();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img id="Codehighlighter1_1461_1651_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1461_1651_Open_Text.style.display='none'; Codehighlighter1_1461_1651_Closed_Image.style.display='inline'; Codehighlighter1_1461_1651_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1461_1651_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1461_1651_Closed_Text.style.display='none'; Codehighlighter1_1461_1651_Open_Image.style.display='inline'; Codehighlighter1_1461_1651_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span id="Codehighlighter1_1461_1651_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">/**/</span><span id="Codehighlighter1_1461_1651_Open_Text"><span style="color: #008000">/*</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;你可能已经注意到第一个的差别了，在构造函数内部无创建对象，而是使用&nbsp;this&nbsp;关键字，使用&nbsp;new&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;运算符调用构造函数，在执行第一行代码前先创建一个对象，只有用&nbsp;this&nbsp;才能访问该对象。然后可以<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;直接赋予&nbsp;this&nbsp;属性，默认情况下是构造函数的返回值，（不必明确使用&nbsp;return&nbsp;运算符）。<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;这种方式在管理函数方面与工厂方法一样都存在相同的问题.<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;</span><span style="color: #008000">*/</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;3.&nbsp;原型方式</span><span style="color: #008000"><br />
<img id="Codehighlighter1_1680_1682_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1680_1682_Open_Text.style.display='none'; Codehighlighter1_1680_1682_Closed_Image.style.display='inline'; Codehighlighter1_1680_1682_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1680_1682_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1680_1682_Closed_Text.style.display='none'; Codehighlighter1_1680_1682_Open_Image.style.display='inline'; Codehighlighter1_1680_1682_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;PCar()</span><span id="Codehighlighter1_1680_1682_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"  alt="" /></span><span id="Codehighlighter1_1680_1682_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />PCar.prototype.color&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">blue</span><span style="color: #000000">"</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;pcar1&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;PCar();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img id="Codehighlighter1_1741_1914_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1741_1914_Open_Text.style.display='none'; Codehighlighter1_1741_1914_Closed_Image.style.display='inline'; Codehighlighter1_1741_1914_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1741_1914_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1741_1914_Closed_Text.style.display='none'; Codehighlighter1_1741_1914_Open_Image.style.display='inline'; Codehighlighter1_1741_1914_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span id="Codehighlighter1_1741_1914_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">/**/</span><span id="Codehighlighter1_1741_1914_Open_Text"><span style="color: #008000">/*</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;调用&nbsp;new&nbsp;Car()时，原型的所有属性都被立即赋予要创建的对象，意味着所有的&nbsp;PCar&nbsp;实例存放的是指向<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;showColor()&nbsp;函数的指针，从语义看起来都属于一个对象，因此解决了前面两种方式存在的问题。此外使用<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;该方法，还能使用&nbsp;instanceof&nbsp;运算符检查给定变量指向的对象类型。因此下面的代码将输出&nbsp;true:<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" /></span><span style="color: #008000">*/</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />alert(pcar1&nbsp;</span><span style="color: #0000ff">instanceof</span><span style="color: #000000">&nbsp;PCar);&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;output&nbsp;"true"</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000"><br />
<img id="Codehighlighter1_1965_2136_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1965_2136_Open_Text.style.display='none'; Codehighlighter1_1965_2136_Closed_Image.style.display='inline'; Codehighlighter1_1965_2136_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1965_2136_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1965_2136_Closed_Text.style.display='none'; Codehighlighter1_1965_2136_Open_Image.style.display='inline'; Codehighlighter1_1965_2136_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span id="Codehighlighter1_1965_2136_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">/**/</span><span id="Codehighlighter1_1965_2136_Open_Text"><span style="color: #008000">/*</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;这个方法看起来不错，遗憾的是，它并不尽人意。<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;1.&nbsp;首先这个构造函数没有参数。使用原型方式时，不能给构造函数传递参数初始化属性值，因为&nbsp;pcar1&nbsp;和<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pcar2&nbsp;的属性都等于&nbsp;"blue"<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;2.&nbsp;真正的问题出现在属性指向的对象,而不是函数时，函数共享不会造成任何问题，但是对象却是很少被多个<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;实例共享的。<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;</span><span style="color: #008000">*/</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;4.&nbsp;混合的构造函数/原型方式(推荐)</span><span style="color: #008000"><br />
<img id="Codehighlighter1_2164_2256_Open_Image" onclick="this.style.display='none'; Codehighlighter1_2164_2256_Open_Text.style.display='none'; Codehighlighter1_2164_2256_Closed_Image.style.display='inline'; Codehighlighter1_2164_2256_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_2164_2256_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_2164_2256_Closed_Text.style.display='none'; Codehighlighter1_2164_2256_Open_Image.style.display='inline'; Codehighlighter1_2164_2256_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span id="Codehighlighter1_2164_2256_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">/**/</span><span id="Codehighlighter1_2164_2256_Open_Text"><span style="color: #008000">/*</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;联合使用构造函数和原型方式，就可像使用其他程序设计语言一样创建对象，这种概念非常简单，即用构造函数<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;定义对象的所有非函数属性，用原型方式定义对象的函数属性(方法)。<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;</span><span style="color: #008000">*/</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img id="Codehighlighter1_2280_2346_Open_Image" onclick="this.style.display='none'; Codehighlighter1_2280_2346_Open_Text.style.display='none'; Codehighlighter1_2280_2346_Closed_Image.style.display='inline'; Codehighlighter1_2280_2346_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_2280_2346_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_2280_2346_Closed_Text.style.display='none'; Codehighlighter1_2280_2346_Open_Image.style.display='inline'; Codehighlighter1_2280_2346_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;hCar(sColor)</span><span id="Codehighlighter1_2280_2346_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"  alt="" /></span><span id="Codehighlighter1_2280_2346_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.color&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;sColor;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.drivers&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Array('Mike','Sue');<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img id="Codehighlighter1_2386_2408_Open_Image" onclick="this.style.display='none'; Codehighlighter1_2386_2408_Open_Text.style.display='none'; Codehighlighter1_2386_2408_Closed_Image.style.display='inline'; Codehighlighter1_2386_2408_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_2386_2408_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_2386_2408_Closed_Text.style.display='none'; Codehighlighter1_2386_2408_Open_Image.style.display='inline'; Codehighlighter1_2386_2408_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" />hCar.prototype.showColor&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">()</span><span id="Codehighlighter1_2386_2408_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"  alt="" /></span><span id="Codehighlighter1_2386_2408_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;alert(</span><span style="color: #0000ff">this</span><span style="color: #000000">.color);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;hcar1&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;hCar('y&nbsp;color');<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;hcar2&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;hCar('r&nbsp;color');<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />hcar1.drivers.push('Matt');<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />alert(hcar1.drivers);&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;output&nbsp;"Mike,Sue,Matt"</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">alert(hcar2.drivers);&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;output&nbsp;"Mike,Sue"</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;5.&nbsp;动态原型方式&nbsp;(推荐)</span><span style="color: #008000"><br />
<img id="Codehighlighter1_2619_2836_Open_Image" onclick="this.style.display='none'; Codehighlighter1_2619_2836_Open_Text.style.display='none'; Codehighlighter1_2619_2836_Closed_Image.style.display='inline'; Codehighlighter1_2619_2836_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_2619_2836_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_2619_2836_Closed_Text.style.display='none'; Codehighlighter1_2619_2836_Open_Image.style.display='inline'; Codehighlighter1_2619_2836_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span id="Codehighlighter1_2619_2836_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">/**/</span><span id="Codehighlighter1_2619_2836_Open_Text"><span style="color: #008000">/*</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;对于习惯使用其他开发语言的开发者来说，使用混合构造函数/原型方式感觉不那么和谐。批评构造函数/原型方式的人<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;认为，在构造函数内找属性，在外部找方法的做法不合理。所以他们设计了动态原型方式，以供更友好的编码风格。<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;动态原型方式的基本想法与混合构造函数/原型方式&nbsp;相同，即在构造函数内定义非函数的属性，而函数的属性则利用<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;原型属性定义。唯一的区别是赋予对象方法的位置。下面是使用动态原型方法重写的&nbsp;Car&nbsp;类:<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" /></span><span style="color: #008000">*/</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img id="Codehighlighter1_2860_3074_Open_Image" onclick="this.style.display='none'; Codehighlighter1_2860_3074_Open_Text.style.display='none'; Codehighlighter1_2860_3074_Closed_Image.style.display='inline'; Codehighlighter1_2860_3074_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_2860_3074_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_2860_3074_Closed_Text.style.display='none'; Codehighlighter1_2860_3074_Open_Image.style.display='inline'; Codehighlighter1_2860_3074_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;DCar(sColor)</span><span id="Codehighlighter1_2860_3074_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"  alt="" /></span><span id="Codehighlighter1_2860_3074_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.color&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;sColor;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.drivers&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Array('Mike','Sue');<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img id="Codehighlighter1_2971_3044_Open_Image" onclick="this.style.display='none'; Codehighlighter1_2971_3044_Open_Text.style.display='none'; Codehighlighter1_2971_3044_Closed_Image.style.display='inline'; Codehighlighter1_2971_3044_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_2971_3044_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_2971_3044_Closed_Text.style.display='none'; Codehighlighter1_2971_3044_Open_Image.style.display='inline'; Codehighlighter1_2971_3044_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(</span><span style="color: #0000ff">typeof</span><span style="color: #000000">&nbsp;DCar._initialized&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;'undefined')</span><span id="Codehighlighter1_2971_3044_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"  alt="" /></span><span id="Codehighlighter1_2971_3044_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img id="Codehighlighter1_3015_3041_Open_Image" onclick="this.style.display='none'; Codehighlighter1_3015_3041_Open_Text.style.display='none'; Codehighlighter1_3015_3041_Closed_Image.style.display='inline'; Codehighlighter1_3015_3041_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_3015_3041_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_3015_3041_Closed_Text.style.display='none'; Codehighlighter1_3015_3041_Open_Image.style.display='inline'; Codehighlighter1_3015_3041_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DCar.prototype.showColor&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">()</span><span id="Codehighlighter1_3015_3041_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"  alt="" /></span><span id="Codehighlighter1_3015_3041_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert(</span><span style="color: #0000ff">this</span><span style="color: #000000">.color);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;DCar._initialized&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">true</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;dcar1&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;DCar('y&nbsp;dcar');<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;dcar2&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;DCar('b&nbsp;dcar');<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />dcar1.showColor();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />dcar2.showColor();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />alert(DCar._initialized);&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;output&nbsp;"true"</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">alert(dcar1._initialized);&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;output&nbsp;"undefined"</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;/</span><span style="color: #000000">script</span><span style="color: #000000">&gt;</span></div>
<img src ="http://www.blogjava.net/CopyHoo/aggbug/244547.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/CopyHoo/" target="_blank">CopyHoo</a> 2008-12-05 11:45 <a href="http://www.blogjava.net/CopyHoo/articles/244547.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>