﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-Snowdream-随笔分类-Web</title><link>http://www.blogjava.net/zellux/category/21873.html</link><description>盲目、宽泛、浮躁的学习笔记</description><language>zh-cn</language><lastBuildDate>Tue, 14 Aug 2007 19:38:06 GMT</lastBuildDate><pubDate>Tue, 14 Aug 2007 19:38:06 GMT</pubDate><ttl>60</ttl><item><title>PHP + IIS 配置成功</title><link>http://www.blogjava.net/zellux/archive/2007/07/26/132475.html</link><dc:creator>ZelluX</dc:creator><author>ZelluX</author><pubDate>Thu, 26 Jul 2007 03:27:00 GMT</pubDate><guid>http://www.blogjava.net/zellux/archive/2007/07/26/132475.html</guid><wfw:comment>http://www.blogjava.net/zellux/comments/132475.html</wfw:comment><comments>http://www.blogjava.net/zellux/archive/2007/07/26/132475.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zellux/comments/commentRss/132475.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zellux/services/trackbacks/132475.html</trackback:ping><description><![CDATA[<p>先试着用Apache2.2 + PHP，但是由于上一次删除Apache时没删干净，然后我用注册表手动删除还是有残留，结果Apache就废掉了，装也装不上，卸也卸不掉-,-<br>正好以前捣鼓.NET时装了IIS，就干脆用这个好了。</p>
<p>复制php5ts.dll和 libmysql.dll到c:\windows\system32</p>
<p>打开IIS配置，默认网站-&gt;属性-&gt;主目录-&gt;配置-&gt;添加/编辑应用程序扩展名映射，设置可执行文件指向php5isapi.dll文件，扩展名输入.php，选中脚本引擎和检查文件是否存在。</p>
<p>在IIS网站目录下新建phpinfo.php，内容为&lt;?php phpinfo();?&gt; </p>
<p>访问http://localhost/phpinfo.php ，查看是否正确。</p>
<img src ="http://www.blogjava.net/zellux/aggbug/132475.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zellux/" target="_blank">ZelluX</a> 2007-07-26 11:27 <a href="http://www.blogjava.net/zellux/archive/2007/07/26/132475.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>zz网页的背景色参考</title><link>http://www.blogjava.net/zellux/archive/2007/06/11/123344.html</link><dc:creator>ZelluX</dc:creator><author>ZelluX</author><pubDate>Mon, 11 Jun 2007 03:34:00 GMT</pubDate><guid>http://www.blogjava.net/zellux/archive/2007/06/11/123344.html</guid><wfw:comment>http://www.blogjava.net/zellux/comments/123344.html</wfw:comment><comments>http://www.blogjava.net/zellux/archive/2007/06/11/123344.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zellux/comments/commentRss/123344.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zellux/services/trackbacks/123344.html</trackback:ping><description><![CDATA[
<p>from <a href="http://gyq.czszg.net/items/rxk06/words-color.htm">http://gyq.czszg.net/items/rxk06/words-color.htm</a></p>
<p>对于做网页的初学者可能更习惯于使用一些漂亮的图片作为自己网页的背景，但浏览一<br/>下大型的商业网站，你会发现他们更多运用的是白色、蓝色、黄色等，使得网页显得典<br/>雅，大方和温馨。更重要的是，这样可以大大加快浏览者打开网页的速度。</p>
<p>　　一般来说，网页的背景色应该柔和一些、素一些、淡一些，再配上深色的文字，使<br/>人看起来自然、舒畅。而为了追求醒目的视觉效果，可以为标题使用较深的颜色。下面<br/>是我做网页和浏览别人的网页时，对网页背景色和文字色彩搭配积累的经验，这些颜色<br/>可以做正文的底色，也可以做标题的底色，再搭配不同的字体，一定会有不错的效果，<br/>希望对大家在制作网页时有用。</p>
<p>　　 BgcolorΚ″＃F1FAFA″---做正文的背景色好，淡雅</p>
<p>　　 BgcolorΚ″＃E8FFE8″---做标题的背景色较好</p>
<p>　　 BgcolorΚ″＃E8E8FF″---做正文的背景色较好，文字颜色配黑色<br/><br/>BgcolorΚ″＃8080C0″---上配黄色白色文字较好<br/>　　<br/>BgcolorΚ″＃E8D098″---上配浅蓝色或蓝色文字较好</p>
<p>　　 BgcolorΚ″＃EFEFDA″---上配浅蓝色或红色文字较好</p>
<p>　　 BgcolorΚ″＃F2F1D7″---配黑色文字素雅，如果是红色则显得醒目</p>
<p>　　 BgcolorΚ″＃336699″---配白色文字好看些</p>
<p>　　 BgcolorΚ″＃6699CC″---配白色文字好看些，可以做标题</p>
<p>　　 BgcolorΚ″＃66CCCC″---配白色文字好看些，可以做标题</p>
<p>　　 BgcolorΚ″＃B45B3E″---配白色文字好看些，可以做标题</p>
<p>　　 BgcolorΚ″＃479AC7″---配白色文字好看些，可以做标题</p>
<p>　　 BgcolorΚ″＃00B271″---配白色文字好看些，可以做标题</p>
<p>　　 BgcolorΚ″＃FBFBEA″---配黑色文字比较好看，一般作为正文</p>
<p>　　 BgcolorΚ″＃D5F3F4″---配黑色文字比较好看，一般作为正文</p>
<p>　　 BgcolorΚ″＃D7FFF0″---配黑色文字比较好看，一般作为正文</p>
<p>　　 BgcolorΚ″＃F0DAD2″---配黑色文字比较好看，一般作为正文</p>
<p>　　 BgcolorΚ″＃DDF3FF″---配黑色文字比较好看，一般作为正文</p>
<p>　　浅绿色底配黑色文字，或白色底配蓝色文字都很醒目，但前者突出背景，后者突出<br/>文字。红色底配白色文字，比较深的底色配黄色文字显得非常有效果。<br/></p>
<img src ="http://www.blogjava.net/zellux/aggbug/123344.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zellux/" target="_blank">ZelluX</a> 2007-06-11 11:34 <a href="http://www.blogjava.net/zellux/archive/2007/06/11/123344.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>CSS Hacks</title><link>http://www.blogjava.net/zellux/archive/2007/05/14/117282.html</link><dc:creator>ZelluX</dc:creator><author>ZelluX</author><pubDate>Mon, 14 May 2007 03:17:00 GMT</pubDate><guid>http://www.blogjava.net/zellux/archive/2007/05/14/117282.html</guid><wfw:comment>http://www.blogjava.net/zellux/comments/117282.html</wfw:comment><comments>http://www.blogjava.net/zellux/archive/2007/05/14/117282.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zellux/comments/commentRss/117282.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zellux/services/trackbacks/117282.html</trackback:ping><description><![CDATA[CSS hack是指我们为了兼容各浏览器，而使用的特别的css定义技巧。<br><img height=768 alt="" src="http://www.blogjava.net/images/blogjava_net/zellux/css_buglist.gif" width=526 border=0><br>例如<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #example {}&nbsp; /*&nbsp; Firefox */<br>* html #example {}&nbsp; /*&nbsp; IE6&nbsp;&nbsp;&nbsp;&nbsp; */<br>*+html #example {}&nbsp; /*&nbsp; IE7&nbsp;&nbsp;&nbsp;&nbsp; */<br>这段代码能够让不同的浏览器使用不同的样式
<img src ="http://www.blogjava.net/zellux/aggbug/117282.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zellux/" target="_blank">ZelluX</a> 2007-05-14 11:17 <a href="http://www.blogjava.net/zellux/archive/2007/05/14/117282.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JavaScript 学习 - Inheritance</title><link>http://www.blogjava.net/zellux/archive/2007/05/05/115437.html</link><dc:creator>ZelluX</dc:creator><author>ZelluX</author><pubDate>Sat, 05 May 2007 10:57:00 GMT</pubDate><guid>http://www.blogjava.net/zellux/archive/2007/05/05/115437.html</guid><wfw:comment>http://www.blogjava.net/zellux/comments/115437.html</wfw:comment><comments>http://www.blogjava.net/zellux/archive/2007/05/05/115437.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zellux/comments/commentRss/115437.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zellux/services/trackbacks/115437.html</trackback:ping><description><![CDATA[1. Javascript中的继承要自己模拟实现。一些常用方法：<br>a) Object masquerading<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img id=Codehighlighter1_24_119_Open_Image onclick="this.style.display='none'; Codehighlighter1_24_119_Open_Text.style.display='none'; Codehighlighter1_24_119_Closed_Image.style.display='inline'; Codehighlighter1_24_119_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_24_119_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_24_119_Closed_Text.style.display='none'; Codehighlighter1_24_119_Open_Image.style.display='inline'; Codehighlighter1_24_119_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align=top><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000">&nbsp;ClassA(sColor)&nbsp;</span><span id=Codehighlighter1_24_119_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_24_119_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.color&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;sColor;<br><img id=Codehighlighter1_83_116_Open_Image onclick="this.style.display='none'; Codehighlighter1_83_116_Open_Text.style.display='none'; Codehighlighter1_83_116_Closed_Image.style.display='inline'; Codehighlighter1_83_116_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_83_116_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_83_116_Closed_Text.style.display='none'; Codehighlighter1_83_116_Open_Image.style.display='inline'; Codehighlighter1_83_116_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.sayColor&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000">&nbsp;()&nbsp;</span><span id=Codehighlighter1_83_116_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_83_116_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert(</span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.color);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000">;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br><img id=Codehighlighter1_152_327_Open_Image onclick="this.style.display='none'; Codehighlighter1_152_327_Open_Text.style.display='none'; Codehighlighter1_152_327_Closed_Image.style.display='inline'; Codehighlighter1_152_327_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_152_327_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_152_327_Closed_Text.style.display='none'; Codehighlighter1_152_327_Open_Image.style.display='inline'; Codehighlighter1_152_327_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000">&nbsp;ClassB(sColor,&nbsp;sName)&nbsp;</span><span id=Codehighlighter1_152_327_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_152_327_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.newMethod&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;ClassA;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.newMethod(sColor);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">delete</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.newMethod;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.name&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;sName;<br><img id=Codehighlighter1_292_324_Open_Image onclick="this.style.display='none'; Codehighlighter1_292_324_Open_Text.style.display='none'; Codehighlighter1_292_324_Closed_Image.style.display='inline'; Codehighlighter1_292_324_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_292_324_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_292_324_Closed_Text.style.display='none'; Codehighlighter1_292_324_Open_Image.style.display='inline'; Codehighlighter1_292_324_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.sayName&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000">&nbsp;()&nbsp;</span><span id=Codehighlighter1_292_324_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_292_324_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert(</span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.name);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000">;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span></div>
通过调用ClassA的生成方法，ClassB继承了ClassA的属性和方法，同时newMethod所占用的空间也被释放。<br><br>另外，Object masquerading还支持多重继承，方法类似。<br><br>b) 使用call()方法<br>感觉这个方法类似于Java反射机制中的invoke方法，第一个参数是个调用的对象主体，后面是被调用方法的参数。<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img id=Codehighlighter1_31_153_Open_Image onclick="this.style.display='none'; Codehighlighter1_31_153_Open_Text.style.display='none'; Codehighlighter1_31_153_Closed_Image.style.display='inline'; Codehighlighter1_31_153_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_31_153_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_31_153_Closed_Text.style.display='none'; Codehighlighter1_31_153_Open_Image.style.display='inline'; Codehighlighter1_31_153_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align=top><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000">&nbsp;ClassB(sColor,&nbsp;sName)&nbsp;</span><span id=Codehighlighter1_31_153_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_31_153_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;ClassA.call(</span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">,&nbsp;sColor);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.name&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;sName;<br><img id=Codehighlighter1_118_150_Open_Image onclick="this.style.display='none'; Codehighlighter1_118_150_Open_Text.style.display='none'; Codehighlighter1_118_150_Closed_Image.style.display='inline'; Codehighlighter1_118_150_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_118_150_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_118_150_Closed_Text.style.display='none'; Codehighlighter1_118_150_Open_Image.style.display='inline'; Codehighlighter1_118_150_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.sayName&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000">&nbsp;()&nbsp;</span><span id=Codehighlighter1_118_150_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_118_150_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert(</span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.name);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000">;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span></div>
ClassB通过调用ClassA的生成方法完成了初始化。<br><br>c) 使用apply()方法<br>和call()方法很相似，不同的是apply方法只有两个参数，一个是调用对象主体，一个是参数数组。<br>因此只要被上例的call语句改成ClassA.apply(this, new Array(sColor));即可<br><br>d) prototype链<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img id=Codehighlighter1_18_20_Open_Image onclick="this.style.display='none'; Codehighlighter1_18_20_Open_Text.style.display='none'; Codehighlighter1_18_20_Closed_Image.style.display='inline'; Codehighlighter1_18_20_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_18_20_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_18_20_Closed_Text.style.display='none'; Codehighlighter1_18_20_Open_Image.style.display='inline'; Codehighlighter1_18_20_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align=top><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000">&nbsp;ClassA()&nbsp;</span><span id=Codehighlighter1_18_20_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_18_20_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>ClassA.prototype.color&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;&#8220;red&#8221;;<br><img id=Codehighlighter1_94_119_Open_Image onclick="this.style.display='none'; Codehighlighter1_94_119_Open_Text.style.display='none'; Codehighlighter1_94_119_Closed_Image.style.display='inline'; Codehighlighter1_94_119_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_94_119_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_94_119_Closed_Text.style.display='none'; Codehighlighter1_94_119_Open_Image.style.display='inline'; Codehighlighter1_94_119_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align=top>ClassA.prototype.sayColor&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000">&nbsp;()&nbsp;</span><span id=Codehighlighter1_94_119_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_94_119_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;alert(</span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.color);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000">;<br><img id=Codehighlighter1_140_142_Open_Image onclick="this.style.display='none'; Codehighlighter1_140_142_Open_Text.style.display='none'; Codehighlighter1_140_142_Closed_Image.style.display='inline'; Codehighlighter1_140_142_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_140_142_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_140_142_Closed_Text.style.display='none'; Codehighlighter1_140_142_Open_Image.style.display='inline'; Codehighlighter1_140_142_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000">&nbsp;ClassB()&nbsp;</span><span id=Codehighlighter1_140_142_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_140_142_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>ClassB.prototype&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;ClassA();</span></div>
注意被继承的类ClassA构造方法里没有任何参数。<br>ClassB新的属性要在prototype被赋值后再添加，否则就会被删除。<br>这种方法的好处在于，使用instanceof判断子类对象和父类的关系的结果是true，和面向对象的思想一致。 <br><br>e) 混合<br>Object masquerading的缺点在于性能不好，而prototype链又只能用无参构造器。因此要把两者结合起来。<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img id=Codehighlighter1_24_51_Open_Image onclick="this.style.display='none'; Codehighlighter1_24_51_Open_Text.style.display='none'; Codehighlighter1_24_51_Closed_Image.style.display='inline'; Codehighlighter1_24_51_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_24_51_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_24_51_Closed_Text.style.display='none'; Codehighlighter1_24_51_Open_Image.style.display='inline'; Codehighlighter1_24_51_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align=top><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000">&nbsp;ClassA(sColor)&nbsp;</span><span id=Codehighlighter1_24_51_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_24_51_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.color&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;sColor;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br><img id=Codehighlighter1_93_118_Open_Image onclick="this.style.display='none'; Codehighlighter1_93_118_Open_Text.style.display='none'; Codehighlighter1_93_118_Closed_Image.style.display='inline'; Codehighlighter1_93_118_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_93_118_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_93_118_Closed_Text.style.display='none'; Codehighlighter1_93_118_Open_Image.style.display='inline'; Codehighlighter1_93_118_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align=top>ClassA.prototype.sayColor&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000">&nbsp;()&nbsp;</span><span id=Codehighlighter1_93_118_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_93_118_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;alert(</span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.color);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000">;<br><img id=Codehighlighter1_152_208_Open_Image onclick="this.style.display='none'; Codehighlighter1_152_208_Open_Text.style.display='none'; Codehighlighter1_152_208_Closed_Image.style.display='inline'; Codehighlighter1_152_208_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_152_208_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_152_208_Closed_Text.style.display='none'; Codehighlighter1_152_208_Open_Image.style.display='inline'; Codehighlighter1_152_208_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000">&nbsp;ClassB(sColor,&nbsp;sName)&nbsp;</span><span id=Codehighlighter1_152_208_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_152_208_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;ClassA.call(</span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">,&nbsp;sColor);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.name&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;sName;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>ClassB.prototype&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;ClassA();<br><img id=Codehighlighter1_282_306_Open_Image onclick="this.style.display='none'; Codehighlighter1_282_306_Open_Text.style.display='none'; Codehighlighter1_282_306_Closed_Image.style.display='inline'; Codehighlighter1_282_306_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_282_306_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_282_306_Closed_Text.style.display='none'; Codehighlighter1_282_306_Open_Image.style.display='inline'; Codehighlighter1_282_306_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align=top>ClassB.prototype.sayName&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000">&nbsp;()&nbsp;</span><span id=Codehighlighter1_282_306_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_282_306_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;alert(</span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.name);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000">;</span></div>
要求ClassA在创建的时候也使用了prototype和constructor方法。<br><br>f) 动态创建的类的继承<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img id=Codehighlighter1_34_328_Open_Image onclick="this.style.display='none'; Codehighlighter1_34_328_Open_Text.style.display='none'; Codehighlighter1_34_328_Closed_Image.style.display='inline'; Codehighlighter1_34_328_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_34_328_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_34_328_Closed_Text.style.display='none'; Codehighlighter1_34_328_Open_Image.style.display='inline'; Codehighlighter1_34_328_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align=top><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000">&nbsp;Triangle(iBase,&nbsp;iHeight)&nbsp;</span><span id=Codehighlighter1_34_328_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_34_328_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;Polygon.call(</span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.base&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;iBase;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.height&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;iHeight;<br><img id=Codehighlighter1_170_326_Open_Image onclick="this.style.display='none'; Codehighlighter1_170_326_Open_Text.style.display='none'; Codehighlighter1_170_326_Closed_Image.style.display='inline'; Codehighlighter1_170_326_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_170_326_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_170_326_Closed_Text.style.display='none'; Codehighlighter1_170_326_Open_Image.style.display='inline'; Codehighlighter1_170_326_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">typeof</span><span style="COLOR: #000000">&nbsp;Triangle._initialized&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#8220;undefined&#8221;)&nbsp;</span><span id=Codehighlighter1_170_326_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_170_326_Open_Text><span style="COLOR: #000000">{<br><img id=Codehighlighter1_221_281_Open_Image onclick="this.style.display='none'; Codehighlighter1_221_281_Open_Text.style.display='none'; Codehighlighter1_221_281_Closed_Image.style.display='inline'; Codehighlighter1_221_281_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_221_281_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_221_281_Closed_Text.style.display='none'; Codehighlighter1_221_281_Open_Image.style.display='inline'; Codehighlighter1_221_281_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Triangle.prototype.getArea&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000">&nbsp;()&nbsp;</span><span id=Codehighlighter1_221_281_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_221_281_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0.5</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.base&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.height;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000">;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Triangle._initialized&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">true</span><span style="COLOR: #000000">;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>Triangle.prototype&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;Polygon();</span></div>
注意prototype继承这一语句是在最后执行的，也不能被封装进构造器中。<br><br>2. zInherit库<br>简略的看了下，基本功能Prototype框架都提供。<br><br>3.xbObjects<br>同样是个库，略
<img src ="http://www.blogjava.net/zellux/aggbug/115437.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zellux/" target="_blank">ZelluX</a> 2007-05-05 18:57 <a href="http://www.blogjava.net/zellux/archive/2007/05/05/115437.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Firebug Lite for IE, Safari, Opera...</title><link>http://www.blogjava.net/zellux/archive/2007/05/05/115408.html</link><dc:creator>ZelluX</dc:creator><author>ZelluX</author><pubDate>Sat, 05 May 2007 04:26:00 GMT</pubDate><guid>http://www.blogjava.net/zellux/archive/2007/05/05/115408.html</guid><wfw:comment>http://www.blogjava.net/zellux/comments/115408.html</wfw:comment><comments>http://www.blogjava.net/zellux/archive/2007/05/05/115408.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.blogjava.net/zellux/comments/commentRss/115408.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zellux/services/trackbacks/115408.html</trackback:ping><description><![CDATA[看到Firebug升级到1.0.5了，就去官网看了下<br>更新内容没什么，不过发现一个不错的脚本插件Firebug lite，适用于其他浏览器。<br><a href="http://www.getfirebug.com/releases/firebuglite1.0-b1.zip">http://www.getfirebug.com/releases/firebuglite1.0-b1.zip</a><br><a href="http://www.blogjava.net/Files/zellux/firebug.rar">http://www.blogjava.net/Files/zellux/firebug.rar</a><br>使用方法很简单，解压到要测试的网页目录下（包括目录）<br>在html中加入<br>&lt;script language="javascript" type="text/javascript" src="/firebug/firebug.js"&gt;&lt;/script&gt;<br>然后在html标签中声明<br>&lt;html debug="true"&gt;<br>就可以在网页中使用Ctrl+Shift+F12打开Firebug的控制栏进行调试了。 
<img src ="http://www.blogjava.net/zellux/aggbug/115408.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zellux/" target="_blank">ZelluX</a> 2007-05-05 12:26 <a href="http://www.blogjava.net/zellux/archive/2007/05/05/115408.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JavaScript 学习 - Object Basics</title><link>http://www.blogjava.net/zellux/archive/2007/05/04/115366.html</link><dc:creator>ZelluX</dc:creator><author>ZelluX</author><pubDate>Fri, 04 May 2007 15:06:00 GMT</pubDate><guid>http://www.blogjava.net/zellux/archive/2007/05/04/115366.html</guid><wfw:comment>http://www.blogjava.net/zellux/comments/115366.html</wfw:comment><comments>http://www.blogjava.net/zellux/archive/2007/05/04/115366.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zellux/comments/commentRss/115366.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zellux/services/trackbacks/115366.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 1. 面向对象语言的四个要素：封装、聚合(Aggregation)、继承、多态。ps. Aggragation - the capability to store one object inside of another object（貌似这本书并没有区分Object-based和Object-oriented）2. 创建对象基本和Java一样，但对于无参构造器，也可以使用类似Delphi的没有括...&nbsp;&nbsp;<a href='http://www.blogjava.net/zellux/archive/2007/05/04/115366.html'>阅读全文</a><img src ="http://www.blogjava.net/zellux/aggbug/115366.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zellux/" target="_blank">ZelluX</a> 2007-05-04 23:06 <a href="http://www.blogjava.net/zellux/archive/2007/05/04/115366.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JavaScript 学习 - Functions</title><link>http://www.blogjava.net/zellux/archive/2007/05/04/115352.html</link><dc:creator>ZelluX</dc:creator><author>ZelluX</author><pubDate>Fri, 04 May 2007 14:20:00 GMT</pubDate><guid>http://www.blogjava.net/zellux/archive/2007/05/04/115352.html</guid><wfw:comment>http://www.blogjava.net/zellux/comments/115352.html</wfw:comment><comments>http://www.blogjava.net/zellux/archive/2007/05/04/115352.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zellux/comments/commentRss/115352.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zellux/services/trackbacks/115352.html</trackback:ping><description><![CDATA[<p>越来越发现JavaScript其实是一门很强大、很精深的语言，要好好学习下。<br>以下例子都摘自于Professional JavaScript for Web Developers<br><br>1. JavaScript中函数不能重载。<br><br>2. 每个函数有一个对应的arguments[]数组，包含所有的参数，且数量不需固定。</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_23_54_Open_Image onclick="this.style.display='none'; Codehighlighter1_23_54_Open_Text.style.display='none'; Codehighlighter1_23_54_Closed_Image.style.display='inline'; Codehighlighter1_23_54_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_23_54_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_23_54_Closed_Text.style.display='none'; Codehighlighter1_23_54_Open_Image.style.display='inline'; Codehighlighter1_23_54_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align=top><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000">&nbsp;howManyArgs()&nbsp;</span><span id=Codehighlighter1_23_54_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_23_54_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;alert(arguments.length);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span></div>
<br>3. 函数也是一个对象，使用Function类创建函数的方法是：<br>var function_name = new Function(argument1, argument2,..,argumentN, function_body);<br>这里所有的参数都必须是字符串。<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000">&nbsp;sayHi&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;Function(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">sName</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;Message</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">alert(\</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Hello&nbsp;\</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;sName&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;\</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;\</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;sMessage&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;\&#8221;);&#8221;);</span></div>
从这个角度看，不支持函数重载的原因也很简单。<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">doAdd&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;Function(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">iNum</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">alert(iNum&nbsp;+&nbsp;100)</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>doAdd&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;Function(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">iNum</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">alert(iNum&nbsp;+&nbsp;10)</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>doAdd(</span><span style="COLOR: #000000">10</span><span style="COLOR: #000000">);</span></div>
可以推出的几个结论：<br>a) 第二次函数声明使得doAdd指向了另一个对象，自然不可能实现重载。<br>b) 函数可以通过句柄很容易的复制。<br>c) 函数能作为参数传递给另一个函数。<br>d) func.toString()可以得到函数的具体内容。<br><br>4. 闭包 Closure<br>简单的定义就是使用了函数体之外的引用。<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000">&nbsp;sMessage&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;&#8220;Hello&nbsp;World</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">&#8221;;<br><img id=Codehighlighter1_56_79_Open_Image onclick="this.style.display='none'; Codehighlighter1_56_79_Open_Text.style.display='none'; Codehighlighter1_56_79_Closed_Image.style.display='inline'; Codehighlighter1_56_79_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_56_79_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_56_79_Closed_Text.style.display='none'; Codehighlighter1_56_79_Open_Image.style.display='inline'; Codehighlighter1_56_79_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000">&nbsp;sayHelloWorld()&nbsp;</span><span id=Codehighlighter1_56_79_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_56_79_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;alert(sMessage);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>sayHelloWorld();</span></div>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000">&nbsp;iBaseNum&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">10</span><span style="COLOR: #000000">;<br><img id=Codehighlighter1_53_155_Open_Image onclick="this.style.display='none'; Codehighlighter1_53_155_Open_Text.style.display='none'; Codehighlighter1_53_155_Closed_Image.style.display='inline'; Codehighlighter1_53_155_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_53_155_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_53_155_Closed_Text.style.display='none'; Codehighlighter1_53_155_Open_Image.style.display='inline'; Codehighlighter1_53_155_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000">&nbsp;addNumbers(iNum1,&nbsp;iNum2)&nbsp;</span><span id=Codehighlighter1_53_155_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_53_155_Open_Text><span style="COLOR: #000000">{<br><img id=Codehighlighter1_81_128_Open_Image onclick="this.style.display='none'; Codehighlighter1_81_128_Open_Text.style.display='none'; Codehighlighter1_81_128_Closed_Image.style.display='inline'; Codehighlighter1_81_128_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_81_128_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_81_128_Closed_Text.style.display='none'; Codehighlighter1_81_128_Open_Image.style.display='inline'; Codehighlighter1_81_128_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000">&nbsp;doAddition()&nbsp;</span><span id=Codehighlighter1_81_128_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_81_128_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;iNum1&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;iNum2&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;iBaseNum;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;doAddition();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span></div>
例二中的内嵌方法doAddition()使用了外部方法的参数。
<img src ="http://www.blogjava.net/zellux/aggbug/115352.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zellux/" target="_blank">ZelluX</a> 2007-05-04 22:20 <a href="http://www.blogjava.net/zellux/archive/2007/05/04/115352.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jQuery框架和Interface插件</title><link>http://www.blogjava.net/zellux/archive/2007/05/03/115135.html</link><dc:creator>ZelluX</dc:creator><author>ZelluX</author><pubDate>Thu, 03 May 2007 06:09:00 GMT</pubDate><guid>http://www.blogjava.net/zellux/archive/2007/05/03/115135.html</guid><wfw:comment>http://www.blogjava.net/zellux/comments/115135.html</wfw:comment><comments>http://www.blogjava.net/zellux/archive/2007/05/03/115135.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zellux/comments/commentRss/115135.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zellux/services/trackbacks/115135.html</trackback:ping><description><![CDATA[<p>jQuery1.1 API 英文版：<a href="http://jquery.org.cn/visual/">http://jquery.org.cn/visual/</a><br>jQuery1.1 API 英文版：<a href="http://jquery.org.cn/visual/cn/index.xml">http://jquery.org.cn/visual/cn/index.xml</a></p>
<p>Interface 插件：<a href="http://interface.eyecon.ro/">http://interface.eyecon.ro/</a><a href="http://jquery.org.cn/visual/"></a><br></p>
<p>Google到了这两个好东东，写Javascript方便不少，试着把Project2重写了一下。</p>
<p>1. 隐藏窗口只要简单地<br>$("a.closeButton").parent().parent().parent().fadeOut("slow");<br>就可以了，而且还有其他移出、缩小等效果可以选择。</p>
<p>2. 拖动<br>$("div.miniframe").Draggable({<br>&nbsp; snapDistance: 10,<br>&nbsp; frameClass: "frameClass",<br>});<br>在CSS中定义.frameClass为被拖动状态时的miniframe样式。</p>
<p>3. 获取输入框文本<br>var str = $("input[@id=idnumber]").val();<br>获取列表选中项<br><span class="objectBox objectBox-text">$("select[@id=bornyear]").val()</span></p>
<br>4. 修改文本属性<br>$("#author").text("游客");<br>
<img src ="http://www.blogjava.net/zellux/aggbug/115135.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zellux/" target="_blank">ZelluX</a> 2007-05-03 14:09 <a href="http://www.blogjava.net/zellux/archive/2007/05/03/115135.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>小结下 Web应用课 Project 2</title><link>http://www.blogjava.net/zellux/archive/2007/04/25/113590.html</link><dc:creator>ZelluX</dc:creator><author>ZelluX</author><pubDate>Wed, 25 Apr 2007 10:25:00 GMT</pubDate><guid>http://www.blogjava.net/zellux/archive/2007/04/25/113590.html</guid><wfw:comment>http://www.blogjava.net/zellux/comments/113590.html</wfw:comment><comments>http://www.blogjava.net/zellux/archive/2007/04/25/113590.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zellux/comments/commentRss/113590.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zellux/services/trackbacks/113590.html</trackback:ping><description><![CDATA[<p>尽管是两星期前完成的，不过还是养成好习惯，写下心得吧<br>1. 工具方面，Firebug真不错，大大提高了开发速度。IE的Developer Toolbar界面倒不错，不过好像稳定性不高，经常crash。<br>2. 在用js判断用户注册时，遇到验证成功后再次验证就会失败的问题。原因在于开启了正则表达式global选项，在第一次匹配后，检测指针会指向最后一个换行符，于是第二次检测就会失败。<br>3. CSS的级联特性很方便，只要把body的className属性改掉后，所有的级联子节点都会相应地改变样式，不像swing中需要一堆repaint()&nbsp; -,-<br>4. 要通过js修改网页的某处文字，一开始我通过修改someNode.firstChild.nodeValue，后来发现有textContent和innerHTML属性。不过貌似前者在IE中会出现问题，而后者IE和Firefox下表现也不完全一样，需要小改动。<br>4. js中可以很方便的动态创建网页标签，好像是createElement(elementType)方法（Project2的代码手头没有，只能凭记忆了），然后设置下newNode的属性，再通过父节点的addChild方法加入就行了。注意newNode的parentNode是只读的。<br>5. js访问cookie也不难，从一本电子书上复制粘贴了getCookie和setCookie两个方法，可以很方便地对cookie进行操作。<br><br>EyesOnMe.txt<br>完成模块：<br>1. 用户登录与注销<br>&nbsp;&nbsp; 1) FF下需允许JavaScript修改状态栏<br>&nbsp;&nbsp; 2) FF下还有个小bug，举例说明：<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 输入<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#116;&#101;&#115;&#116;&#64;&#97;&#97;&#97;&#46;&#99;&#111;&#109;">test@aaa.com</a>，登录成功<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 修改文本框中的字符，比如修改成<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#116;&#101;&#115;&#116;&#64;&#97;&#97;&#46;&#99;&#111;&#109;">test@aa.com</a>，再次登录，提示登录失败，此时根据要求文本框内容清空<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 再次输入<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#116;&#101;&#115;&#116;&#64;&#97;&#97;&#46;&#99;&#111;&#109;">test@aa.com</a>，登录成功<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 有点诡异，不过要防止这个bug只要在登录后把onsubmit功能取消掉就行了。IE6下没有这个问题。</p>
<p>2. 用户注册<br>3. 界面模块<br>4. 选做1：实现组件在页面内的自由拖放<br>5. 飞行游戏模块 及 选做2<br>&nbsp; &#8220;增加星星&#8221;功能可以在运行时动态生成星星。</p>
<p>&nbsp; 1) 在实现多个星星的控制的时候我使用了一个spacestar数组，发现访问该数组成员时，不能使用for each循环<br>&nbsp;&nbsp;&nbsp;&nbsp; 如果使用<br>&nbsp;&nbsp;&nbsp;&nbsp; for (star in spacestar) {...}<br>&nbsp;&nbsp;&nbsp;&nbsp; 这样star只会是一个字符串，并不是指向各元素的句柄。<br>&nbsp;&nbsp;&nbsp;&nbsp; 但是使用<br>&nbsp;&nbsp;&nbsp;&nbsp; for (i = 0; i&lt;spacestar.length; i++) {...}<br>&nbsp;&nbsp;&nbsp;&nbsp; 然后通过spacestar[i]来访问，可以得到各元素的句柄。<br>&nbsp;<br>&nbsp; 2) 新创建的星星div会自动排在原来div的后面，因此在设置top属性的时候作了相关修正：<br>&nbsp;&nbsp;&nbsp;&nbsp; starY = Math.round(Math.random() * 130) - i * 30;<br>&nbsp;&nbsp;&nbsp;&nbsp; 不过好像星星一多还是会有越界的现象发生，IE6下更为严重。<br>&nbsp; <br>&nbsp; 3) 一开始发现IE6不支持飞行游戏模块，以为是IE6不支持createElement方法，后来才发现原来是某两个语句后面少打了分号，FF自动修复</p>
<p>了，IE6没修复，就无法执行了，如果浏览器脚本语言支持Python就好了 =_</p>
<p>6. 必做组件：便笺簿<br>&nbsp;&nbsp; 觉得做为桌面Widget还是便笺比较有用，使用了cookie保存便笺内容，并支持动态生成、创建便笺的功能。<br>&nbsp;&nbsp; 自认这个组件创意不咋的，不过技术含量还是挺高的 ^_^</p>
<p>7. 代码风格</p>
<p>思考：<br>1. 我觉得跨浏览器关键靠经验，刚开始学得每写一点代码就在不同浏览器中调试下，某些功能针对不同的浏览器使用不同的js方法。<br>&nbsp;&nbsp; 1) 在便笺簿模块中，生成新的&lt;a&gt;便签的时候，链接文字使用<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; oNoteSetter.contentText = " 读取";<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在FF下正常，在IE6下无效；后来google了下，改用<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; oNoteSetter.innerHTML="&amp;nbsp;读取";<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 后FF和IE6下均通过。</p>
<p>2. 做这个project之前，我也不知道JavaScript居然有那么强大的功能，翻了Professional JavaScript for Web Developers和Making Use of </p>
<p>Javascript才知道原来可以动态生成元素、修改cookie。CSS的级联特性也很不错，要是用Java的Swing组件估计要痛苦地repaint()了。</p>
<img src ="http://www.blogjava.net/zellux/aggbug/113590.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zellux/" target="_blank">ZelluX</a> 2007-04-25 18:25 <a href="http://www.blogjava.net/zellux/archive/2007/04/25/113590.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>CSS - Setting the Foundations</title><link>http://www.blogjava.net/zellux/archive/2007/04/22/112779.html</link><dc:creator>ZelluX</dc:creator><author>ZelluX</author><pubDate>Sun, 22 Apr 2007 12:25:00 GMT</pubDate><guid>http://www.blogjava.net/zellux/archive/2007/04/22/112779.html</guid><wfw:comment>http://www.blogjava.net/zellux/comments/112779.html</wfw:comment><comments>http://www.blogjava.net/zellux/archive/2007/04/22/112779.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zellux/comments/commentRss/112779.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zellux/services/trackbacks/112779.html</trackback:ping><description><![CDATA[<img class=man src="http://image2.sina.com.cn/blog/tmpl/v3/theme/images/moon.gif"><span class=time>2007-03-24　22:17:50</span></td>
<br>
<div class="sysBr500 text" id=articleText3e123f03010008d2 align=left>
<p>继续保持记笔记的习惯。</p>
<p>CSS Mastery: Advanced Web Standards Solutions</p>
<p>1. 应该只在没有现有元素能够实现区域分割的情况下使用div元素。如<br>&gt;div id="mainNav"&lt;<br>&gt;ul&lt;<br>&gt;li&lt;1&gt;/li&lt;<br>...<br>&gt;/ul&lt;<br>&gt;/div&lt;<br>就应当使用<br>&gt;ul id="mainNav"&lt;<br>...<br>&gt;/ul&lt;<br>代替</p>
<p>2. 伪类(Pseudo-classes)<br>如a:link a:visited 称为链接伪类，只能用于锚(anchor)元素。<br>input:focus tr:hover a:active 称为动态伪类，理论上可以应用于任何元素。</p>
<p>3. 通用选择器(the universal selector)<br>* {<br>margin: 0px;<br>}<br>作用于所有元素。</p>
<p>4. 高级选择器<br>Firefox Safari 均支持，IE 6及更低版本不支持，因此在重要元素上要避免使用。<br>1)子选择器<br>如#nav &lt; li仅作用于nav的第一层li，li中包含的列表项不受影响<br>2)属性选择器<br><font face="Courier New">abbr[title] {border-bottom: 1px dotted #999;}<br>abbr[title]:hover {cursor: help;}<br>修改了abbr的title属性，不过第一行貌似在IE7中也没有效果，Firefox下可以。<br></font></p>
</div>
<img src ="http://www.blogjava.net/zellux/aggbug/112779.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zellux/" target="_blank">ZelluX</a> 2007-04-22 20:25 <a href="http://www.blogjava.net/zellux/archive/2007/04/22/112779.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>