﻿<?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>博客园-WangXiang @ Dot NET 驿站</title><link>http://www.cnblogs.com/wangxiang/</link><description>优秀艺术品的诞生，总是不易的。</description><language>zh-cn</language><lastBuildDate>Wed, 08 Oct 2008 04:20:36 GMT</lastBuildDate><pubDate>Wed, 08 Oct 2008 04:20:36 GMT</pubDate><ttl>60</ttl><item><title>关于浏览器的可视大小</title><link>http://www.cnblogs.com/wangxiang/archive/2008/08/01/1258298.html</link><dc:creator>王祥 @ dot net 驿站</dc:creator><author>王祥 @ dot net 驿站</author><pubDate>Fri, 01 Aug 2008 08:20:00 GMT</pubDate><guid>http://www.cnblogs.com/wangxiang/archive/2008/08/01/1258298.html</guid><wfw:comment>http://www.cnblogs.com/wangxiang/comments/1258298.html</wfw:comment><comments>http://www.cnblogs.com/wangxiang/archive/2008/08/01/1258298.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/wangxiang/comments/commentRss/1258298.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/wangxiang/services/trackbacks/1258298.html</trackback:ping><description><![CDATA[<p>ie6之前的版本，窗口的可视大小body元素的大小。html标记是隐藏的。</p>
<p>而对于现代浏览器，窗口的可视大小是html元素的大小。html、body元素对应到javascript中分别为document.documentElement、document.body.</p>
<p>&nbsp;</p>
<p>因此ie6以后的版本，ff，safari的可视宽度和高度为：</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: #0000ff">var</span><span style="color: #000000">&nbsp;windowWidth&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;document.documentElement.clientWidth&nbsp;</span><span style="color: #000000">||</span><span style="color: #000000">&nbsp;document.body.clientWidth;<br />
</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;windowHeight&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;document.documentElement.clientHeight&nbsp;</span><span style="color: #000000">||</span><span style="color: #000000">&nbsp;document.body.clientHeight;<br />
</span></div>
<p>&nbsp;</p>
<p>opera则以body元素计算窗口的可视大小:</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: #000000">windowWidth&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;document.body.clientWidth;<br />
&nbsp;&nbsp;&nbsp;&nbsp;windowHeight&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;document.body.clientHeight;</span></div>
<p>&nbsp;</p>
<p>因此，计算浏览器的可视大小应该表示为：</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: #0000ff">var</span><span style="color: #000000">&nbsp;windowWidth&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;document.documentElement.clientWidth&nbsp;</span><span style="color: #000000">||</span><span style="color: #000000">&nbsp;document.body.clientWidth;<br />
</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;windowHeight&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;document.documentElement.clientHeight&nbsp;</span><span style="color: #000000">||</span><span style="color: #000000">&nbsp;document.body.clientHeight;<br />
<br />
</span><span style="color: #008000">//</span><span style="color: #008000">标准下，opera的窗口的可是高度为document.body.clientWidth</span><span style="color: #008000"><br />
</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(window.opera)<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;windowWidth&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;document.body.clientWidth;<br />
&nbsp;&nbsp;&nbsp;&nbsp;windowHeight&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;document.body.clientHeight;<br />
}</span></div>
<img src ="http://www.cnblogs.com/wangxiang/aggbug/1258298.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42839/" target="_blank">[新闻]福布斯：硅谷日子将更难过 谁下一个倒下</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>javascript代码书写技巧</title><link>http://www.cnblogs.com/wangxiang/articles/1186411.html</link><dc:creator>王祥 @ dot net 驿站</dc:creator><author>王祥 @ dot net 驿站</author><pubDate>Wed, 07 May 2008 02:45:00 GMT</pubDate><guid>http://www.cnblogs.com/wangxiang/articles/1186411.html</guid><wfw:comment>http://www.cnblogs.com/wangxiang/comments/1186411.html</wfw:comment><comments>http://www.cnblogs.com/wangxiang/articles/1186411.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/wangxiang/comments/commentRss/1186411.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/wangxiang/services/trackbacks/1186411.html</trackback:ping><description><![CDATA[<p><font face="Verdana">有很多朋友问我用什么工具写js代码，对我用notebook写代码感到特别的惊讶。大家都知道javascript的命名是严格区分大小写的，自己敲代码出错的几率很大。</font></p>
<p><font face="Verdana">其实，只要知道js程序关键字的命名规范后就难再写错那些关键词了。<br />
看些例子：<br />
getElementById,innerText,offsetWidth...<br />
这些都是js的方法名，看出命名规律了吗？<br />
这些关键字的首字母均为小写字符....<br />
中间的每个单词的首字母均为大小....<br />
这就是所谓的骆驼命名法。</font></p>
<p><font face="Verdana">祝，编码愉快！<br />
</font></p>
<img src ="http://www.cnblogs.com/wangxiang/aggbug/1186411.html?type=2" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42836/" target="_blank">[新闻]微软老矣 尚能赚否？</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>jquery的ready方法实现。</title><link>http://www.cnblogs.com/wangxiang/articles/1172439.html</link><dc:creator>王祥 @ dot net 驿站</dc:creator><author>王祥 @ dot net 驿站</author><pubDate>Sat, 26 Apr 2008 11:50:00 GMT</pubDate><guid>http://www.cnblogs.com/wangxiang/articles/1172439.html</guid><wfw:comment>http://www.cnblogs.com/wangxiang/comments/1172439.html</wfw:comment><comments>http://www.cnblogs.com/wangxiang/articles/1172439.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/wangxiang/comments/commentRss/1172439.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/wangxiang/services/trackbacks/1172439.html</trackback:ping><description><![CDATA[<p>将jquery中的分离下来，<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 id="Codehighlighter1_0_702_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_0_702_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_0_702_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_0_702_Closed_Text').style.display='inline';" src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_0_702_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_0_702_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_0_702_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_0_702_Open_Text').style.display='inline';" src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /><span id="Codehighlighter1_0_702_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_702_Open_Text"><span style="color: #008000">/*</span><span style="color: #008000"><br />
<img src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;*&nbsp;(c)2006&nbsp;Jesse&nbsp;Skinner/Dean&nbsp;Edwards/Matthias&nbsp;Miller/John&nbsp;Resig<br />
<img src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;*&nbsp;Special&nbsp;thanks&nbsp;to&nbsp;Dan&nbsp;Webb's&nbsp;domready.js&nbsp;Prototype&nbsp;extension<br />
<img src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;*&nbsp;and&nbsp;Simon&nbsp;Willison's&nbsp;addLoadEvent<br />
<img src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;*<br />
<img src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;*&nbsp;For&nbsp;more&nbsp;info,&nbsp;see:<br />
<img src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;*&nbsp;</span><span style="color: #008000; text-decoration: underline">http://www.thefutureoftheweb.com/blog/adddomloadevent</span><span style="color: #008000"><br />
<img src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;*&nbsp;</span><span style="color: #008000; text-decoration: underline">http://dean.edwards.name/weblog/2006/06/again/</span><span style="color: #008000"><br />
<img src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;*&nbsp;</span><span style="color: #008000; text-decoration: underline">http://www.vivabit.com/bollocks/2006/06/21/a-dom-ready-extension-for-prototype</span><span style="color: #008000"><br />
<img src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;*&nbsp;</span><span style="color: #008000; text-decoration: underline">http://simon.incutio.com/archive/2004/05/26/addLoadEvent</span><span style="color: #008000"><br />
<img src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;*&nbsp;<br />
<img src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;*<br />
<img src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;*&nbsp;To&nbsp;use:&nbsp;call&nbsp;addDOMLoadEvent&nbsp;one&nbsp;or&nbsp;more&nbsp;times&nbsp;with&nbsp;functions,&nbsp;ie:<br />
<img src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;*<br />
<img src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;function&nbsp;something()&nbsp;{<br />
<img src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;do&nbsp;something<br />
<img src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<img src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;addDOMLoadEvent(something);<br />
<img src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;*<br />
<img src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;addDOMLoadEvent(function()&nbsp;{<br />
<img src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;do&nbsp;other&nbsp;stuff<br />
<img src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;});<br />
<img src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;*<br />
<img src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;</span><span style="color: #008000">*/</span></span><span style="color: #000000"><br />
<img src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(</span><span style="color: #000000">!</span><span style="color: #000000">javascriptcn)<br />
<img id="Codehighlighter1_722_753_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_722_753_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_722_753_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_722_753_Closed_Text').style.display='inline';" src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_722_753_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_722_753_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_722_753_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_722_753_Open_Text').style.display='inline';" src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span id="Codehighlighter1_722_753_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_722_753_Open_Text"><span style="color: #000000">{<br />
<img id="Codehighlighter1_747_749_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_747_749_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_747_749_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_747_749_Closed_Text').style.display='inline';" src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_747_749_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_747_749_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_747_749_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_747_749_Open_Text').style.display='inline';" src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;javascriptcn&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span id="Codehighlighter1_747_749_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_747_749_Open_Text"><span style="color: #000000">{}</span></span><span style="color: #000000">;<br />
<img src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;}</span></span><span style="color: #000000"><br />
<img id="Codehighlighter1_765_2707_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_765_2707_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_765_2707_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_765_2707_Closed_Text').style.display='inline';" src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_765_2707_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_765_2707_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_765_2707_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_765_2707_Open_Text').style.display='inline';" src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" />(function()</span><span id="Codehighlighter1_765_2707_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_765_2707_Open_Text"><span style="color: #000000">{<br />
<img src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img id="Codehighlighter1_799_2702_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_799_2702_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_799_2702_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_799_2702_Closed_Text').style.display='inline';" src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_799_2702_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_799_2702_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_799_2702_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_799_2702_Open_Text').style.display='inline';" src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />javascriptcn.ready&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;function()</span><span id="Codehighlighter1_799_2702_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_799_2702_Open_Text"><span style="color: #000000">{<br />
<img src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;create&nbsp;event&nbsp;function&nbsp;stack</span><span style="color: #008000"><br />
<img src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;load_events&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;[],<br />
<img src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;load_timer,<br />
<img src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;script,<br />
<img src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;done,<br />
<img src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exec,<br />
<img src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;old_onload,<br />
<img id="Codehighlighter1_973_1287_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_973_1287_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_973_1287_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_973_1287_Closed_Text').style.display='inline';" src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_973_1287_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_973_1287_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_973_1287_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_973_1287_Open_Text').style.display='inline';" src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;init&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;function&nbsp;()&nbsp;</span><span id="Codehighlighter1_973_1287_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_973_1287_Open_Text"><span style="color: #000000">{<br />
<img src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;done&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://wangxiang.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;kill&nbsp;the&nbsp;timer</span><span style="color: #008000"><br />
<img src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;clearInterval(load_timer);<br />
<img src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;execute&nbsp;each&nbsp;function&nbsp;in&nbsp;the&nbsp;stack&nbsp;in&nbsp;the&nbsp;order&nbsp;they&nbsp;were&nbsp;added</span><span style="color: #008000"><br />
<img src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">while</span><span style="color: #000000">&nbsp;(exec&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;load_events.shift())<br />
<img src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exec();<br />
<img src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(script)&nbsp;script.onreadystatechange&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">''</span><span style="color: #000000">;<br />
<img src="http://wangxiang.cnblogs.com/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://wangxiang.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img id="Codehighlighter1_1317_2700_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_1317_2700_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_1317_2700_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_1317_2700_Closed_Text').style.display='inline';" src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1317_2700_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_1317_2700_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_1317_2700_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_1317_2700_Open_Text').style.display='inline';" src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;function&nbsp;(func)&nbsp;</span><span id="Codehighlighter1_1317_2700_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_1317_2700_Open_Text"><span style="color: #000000">{<br />
<img src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;if&nbsp;the&nbsp;init&nbsp;function&nbsp;was&nbsp;already&nbsp;ran,&nbsp;just&nbsp;run&nbsp;this&nbsp;function&nbsp;now&nbsp;and&nbsp;stop</span><span style="color: #008000"><br />
<img src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(done)&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;func();<br />
<img src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img id="Codehighlighter1_1467_2661_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_1467_2661_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_1467_2661_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_1467_2661_Closed_Text').style.display='inline';" src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1467_2661_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_1467_2661_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_1467_2661_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_1467_2661_Open_Text').style.display='inline';" src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(</span><span style="color: #000000">!</span><span style="color: #000000">load_events[</span><span style="color: #800080">0</span><span style="color: #000000">])&nbsp;</span><span id="Codehighlighter1_1467_2661_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_1467_2661_Open_Text"><span style="color: #000000">{<br />
<img src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;for&nbsp;Mozilla/Opera9</span><span style="color: #008000"><br />
<img src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(document.addEventListener)<br />
<img src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.addEventListener(</span><span style="color: #800000">"</span><span style="color: #800000">DOMContentLoaded</span><span style="color: #800000">"</span><span style="color: #000000">,&nbsp;init,&nbsp;</span><span style="color: #0000ff">false</span><span style="color: #000000">);<br />
<img src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;for&nbsp;Internet&nbsp;Explorer</span><span style="color: #008000"><br />
<img id="Codehighlighter1_1672_1684_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_1672_1684_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_1672_1684_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_1672_1684_Closed_Text').style.display='inline';" src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1672_1684_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_1672_1684_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_1672_1684_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_1672_1684_Open_Text').style.display='inline';" src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_1672_1684_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_1672_1684_Open_Text"><span style="color: #008000">/*</span><span style="color: #008000">@cc_on&nbsp;@</span><span style="color: #008000">*/</span></span><span style="color: #000000"><br />
<img id="Codehighlighter1_1697_2077_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_1697_2077_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_1697_2077_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_1697_2077_Closed_Text').style.display='inline';" src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1697_2077_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_1697_2077_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_1697_2077_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_1697_2077_Open_Text').style.display='inline';" src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_1697_2077_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_1697_2077_Open_Text"><span style="color: #008000">/*</span><span style="color: #008000">@if&nbsp;(@_win32)<br />
<img src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.write("&lt;script&nbsp;id=__ie_onload&nbsp;defer&nbsp;src=//0&gt;&lt;\/scr"+"ipt&gt;");<br />
<img src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;script&nbsp;=&nbsp;document.getElementById("__ie_onload");<br />
<img src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;script.onreadystatechange&nbsp;=&nbsp;function()&nbsp;{<br />
<img src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(this.readyState&nbsp;==&nbsp;"complete")<br />
<img src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;init();&nbsp;//&nbsp;call&nbsp;the&nbsp;onload&nbsp;handler<br />
<img src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;};<br />
<img src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*@end&nbsp;@</span><span style="color: #008000">*/</span></span><span style="color: #000000"><br />
<img src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;for&nbsp;Safari</span><span style="color: #008000"><br />
<img id="Codehighlighter1_2158_2388_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_2158_2388_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_2158_2388_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_2158_2388_Closed_Text').style.display='inline';" src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_2158_2388_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_2158_2388_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_2158_2388_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_2158_2388_Open_Text').style.display='inline';" src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(</span><span style="color: #000000">/</span><span style="color: #000000">WebKit</span><span style="color: #000000">/</span><span style="color: #000000">i.test(navigator.userAgent))&nbsp;</span><span id="Codehighlighter1_2158_2388_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_2158_2388_Open_Text"><span style="color: #000000">{&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;sniff</span><span style="color: #008000"><br />
<img id="Codehighlighter1_2221_2368_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_2221_2368_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_2221_2368_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_2221_2368_Closed_Text').style.display='inline';" src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_2221_2368_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_2221_2368_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_2221_2368_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_2221_2368_Open_Text').style.display='inline';" src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.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;load_timer&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;setInterval(function()&nbsp;</span><span id="Codehighlighter1_2221_2368_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_2221_2368_Open_Text"><span style="color: #000000">{<br />
<img src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(</span><span style="color: #000000">/</span><span style="color: #000000">loaded</span><span style="color: #000000">|</span><span style="color: #000000">complete</span><span style="color: #000000">/</span><span style="color: #000000">.test(document.readyState))<br />
<img src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;init();&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;call&nbsp;the&nbsp;onload&nbsp;handler</span><span style="color: #008000"><br />
<img src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.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;}</span></span><span style="color: #000000">,&nbsp;</span><span style="color: #800080">10</span><span style="color: #000000">);<br />
<img src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;for&nbsp;other&nbsp;browsers&nbsp;set&nbsp;the&nbsp;window.onload,&nbsp;but&nbsp;also&nbsp;execute&nbsp;the&nbsp;old&nbsp;window.onload</span><span style="color: #008000"><br />
<img src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;old_onload&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;window.onload;<br />
<img id="Codehighlighter1_2565_2650_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_2565_2650_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_2565_2650_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_2565_2650_Closed_Text').style.display='inline';" src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_2565_2650_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_2565_2650_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_2565_2650_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_2565_2650_Open_Text').style.display='inline';" src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;window.onload&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;function()&nbsp;</span><span id="Codehighlighter1_2565_2650_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_2565_2650_Open_Text"><span style="color: #000000">{<br />
<img src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;init();<br />
<img src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(old_onload)&nbsp;old_onload();<br />
<img src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">;<br />
<img src="http://wangxiang.cnblogs.com/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://wangxiang.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;load_events.push(func);<br />
<img src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />}</span></span><span style="color: #000000">();<br />
<img src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span><span style="color: #000000">)();<br />
<img src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;<br />
<img src="http://wangxiang.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span></div>
<img src ="http://www.cnblogs.com/wangxiang/aggbug/1172439.html?type=2" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42832/" target="_blank">[新闻]YouTube探索新赢利模式 开始售音乐、视频游戏</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>jquery中ajax方法提交数据时，中文乱码问题解决。</title><link>http://www.cnblogs.com/wangxiang/archive/2008/04/04/1137469.html</link><dc:creator>王祥 @ dot net 驿站</dc:creator><author>王祥 @ dot net 驿站</author><pubDate>Fri, 04 Apr 2008 07:30:00 GMT</pubDate><guid>http://www.cnblogs.com/wangxiang/archive/2008/04/04/1137469.html</guid><wfw:comment>http://www.cnblogs.com/wangxiang/comments/1137469.html</wfw:comment><comments>http://www.cnblogs.com/wangxiang/archive/2008/04/04/1137469.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/wangxiang/comments/commentRss/1137469.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/wangxiang/services/trackbacks/1137469.html</trackback:ping><description><![CDATA[<p>中文在提交时需要用<span style="color: #000000"><span style="color: #74a20f"><span style="color: #ff4318">escape</span></span>(</span>)方法处理下。<br />
</p>
<img src ="http://www.cnblogs.com/wangxiang/aggbug/1137469.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42831/" target="_blank">[新闻]英特尔Core i7将继续称王 性能提52%</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>ajax技巧之json.</title><link>http://www.cnblogs.com/wangxiang/articles/1119046.html</link><dc:creator>王祥 @ dot net 驿站</dc:creator><author>王祥 @ dot net 驿站</author><pubDate>Sun, 23 Mar 2008 20:16:00 GMT</pubDate><guid>http://www.cnblogs.com/wangxiang/articles/1119046.html</guid><wfw:comment>http://www.cnblogs.com/wangxiang/comments/1119046.html</wfw:comment><comments>http://www.cnblogs.com/wangxiang/articles/1119046.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/wangxiang/comments/commentRss/1119046.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/wangxiang/services/trackbacks/1119046.html</trackback:ping><description><![CDATA[json采用javascript的原生态语法，因而可以直接被javascript支持。<br />
<strong><br />
客户端:json2.js</strong><br />
<font face="Verdana">http://www.json.org/json2.js<br />
</font>主要是用来将javascript对象(数组，自定义对象)，转换成json格式的字符串。<br />
var myJSONText = JSON.stringify(myObject);<br />
之后，再将json字符串处理成json对象。<br />
var myObject = JSON.parse(myJSONtext, filter);（这种方式较eval方法安全。）<br />
<br />
<strong>dot net服务器组件：json.net</strong><br />
<font face="Verdana">http://james.newtonking.com/pages/json-net.aspx<br />
</font>直接将服务器端的类序列话为json字符串。<br />
<div style="font-size: 9pt; background: white 0% 50%; color: black; font-family: Courier New; moz-background-clip: -moz-initial; moz-background-origin: -moz-initial; moz-background-inline-policy: -moz-initial">
<pre style="margin: 0px"><span style="color: rgb(43,145,175)">Product</span> product = <span style="color: blue">new</span> <span style="color: rgb(43,145,175)">Product</span>();</pre>
<pre style="margin: 0px">product.Name = <span style="color: rgb(163,21,21)">"Apple"</span>;</pre>
<pre style="margin: 0px">product.Expiry = <span style="color: blue">new</span> <span style="color: rgb(43,145,175)">DateTime</span>(2008, 12, 28);</pre>
<pre style="margin: 0px">product.Price = 3.99M;</pre>
<pre style="margin: 0px">product.Sizes = <span style="color: blue">new</span> <span style="color: blue">string</span>[] { <span style="color: rgb(163,21,21)">"Small"</span>, <span style="color: rgb(163,21,21)">"Medium"</span>, <span style="color: rgb(163,21,21)">"Large"</span> };</pre>
<pre style="margin: 0px">&nbsp;</pre>
<pre style="margin: 0px"><span style="color: blue">string</span> json = <span style="color: rgb(43,145,175)">JavaScriptConvert</span>.SerializeObject(product);</pre>
<pre style="margin: 0px"><span style="color: green">//{</span></pre>
<pre style="margin: 0px"><span style="color: green">//&nbsp; "Name": "Apple",</span></pre>
<pre style="margin: 0px"><span style="color: green">//&nbsp; "Expiry": new Date(1230422400000),</span></pre>
<pre style="margin: 0px"><span style="color: green">//&nbsp; "Price": 3.99,</span></pre>
<pre style="margin: 0px"><span style="color: green">//&nbsp; "Sizes": [</span></pre>
<pre style="margin: 0px"><span style="color: green">//&nbsp;&nbsp;&nbsp; "Small",</span></pre>
<pre style="margin: 0px"><span style="color: green">//&nbsp;&nbsp;&nbsp; "Medium",</span></pre>
<pre style="margin: 0px"><span style="color: green">//&nbsp;&nbsp;&nbsp; "Large"</span></pre>
<pre style="margin: 0px"><span style="color: green">//&nbsp; ]</span></pre>
<pre style="margin: 0px"><span style="color: green">//}</span></pre>
<pre style="margin: 0px">将json还原为对象。（反序列化）&nbsp;</pre>
<pre style="margin: 0px"><span style="color: rgb(43,145,175)">Product</span> deserializedProduct = <span style="color: rgb(43,145,175)">JavaScriptConvert</span>.DeserializeObject&lt;<span style="color: rgb(43,145,175)">Product</span>&gt;(json);</pre>
<pre style="margin: 0px">&nbsp;</pre>
<pre style="margin: 0px">注：通过这两个对象，即可轻松在客户端和服务器端轻松传递数据，及类型转换。</pre>
<pre style="margin: 0px">&nbsp;</pre>
</div>
<br />
<br />
<img src ="http://www.cnblogs.com/wangxiang/aggbug/1119046.html?type=2" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42830/" target="_blank">[新闻]微软已经放弃Windows Vista?</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>javascripter之配合dot net工程师。</title><link>http://www.cnblogs.com/wangxiang/archive/2008/03/22/1117938.html</link><dc:creator>王祥 @ dot net 驿站</dc:creator><author>王祥 @ dot net 驿站</author><pubDate>Sat, 22 Mar 2008 11:28:00 GMT</pubDate><guid>http://www.cnblogs.com/wangxiang/archive/2008/03/22/1117938.html</guid><wfw:comment>http://www.cnblogs.com/wangxiang/comments/1117938.html</wfw:comment><comments>http://www.cnblogs.com/wangxiang/archive/2008/03/22/1117938.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/wangxiang/comments/commentRss/1117938.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/wangxiang/services/trackbacks/1117938.html</trackback:ping><description><![CDATA[json数据结构采用了javascript的原生态表示方式，js可以直接处理其中的属性值，而无需写大量的代码处理xml数据。<br />
因此建议dot net工程师,直接生成json结构返回给客户端。<br />
json.net类库可以实现此序列话的任务。<br />
<img src ="http://www.cnblogs.com/wangxiang/aggbug/1117938.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42829/" target="_blank">[新闻]Microsoft Live Search 现在嵌入在Facebook中</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>javascript之代理的实现。</title><link>http://www.cnblogs.com/wangxiang/articles/1113874.html</link><dc:creator>王祥 @ dot net 驿站</dc:creator><author>王祥 @ dot net 驿站</author><pubDate>Wed, 19 Mar 2008 14:11:00 GMT</pubDate><guid>http://www.cnblogs.com/wangxiang/articles/1113874.html</guid><wfw:comment>http://www.cnblogs.com/wangxiang/comments/1113874.html</wfw:comment><comments>http://www.cnblogs.com/wangxiang/articles/1113874.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/wangxiang/comments/commentRss/1113874.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/wangxiang/services/trackbacks/1113874.html</trackback:ping><description><![CDATA[<p>将OOP思想应用到javascript语言上，是时下讨论的热点，属性，继承...<br />
还缺少什么？代理！<br />
下面介绍用javascript美妙的匿名函数实现代理。<br />
<br />
</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #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 />
<br />
</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;plus</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">(x,y)<br />
{<br />
</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;x</span><span style="color: #000000">+</span><span style="color: #000000">y;<br />
}<br />
<br />
</span><span style="color: #008000">//</span><span style="color: #008000">实现代码</span><span style="color: #008000"><br />
</span><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;delegate(x,y,fn)<br />
{<br />
</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;fn(x,y);<br />
}<br />
<br />
alert(delegate(</span><span style="color: #000000">12</span><span style="color: #000000">,</span><span style="color: #000000">12</span><span style="color: #000000">,plus));<br />
<br />
</span><span style="color: #000000">&lt;</span><span style="color: #000000">/</span><span style="color: #000000">script&gt;</span></div>
<p>更多精彩内容，请访问js中国！<a href="http://javascriptcn.com">http://javascriptcn.com</a><br />
</p>
<img src ="http://www.cnblogs.com/wangxiang/aggbug/1113874.html?type=2" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42828/" target="_blank">[新闻]Mono 2.0 发布 Linux 上的 .NET 框架成熟了吗？</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>jQuery之美,第一次...</title><link>http://www.cnblogs.com/wangxiang/articles/1107891.html</link><dc:creator>王祥 @ dot net 驿站</dc:creator><author>王祥 @ dot net 驿站</author><pubDate>Sat, 15 Mar 2008 13:31:00 GMT</pubDate><guid>http://www.cnblogs.com/wangxiang/articles/1107891.html</guid><wfw:comment>http://www.cnblogs.com/wangxiang/comments/1107891.html</wfw:comment><comments>http://www.cnblogs.com/wangxiang/articles/1107891.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/wangxiang/comments/commentRss/1107891.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/wangxiang/services/trackbacks/1107891.html</trackback:ping><description><![CDATA[一场ajax风暴，席卷了整个web开发世界... ...prototype、jQuery、mootools各种js框架层出不穷。知道昨天，自己还不习惯使用框架做js开发，最近想应聘javascript相关的工作，就仔细学习了各个框架。<br />
<br />
的确，jQuery将改变，javascript的编程方式！<br />
<br />
在未使用jquery框架的时候，代码：<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #000000">&lt;</span><span style="color: #000000">body</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #000000">&lt;</span><span style="color: #000000">a&nbsp;id</span><span style="color: #000000">=</span><span style="color: #800000">"</span><span style="color: #800000">test</span><span style="color: #800000">"</span><span style="color: #000000">&nbsp;href</span><span style="color: #000000">=</span><span style="color: #800000">"</span><span style="color: #800000">http://javascriptcn.com</span><span style="color: #800000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000">js中国</span><span style="color: #000000">&lt;/</span><span style="color: #000000">a</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #000000">&lt;!--</span><span style="color: #000000">逻辑代码</span><span style="color: #000000">--&gt;</span><span style="color: #000000"><br />
</span><span style="color: #000000">&lt;</span><span style="color: #000000">script&nbsp;type</span><span style="color: #000000">=</span><span style="color: #800000">"</span><span style="color: #800000">text/javascript</span><span style="color: #800000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
document.getElementById(</span><span style="color: #800000">"</span><span style="color: #800000">test</span><span style="color: #800000">"</span><span style="color: #000000">).onclick</span><span style="color: #000000">=</span><span style="color: #000000">function()<br />
{<br />
alert(</span><span style="color: #800000">"</span><span style="color: #800000">hello&nbsp;world!</span><span style="color: #800000">"</span><span style="color: #000000">);<br />
}<br />
</span><span style="color: #000000">&lt;/</span><span style="color: #000000">script</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<br />
</span><span style="color: #000000">&lt;/</span><span style="color: #000000">body</span><span style="color: #000000">&gt;</span></div>
处理的逻辑代码必须写在a标记之后，否则将会出现无法找到对象的错误。因此，这样body里就不得不出现n多的&lt;script&gt;&lt;/script&gt;.....<br />
因而影响了，dom数的完美结构。<br />
<br />
有了jquery框架后:<br />
common.js文件<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #000000">$(document).ready(function()&nbsp;{<br />
</span><span style="color: #008000">//</span><span style="color: #008000">逻辑实现&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000"><br />
</span><span style="color: #000000">$(</span><span style="color: #800000">"</span><span style="color: #800000">#test</span><span style="color: #800000">"</span><span style="color: #000000">).click(function()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert(</span><span style="color: #800000">"</span><span style="color: #800000">Hello&nbsp;world!</span><span style="color: #800000">"</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;});<br />
</span><span style="color: #008000">//</span><span style="color: #008000">实现结束</span><span style="color: #008000"><br />
</span><span style="color: #000000">});<br />
</span></div>
hml文件<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #000000">&lt;</span><span style="color: #000000">head</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #000000">&lt;</span><span style="color: #000000">script&nbsp;type</span><span style="color: #000000">=</span><span style="color: #800000">"</span><span style="color: #800000">text/javascript</span><span style="color: #800000">"</span><span style="color: #000000">&nbsp;src</span><span style="color: #000000">=</span><span style="color: #800000">"</span><span style="color: #800000">common.js</span><span style="color: #800000">"</span><span style="color: #000000">&gt;&lt;/</span><span style="color: #000000">script</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #000000">&lt;/</span><span style="color: #000000">head</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #000000">&lt;</span><span style="color: #000000">body</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #000000">&lt;</span><span style="color: #000000">a id="test"&nbsp;href</span><span style="color: #000000">=</span><span style="color: #800000">"</span><span style="color: #800000">http://javascriptcn.com</span><span style="color: #800000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000">js中国</span><span style="color: #000000">&lt;/</span><span style="color: #000000">a</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #000000">&lt;/</span><span style="color: #000000">body</span><span style="color: #000000">&gt;</span></div>
<br />
用jQuery不需要在每个a标签之后写onclick事件,所以我们拥有了一个整洁的结构文档(HTML)和一个行为文档(JS),达到了将结构与行为分开的目的,就像我们使用CSS追求的一样。<br />
<br />
<img src ="http://www.cnblogs.com/wangxiang/aggbug/1107891.html?type=2" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42827/" target="_blank">[新闻]史上九大最强网络黑客</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>关于虚函数一个很好的解释</title><link>http://www.cnblogs.com/wangxiang/archive/2008/02/24/1079548.html</link><dc:creator>王祥 @ dot net 驿站</dc:creator><author>王祥 @ dot net 驿站</author><pubDate>Sun, 24 Feb 2008 09:07:00 GMT</pubDate><guid>http://www.cnblogs.com/wangxiang/archive/2008/02/24/1079548.html</guid><wfw:comment>http://www.cnblogs.com/wangxiang/comments/1079548.html</wfw:comment><comments>http://www.cnblogs.com/wangxiang/archive/2008/02/24/1079548.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/wangxiang/comments/commentRss/1079548.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/wangxiang/services/trackbacks/1079548.html</trackback:ping><description><![CDATA[<div>
<p style="margin: 0in 0in 0pt; line-height: 200%; text-align: center" align="center"><font color="#000000"><strong><span style="font-size: 11pt; line-height: 200%; font-family: 宋体; letter-spacing: 1pt">虚函数</span></strong></font><strong><span style="font-size: 11pt; line-height: 200%; letter-spacing: 1pt"><font face="Times New Roman"><font color="#000000">(</font><span style="color: red">virtual</span><font color="#000000">)</font></font></span></strong> </p>
<p style="margin: 0in 0in 0pt; line-height: 150%"><strong><span style="font-size: 9pt; color: purple; line-height: 150%; font-family: 宋体; letter-spacing: 1pt">一、</span></strong><strong><span style="font-size: 9pt; color: purple; line-height: 150%; letter-spacing: 1pt"><font face="Times New Roman">OOP</font></span></strong><strong><span style="font-size: 9pt; color: purple; line-height: 150%; font-family: 宋体; letter-spacing: 1pt">的目标：</span></strong> </p>
<p style="margin: 0in 0in 0pt; text-indent: 0.3in; line-height: 150%"><font color="#000000"><span style="font-size: 9pt; line-height: 150%; font-family: 宋体; letter-spacing: 1pt">使用面向对象的开发过程就是在不断地抽象事物的过程，我们的目标就是抽象出一个高内聚、低偶合，易于维护和扩展的模型。</span></font> </p>
<p style="margin: 0in 0in 0pt; line-height: 150%"><span style="font-size: 9pt; line-height: 150%; letter-spacing: 1pt"><font face="Times New Roman" color="#000000">&nbsp;</font></span> </p>
<p style="margin: 0in 0in 0pt; line-height: 150%"><strong><span style="font-size: 9pt; color: purple; line-height: 150%; font-family: 宋体; letter-spacing: 1pt">二、遇到的问题：</span></strong> </p>
<p style="margin: 0in 0in 0pt; text-indent: 0.3in; line-height: 150%"><font color="#000000"><span style="font-size: 9pt; line-height: 150%; font-family: 宋体; letter-spacing: 1pt">但是在抽象过程中我们会发现很多事物的特征不清楚，或者很容易发生变动，怎么办呢？比如飞禽都有飞这个动作，但是对于不同的鸟类它的飞的动作方式是不同的，有的是滑行，有的要颤抖翅膀，虽然都是飞的行为，但具体实现却是千差万别，在我们抽象的模型中不可能把一个个飞的动作都考虑到，那么怎样为以后留下好的扩展，怎样来处理各个具体飞禽类千差万别的飞行动作呢？比如我现在又要实现一个类&#8220;鹤&#8221;，它也有飞禽的特征（比如飞这个行为），如何使我可以只用简单地继承&#8220;飞禽&#8221;，而不去修改&#8220;飞禽&#8221;这个抽象模型现有的代码，从而达到方便地扩展系统呢？</span></font> </p>
<p style="margin: 0in 0in 0pt; line-height: 150%"><span style="font-size: 9pt; line-height: 150%; letter-spacing: 1pt"><font face="Times New Roman" color="#000000">&nbsp;</font></span> </p>
<p style="margin: 0in 0in 0pt; line-height: 150%"><strong><span style="font-size: 9pt; color: #993366; line-height: 150%; font-family: 宋体; letter-spacing: 1pt">三、解决上述问题的方法：</span></strong> </p>
<p style="margin: 0in 0in 0pt; text-indent: 0.3in; line-height: 150%"><font color="#000000"><span style="font-size: 9pt; line-height: 150%; font-family: 宋体; letter-spacing: 1pt">面向对象的概念中引入了虚函数来解决这类问题。</span></font> </p>
<p style="margin: 0in 0in 0pt; text-indent: 0.3in; line-height: 150%"><font color="#000000"><span style="font-size: 9pt; line-height: 150%; font-family: 宋体; letter-spacing: 1pt">使用虚函数就是在父类中把子类中共有的但却易于变化或者不清楚的特征抽取出来，作为子类需要去重新实现的操作（</span><span style="font-size: 9pt; line-height: 150%; letter-spacing: 1pt"><font face="Times New Roman">override</font></span><span style="font-size: 9pt; line-height: 150%; font-family: 宋体; letter-spacing: 1pt">），我们可以称之做&#8220;热点&#8221;。而虚拟函数也是</span><span style="font-size: 9pt; line-height: 150%; letter-spacing: 1pt"><font face="Times New Roman">OOP</font></span><span style="font-size: 9pt; line-height: 150%; font-family: 宋体; letter-spacing: 1pt">中实现多态的关键之一。</span></font> </p>
<p style="margin: 0in 0in 0pt; line-height: 150%"><font color="#000000"><span style="font-size: 9pt; line-height: 150%; font-family: 宋体; letter-spacing: 1pt">还是上面的例子（</span><span style="font-size: 9pt; line-height: 150%; letter-spacing: 1pt"><font face="Times New Roman">C#</font></span><span style="font-size: 9pt; line-height: 150%; font-family: 宋体; letter-spacing: 1pt">）：</span></font> </p>
<p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; letter-spacing: 1pt"><font color="#000000"><font face="Times New Roman">&nbsp;</font></font></span> </p>
<table style="border-right: medium none; border-top: medium none; background: #f3f3f3; border-left: medium none; border-bottom: medium none; border-collapse: collapse" cellspacing="0" cellpadding="0" border="1">
    <tbody>
        <tr>
            <td style="border-right: windowtext 1pt solid; padding-right: 0.1in; border-top: windowtext 1pt solid; padding-left: 0.1in; padding-bottom: 0.1in; border-left: windowtext 1pt solid; width: 6.15in; padding-top: 0.1in; border-bottom: windowtext 1pt solid; background-color: transparent" valign="top" width="590">
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; color: blue; font-family: 新宋体">class</span><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000"> 飞禽</font></span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">{&nbsp;</font></span></p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font><span style="color: blue">public</span><span style="color: blue">string</span><font color="#000000"> wing;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font><span style="color: green">// 翅膀</span></span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font><span style="color: blue">public</span><span style="color: blue">string</span><font color="#000000"> feather;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font><span style="color: green">// 羽毛&nbsp;&nbsp; </span></span></p>
            <p style="margin: 0in 0in 0pt"><font color="#000000"><span style="font-size: 9pt; font-family: 新宋体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-size: 9pt"><font face="Times New Roman">&#8230;&#8230;</font></span></font><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font><span style="color: green">// 其它属性和行为&nbsp;&nbsp; </span></span></p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font><span style="color: blue">public</span><span style="color: blue">virtual</span><span style="color: blue">bool</span><font color="#000000"> Fly()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font><span style="color: green">// 利用关键字</span><span style="color: blue">virtual</span><span style="color: green">来定义为虚拟函数，这是一个热点</span></span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</font></span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font><span style="color: green">// 空下来让子类去实现</span></span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</font></span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">}</font></span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">&nbsp;</font></span></p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; color: blue; font-family: 新宋体">class</span><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000"> 麻雀 : 飞禽&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font><span style="color: green">// 麻雀从飞禽继承而来</span></span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">{</font></span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span><span style="font-size: 9pt; color: blue"><font face="Times New Roman">&#8230;&#8230;</font></span><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">&nbsp;&nbsp;&nbsp; </font><span style="color: green">// 定义麻雀自己特有的属性和行为</span></span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font><span style="color: blue">public</span><span style="color: blue">override bool</span><font color="#000000"> Fly()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font><span style="color: green">// 利用关键字</span><span style="color: blue">override</span><span style="color: green">重载飞翔动作</span><span style="color: green">,实现自己的飞翔</span></span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</font></span> </p>
            <p style="margin: 0in 0in 0pt"><font color="#000000"><span style="font-size: 9pt; font-family: 新宋体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-size: 9pt"><font face="Times New Roman">&#8230;&#8230;</font></span></font><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">&nbsp;&nbsp;&nbsp; </font><span style="color: green">// 实现麻雀飞的动作</span></span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</font></span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">}</font></span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">&nbsp;</font></span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; color: blue; font-family: 新宋体">class</span><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">&nbsp;鹤 : 飞禽&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font><span style="color: green">// 鹤从飞禽继承而来</span></span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">{</font></span> </p>
            <p style="margin: 0in 0in 0pt"><font color="#000000"><span style="font-size: 9pt; font-family: 新宋体">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 9pt"><font face="Times New Roman">&#8230;&#8230;</font></span></font><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">&nbsp;&nbsp;&nbsp; </font><span style="color: green">// 定义鹤自己的特有的属性和行为</span></span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font><span style="color: blue">public</span><span style="color: blue">override</span><span style="color: blue">bool</span><font color="#000000"> Fly()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font><span style="color: green">// 利用关键字</span><span style="color: blue">override</span><span style="color: green">重载实现鹤的飞翔</span></span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</font></span> </p>
            <p style="margin: 0in 0in 0pt"><font color="#000000"><span style="font-size: 9pt; font-family: 新宋体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-size: 9pt"><font face="Times New Roman">&#8230;&#8230;</font></span></font><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">&nbsp;&nbsp;&nbsp; </font><span style="color: green">// 实现鹤飞的动作</span></span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</font></span> </p>
            <p style="margin: 0in 0in 0pt"><font color="#000000"><span style="font-size: 9pt; font-family: 新宋体">}</span></font> </p>
            </td>
        </tr>
    </tbody>
</table>
<p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; letter-spacing: 1pt"><font face="Times New Roman" color="#000000">&nbsp;</font></span> </p>
<p style="margin: 0in 0in 0pt; line-height: 150%"><font color="#000000"><span style="font-size: 9pt; line-height: 150%; font-family: 宋体; letter-spacing: 1pt">这样我们只需要在抽象模型&#8220;飞禽&#8221;里定义</span><span style="font-size: 9pt; line-height: 150%; letter-spacing: 1pt"><font face="Times New Roman">Fly()</font></span><span style="font-size: 9pt; line-height: 150%; font-family: 宋体; letter-spacing: 1pt">这个行为，表示所有由此&#8220;飞禽&#8221;派生出去的子类都会有</span><span style="font-size: 9pt; line-height: 150%; letter-spacing: 1pt"><font face="Times New Roman">Fly()</font></span><span style="font-size: 9pt; line-height: 150%; font-family: 宋体; letter-spacing: 1pt">这个行为，而至于</span><span style="font-size: 9pt; line-height: 150%; letter-spacing: 1pt"><font face="Times New Roman">Fly()</font></span><span style="font-size: 9pt; line-height: 150%; font-family: 宋体; letter-spacing: 1pt">到底具体是怎么实现的，那么就由具体的子类去实现就好了，不会再影响&#8220;飞禽&#8221;这个抽象模型了。</span></font> </p>
<p style="margin: 0in 0in 0pt; line-height: 150%"><span style="font-size: 9pt; line-height: 150%; letter-spacing: 1pt"><font face="Times New Roman" color="#000000">&nbsp;</font></span> </p>
<p style="margin: 0in 0in 0pt; line-height: 150%"><font color="#000000"><span style="font-size: 9pt; line-height: 150%; font-family: 宋体; letter-spacing: 1pt">比如现在我们要做一个飞禽射击训练的系统，我们就可以这样来使用上面定义的类：</span></font> </p>
<table style="border-right: medium none; border-top: medium none; background: #f3f3f3; border-left: medium none; border-bottom: medium none; border-collapse: collapse" cellspacing="0" cellpadding="0" border="1">
    <tbody>
        <tr>
            <td style="border-right: windowtext 1pt solid; padding-right: 0.1in; border-top: windowtext 1pt solid; padding-left: 0.1in; padding-bottom: 0.1in; border-left: windowtext 1pt solid; width: 6.15in; padding-top: 0.1in; border-bottom: windowtext 1pt solid; background-color: transparent" valign="top" width="590">
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; color: green; font-family: 新宋体">// 如何来使用虚拟函数,这里同时也是一个多态的例子.</span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; color: green; font-family: 新宋体">// 定义一个射击飞禽的方法</span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; color: green; font-family: 新宋体">// 注意这里申明传入一个&#8220;飞禽&#8221;类作为参数，而不是某个具体的&#8220;鸟类&#8221;。好处就是以后不管再出现多少</span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; color: green; font-family: 新宋体">// 种鸟类，只要是从飞禽继承下来的,都照打不误:)（多态的方式）</span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; color: blue; font-family: 新宋体">void</span><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000"> ShootBird(飞禽 bird)&nbsp;</font></span></p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">{</font></span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font><span style="color: green">// 当鸟在飞就开始射击</span></span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font><span style="color: blue">if</span><font color="#000000">(bird.Fly())</font></span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</font></span> </p>
            <p style="margin: 0in 0in 0pt"><font color="#000000"><span style="font-size: 9pt; font-family: 新宋体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-size: 9pt"><font face="Times New Roman">&#8230;&#8230;</font></span></font><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">&nbsp;&nbsp;&nbsp; </font><span style="color: green">// 射击动作</span></span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</font></span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">}</font></span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">&nbsp;</font></span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; color: blue; font-family: 新宋体">static</span><span style="font-size: 9pt; font-family: 新宋体"><span style="color: blue">void</span><font color="#000000"> main()</font></span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">{</font></span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font><span style="color: green">/ /打麻雀</span></span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ShootBird(</font><span style="color: blue">new</span><font color="#000000"> 麻雀());</font></span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font><span style="color: green">// 打鹤</span></span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ShootBird(</font><span style="color: blue">new</span><font color="#000000"> 鹤());&nbsp;&nbsp;&nbsp;&nbsp; </font></span></p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font><span style="color: green">// 都是打鸟的过程,我只要实现了具体某个鸟类（从&#8220;飞禽&#8221;派生而来）的定义，就可以对它</span></span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font><span style="color: green">// 进行射击，而不用去修改ShootBird函数和飞禽基类</span></span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ShootBird(</font><span style="color: blue">new</span><font color="#000000"> 其它的飞禽());&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span></p>
            <p style="margin: 0in 0in 0pt"><font color="#000000"><span style="font-size: 9pt; font-family: 新宋体">}</span></font> </p>
            </td>
        </tr>
    </tbody>
</table>
<p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; letter-spacing: 1pt"><font face="Times New Roman" color="#000000">&nbsp;</font></span> </p>
<p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; letter-spacing: 1pt"><font face="Times New Roman" color="#000000">&nbsp;</font></span> </p>
<p style="margin: 0in 0in 0pt"><strong><span style="font-size: 9pt; color: #993366; font-family: 宋体; letter-spacing: 1pt">四、</span></strong><strong><span style="font-size: 9pt; color: #993366; letter-spacing: 1pt"><font face="Times New Roman">C#</font></span></strong><strong><span style="font-size: 9pt; color: #993366; font-family: 宋体; letter-spacing: 1pt">种虚拟函数的的执行过程：</span></strong></p>
<p style="margin: 0in 0in 0pt; text-indent: 0.3in; line-height: 150%"><font color="#000000"><span style="font-size: 9pt; line-height: 150%; font-family: 宋体; letter-spacing: 1pt">在</span><span style="font-size: 9pt; line-height: 150%; letter-spacing: 1pt"><font face="Times New Roman">C++</font></span><span style="font-size: 9pt; line-height: 150%; font-family: 宋体; letter-spacing: 1pt">、</span><span style="font-size: 9pt; line-height: 150%; letter-spacing: 1pt"><font face="Times New Roman">Java</font></span><span style="font-size: 9pt; line-height: 150%; font-family: 宋体; letter-spacing: 1pt">等众多</span><span style="font-size: 9pt; line-height: 150%; letter-spacing: 1pt"><font face="Times New Roman">OOP</font></span><span style="font-size: 9pt; line-height: 150%; font-family: 宋体; letter-spacing: 1pt">语言里都可以看到</span></font><span style="font-size: 9pt; color: red; line-height: 150%; letter-spacing: 1pt"><font face="Times New Roman">virtual</font></span><font color="#000000"><span style="font-size: 9pt; line-height: 150%; font-family: 宋体; letter-spacing: 1pt">的身影，而</span><span style="font-size: 9pt; line-height: 150%; letter-spacing: 1pt"><font face="Times New Roman">C#</font></span><span style="font-size: 9pt; line-height: 150%; font-family: 宋体; letter-spacing: 1pt">作为一个完全面向对象的语言当然也不例外。</span></font> </p>
<p style="margin: 0in 0in 0pt; text-indent: 0.3in; line-height: 150%"><font color="#000000"><span style="font-size: 9pt; line-height: 150%; font-family: 宋体; letter-spacing: 1pt">虚拟函数从</span><span style="font-size: 9pt; line-height: 150%; letter-spacing: 1pt"><font face="Times New Roman">C#</font></span><span style="font-size: 9pt; line-height: 150%; font-family: 宋体; letter-spacing: 1pt">的程序编译的角度来看，它和其它一般的函数有什么区别呢？一般函数在编译时就静态地编译到了执行文件中，其相对地址在程序运行期间是不发生变化的，也就是写死了的！而虚函数在编译期间是不被静态编译的，它的相对地址是不确定的，它会根据运行时期对象实例来动态判断要调用的函数，其中那个申明时定义的类叫申明类，那个执行时实例化的类叫实例类。</span></font> </p>
<p style="margin: 0in 0in 0pt; line-height: 150%"><font color="#000000"><span style="font-size: 9pt; line-height: 150%; font-family: 宋体; letter-spacing: 1pt">（</span><span style="font-size: 9pt; line-height: 150%; letter-spacing: 1pt"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span><span style="font-size: 9pt; line-height: 150%; font-family: 宋体; letter-spacing: 1pt">如：</span><span style="font-size: 9pt; line-height: 150%; font-family: 新宋体">飞禽</span></font><span style="font-size: 9pt; line-height: 150%; font-family: 新宋体"><font color="#000000"> bird = </font><span style="color: blue">new</span><font color="#000000"> 麻雀();</font></span> </p>
<p style="margin: 0in 0in 0pt; text-indent: 0.5in; line-height: 150%"><font color="#000000"><span style="font-size: 9pt; line-height: 150%; font-family: 新宋体">那么飞禽就是</span><span style="font-size: 9pt; line-height: 150%; font-family: 宋体; letter-spacing: 1pt">申明类，</span><span style="font-size: 9pt; line-height: 150%; font-family: 新宋体">麻雀是</span><span style="font-size: 9pt; line-height: 150%; font-family: 宋体; letter-spacing: 1pt">实例类。</span><span style="font-size: 9pt; line-height: 150%; letter-spacing: 1pt"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span><span style="font-size: 9pt; line-height: 150%; font-family: 宋体; letter-spacing: 1pt">）</span></font> </p>
<p style="margin: 0in 0in 0pt; line-height: 150%"><font color="#000000"><span style="font-size: 9pt; line-height: 150%; font-family: 宋体; letter-spacing: 1pt">具体的检查的流程如下：</span></font> </p>
<p style="margin: 0in 0in 0pt; line-height: 150%"><strong><span style="font-size: 9pt; line-height: 150%; letter-spacing: 1pt"><font face="Times New Roman"><font color="#000000">&nbsp;</font><span style="color: #993366">1</span></font></span></strong><strong><span style="font-size: 9pt; color: #993366; line-height: 150%; font-family: 宋体; letter-spacing: 1pt">、</span></strong><font color="#000000"><span style="font-size: 9pt; line-height: 150%; font-family: 宋体; letter-spacing: 1pt">当调用一个对象的函数时，系统会直接去检查这个对象申明定义的类，即申明类，看所调用的函数是否为虚函数；</span></font> </p>
<p style="margin: 0in 0in 0pt; line-height: 150%"><span style="font-size: 9pt; line-height: 150%; letter-spacing: 1pt"><font face="Times New Roman"><font color="#000000">&nbsp;</font><strong><span style="color: #993366">2</span></strong></font></span><strong><span style="font-size: 9pt; color: #993366; line-height: 150%; font-family: 宋体; letter-spacing: 1pt">、</span></strong><font color="#000000"><span style="font-size: 9pt; line-height: 150%; font-family: 宋体; letter-spacing: 1pt">如果不是虚函数，那么它就直接执行该函数。而如果有</span><span style="font-size: 9pt; line-height: 150%; letter-spacing: 1pt"><font face="Times New Roman">virtual</font></span><span style="font-size: 9pt; line-height: 150%; font-family: 宋体; letter-spacing: 1pt">关键字，也就是一个虚函数，那么这个时候它就不会立刻执行该函数了，而是转去检查对象的实例类。</span></font> </p>
<p style="margin: 0in 0in 0pt; line-height: 150%"><strong><span style="font-size: 9pt; line-height: 150%; letter-spacing: 1pt"><font face="Times New Roman"><font color="#000000">&nbsp;</font><span style="color: #993366">3</span></font></span></strong><strong><span style="font-size: 9pt; color: #993366; line-height: 150%; font-family: 宋体; letter-spacing: 1pt">、</span></strong><font color="#000000"><span style="font-size: 9pt; line-height: 150%; font-family: 宋体; letter-spacing: 1pt">在这个实例类里，他会检查这个实例类的定义中是否有重新实现该虚函数（通过</span><span style="font-size: 9pt; line-height: 150%; letter-spacing: 1pt"><font face="Times New Roman">override</font></span><span style="font-size: 9pt; line-height: 150%; font-family: 宋体; letter-spacing: 1pt">关键字），如果是有，那么</span><span style="font-size: 9pt; line-height: 150%; letter-spacing: 1pt"><font face="Times New Roman">OK</font></span><span style="font-size: 9pt; line-height: 150%; font-family: 宋体; letter-spacing: 1pt">，它就不会再找了，而马上执行该实例类中的这个重新实现的函数。而如果没有的话，系统就会不停地往上找实例类的父类，并对父类重复刚才在实例类里的检查，直到找到第一个重载了该虚函数的父类为止，然后执行该父类里重载后的函数。</span></font> </p>
<p style="margin: 0in 0in 0pt; line-height: 150%"><span style="font-size: 9pt; line-height: 150%; letter-spacing: 1pt"><font face="Times New Roman" color="#000000">&nbsp;</font></span> </p>
<p style="margin: 0in 0in 0pt; line-height: 150%"><font color="#000000"><span style="font-size: 9pt; line-height: 150%; font-family: 宋体; letter-spacing: 1pt">知道这点，就可以理解下面代码的运行结果了：</span></font> </p>
<table style="border-right: medium none; border-top: medium none; background: #f3f3f3; border-left: medium none; border-bottom: medium none; border-collapse: collapse" cellspacing="0" cellpadding="0" border="1">
    <tbody>
        <tr>
            <td style="border-right: windowtext 1pt solid; padding-right: 0.1in; border-top: windowtext 1pt solid; padding-left: 0.1in; padding-bottom: 0.1in; border-left: windowtext 1pt solid; width: 6.15in; padding-top: 0.1in; border-bottom: windowtext 1pt solid; background-color: transparent" valign="top" width="590">
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; color: blue; font-family: 新宋体">class</span><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000"> A</font></span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">{</font></span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font><span style="color: blue">protected</span><span style="color: blue">virtual</span><font color="#000000"> Func()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font><span style="color: green">// 注意virtual,表明这是一个虚拟函数</span></span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</font></span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.WriteLine("Func In A");</font></span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</font></span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">}</font></span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">&nbsp;</font></span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; color: blue; font-family: 新宋体">class</span><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000"> B : A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font><span style="color: green">// 注意B是从A类继承,所以A是父类,B是子类</span></span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">{</font></span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font><span style="color: blue">protected</span><span style="color: blue">override</span><font color="#000000"> Func()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font><span style="color: green">// 注意override ,表明重新实现了虚函数</span></span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</font></span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.WriteLine("Func In B");</font></span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</font></span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">}</font></span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">&nbsp;</font></span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; color: blue; font-family: 新宋体">class</span><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000"> C : B&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font><span style="color: green">// 注意C是从A类继承,所以B是父类,C是子类</span></span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">{</font></span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span></p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">}</font></span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">&nbsp;</font></span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; color: blue; font-family: 新宋体">class</span><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000"> D : A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font><span style="color: green">// 注意B是从A类继承,所以A是父类,D是子类</span></span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">{</font></span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font><span style="color: blue">protected</span><span style="color: blue">new</span><font color="#000000"> Func()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font><span style="color: green">// 注意new ，表明覆盖父类里的同名类，而不是重新实现</span></span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</font></span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.WriteLine("Func In B");</font></span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</font></span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">}</font></span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">&nbsp;</font></span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; color: blue; font-family: 新宋体">static</span><span style="font-size: 9pt; font-family: 新宋体"><span style="color: blue">void</span><font color="#000000"> main()</font></span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">{</font></span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; A a;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font><span style="color: green">// 定义一个a这个A类的对象.这个A就是a的申明类 </span></span></p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; A b;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font><span style="color: green">// 定义一个b这个A类的对象.这个A就是b的申明类</span></span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; A c;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font><span style="color: green">// 定义一个c这个A类的对象.这个A就是b的申明类</span></span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; A d;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font><span style="color: green">// 定义一个d这个A类的对象.这个A就是b的申明类</span></span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a = </font><span style="color: blue">new</span><font color="#000000"> A();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font><span style="color: green">// 实例化a对象,A是a的实例类</span></span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; b = </font><span style="color: blue">new</span><font color="#000000"> B();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font><span style="color: green">// 实例化b对象,B是b的实例类</span></span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; c = </font><span style="color: blue">new</span><font color="#000000"> C();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font><span style="color: green">// 实例化b对象,C是b的实例类</span></span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; d = </font><span style="color: blue">new</span><font color="#000000"> D();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font><span style="color: green">// 实例化b对象,D是b的实例类</span></span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a.Func() ;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span></p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font><span style="color: green">// 执行a.Func：1.先检查申明类A 2.检查到是虚拟方法 3.转去检查实例类A，就为本身 4.执行实例类A中的方法 5.输出结果 </span><span style="color: #993366">Func In A</span><span style="color: green">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; b.Func() ;&nbsp;&nbsp;&nbsp;&nbsp; </font></span></p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font><span style="color: green">// 执行b.Func：1.先检查申明类A 2.检查到是虚拟方法 3.转去检查实例类B，有重载的 4.执行实例类B中的方法 5.输出结果 </span><span style="color: #993366">Func In B</span></span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; c.Func() ;&nbsp;&nbsp;&nbsp;&nbsp; </font></span></p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font><span style="color: green">// 执行c.Func：1.先检查申明类A 2.检查到是虚拟方法 3.转去检查实例类C，无重载的 4.转去检查类C的父类B，有重载的 5.执行父类B中的Func方法 5.输出结果 </span><span style="color: #993366">Func In B</span></span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; d.Func();</font></span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font><span style="color: green">// 执行d.Func：1.先检查申明类A 2.检查到是虚拟方法 3.转去检查实例类D，无重载的（这个地方要注意了，虽然D里有实现Func()，但没有使用override关键字，所以不会被认为是重载） 4.转去检查类D的父类A，就为本身 5.执行父类A中的Func方法 5.输出结果 </span><span style="color: #993366">Func In A</span></span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; D d1 = </font><span style="color: blue">new</span><font color="#000000"> D()</font></span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; font-family: 新宋体"><font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; d1.Func();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font><span style="color: green">// 执行D类里的Func()，输出结果 Func In D</span><font color="#000000">}</font></span> </p>
            <p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; letter-spacing: 1pt"><font face="Times New Roman" color="#000000">&nbsp;</font></span> </p>
            </td>
        </tr>
    </tbody>
</table>
<p style="margin: 0in 0in 0pt"><span style="font-size: 9pt; letter-spacing: 1pt"><font face="Times New Roman" color="#000000">&nbsp;</font></span> </p>
</div>
<img src ="http://www.cnblogs.com/wangxiang/aggbug/1079548.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42826/" target="_blank">[新闻]微软拟2010年推新版SQL 强化商业智能功能</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>DataRow对象数据绑定问题</title><link>http://www.cnblogs.com/wangxiang/archive/2008/02/24/1079501.html</link><dc:creator>王祥 @ dot net 驿站</dc:creator><author>王祥 @ dot net 驿站</author><pubDate>Sun, 24 Feb 2008 08:23:00 GMT</pubDate><guid>http://www.cnblogs.com/wangxiang/archive/2008/02/24/1079501.html</guid><wfw:comment>http://www.cnblogs.com/wangxiang/comments/1079501.html</wfw:comment><comments>http://www.cnblogs.com/wangxiang/archive/2008/02/24/1079501.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/wangxiang/comments/commentRss/1079501.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/wangxiang/services/trackbacks/1079501.html</trackback:ping><description><![CDATA[<font face="Verdana">DataRow对象不能直接绑定到数据显示控件，如DataGrid。需要将DataRow数据copy到DataTable中，然后绑定到dataGrid上。<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"><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim&nbsp;dt&nbsp;As&nbsp;DataTable&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;New&nbsp;DataTable<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;datatable2&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;CType(Session(</span><span style="color: #800000">"</span><span style="color: #800000">Result</span><span style="color: #800000">"</span><span style="color: #000000">),&nbsp;DataSet).Tables(</span><span style="color: #800080">0</span><span style="color: #000000">)&nbsp;&nbsp;'数据源<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dt&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;datatable2.Clone()&nbsp;</span><span style="color: #800000">'</span><span style="color: #800000">复制表结构</span><span style="color: #800000"><br />
</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #800000">'</span><span style="color: #800000">导入数据列到数据表</span><span style="color: #800000"><br />
</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;For&nbsp;Each&nbsp;dw&nbsp;As&nbsp;DataRow&nbsp;In&nbsp;datatable2.Select(</span><span style="color: #800000">"</span><span style="color: #800000">xorw='</span><span style="color: #800000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;DropDownList1.SelectedItem.Text&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">'</span><span style="color: #800000">"</span><span style="color: #000000">)&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dt.ImportRow(dw)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Next</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DataGrid.DataSource&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;dt '绑定<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGrid.DataBind()</span></div>
<br />
</font>
<img src ="http://www.cnblogs.com/wangxiang/aggbug/1079501.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42826/" target="_blank">[新闻]微软拟2010年推新版SQL 强化商业智能功能</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item></channel></rss>