<?xml version="1.0" encoding="UTF-8" ?><rss version="2.0" xmlns:content="http://purl.org/Rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"><channel><title>一天天</title><link>http://www.i170.com/user/heaven/Rss</link><description></description><language>zh-cn</language><pubDate>Sat, 31 Jul 2010 15:06:40  +0800</pubDate><generator>i170.com</generator><image><title>一天天</title><url>http://www.i170.comattavatar_1/heaven_Src.JPG</url><link>http://www.i170.com/user/heaven/Rss</link></image> <item><link>http://www.i170.com/Article/119812</link><title><![CDATA[值得永久收藏的十大网站【涵盖很全，音乐、游戏、电影、艺术等等等等！！！】]]></title><author>heaven</author><category>商业,游戏,音乐,孩子,健康,男人,女人,SNS,读书,...</category><pubDate>Thu, 10 Dec 2009 10:36:45  +0800</pubDate><description><![CDATA[<p><br>
<font size="5"><font face="Verdana">-1-&nbsp;</font>
<strong>时尚网</strong></font>：<a href=
"http://www.trends.com.cn/">http://www.trends.com.cn/</a></p>
<p><a href="http://www.trends.com.cn/"><img alt="" src=
"http://www.trends.com.cn/aboutus/images/t_logo.gif"></a><br>
<font size="4">这个不用多介绍，一般都应该知道，时尚传媒集团旗下现拥有：《时尚
COMSOPOLITAN》、《时尚先生》、《时尚家居》、《时尚旅游》、《时尚健康·女士》、《时尚健康·男士》、《时尚芭莎》、《时尚芭莎·男士》、《华夏地理》、《时尚时间》、《好管家》、《时尚座驾》、《男人装》、《美食与美酒》、《罗博报告》、《时尚·新娘》及时尚博闻·图书和
“时尚网”<a href="http://www.trends.com.cn/" target=
"_blank"><font color=
"#0000FF"><u>www.trends.com.cn</u></font></a>，优卡网<a href=
"http://www.yoka.com/" target="_blank"><u><font color=
"#0000FF">www.yoka.com</font></u></a>。</font></p>
<p><br>
<font size="5"><font face="Verdana">-2-&nbsp;</font>
<strong>亦歌</strong></font>：<a href=
"http://www.1g1g.com">www.1g1g.com<br></a> <font size=
"4">作为一款全新的在线音乐播放器，亦歌提供简单、快捷、实用的音乐播放服务。<br>
如果您有一边在电脑上工作、娱乐一边听听音乐的习惯，亦歌希望成为您首选的音乐播放器。</font></p>
<p><br>
<font size="5"><font face="Verdana">-3-&nbsp;</font>
<strong>音乐台</strong></font>：<a href=
"http://www.yinyuetai.com">www.yinyuetai.com</a></p>
<p><a href="http://www.yinyuetai.com"><img width="290" height="55"
alt="" src=
"http://www.i170.com/Attach/A7FC8B1B-BCBE-461B-939B-4A3C1DE53F3D"></a><br>

<font size="4">提供高清MV在线看的网站，清晰度和速度都很棒，对喜欢看新歌MV的人来书，必须收藏。</font></p>
<p><br>
<font size="5"><font face="Verdana">-4-&nbsp;</font>
<strong>译言</strong></font>：<a href=
"http://www.yeeyan.com">www.yeeyan.com</a></p>
<p><a href="http://www.yeeyan.com"><img style=
"width: 80px; height: 69px" alt="" width="111" height="69" src=
"http://tp2.sinaimg.cn/1642294753/180/1251362890"></a></p>
<p><font size=
"4">互联网中文外的资料也是非常精彩的，译言是一个开放的社区翻译平台，希望"发现，翻译，阅读中文之外的互联网精华"。由译言的译者们把中文之外的互联网精华内容翻译成中文，发布到网站上。我们的目标是把译言建设成一个有影响力的严肃内容提供方和译者活动社区。</font></p>
<p><br>
<font size="5"><font face="Verdana">-5-&nbsp;</font>
<strong>时光网</strong></font>：<a href=
"http://www.mtime.com">www.mtime.com</a></p>
<p><a href="http://www.mtime.com"><img alt="" src=
"http://www.mtime.com/act/ticket/i/logo88-32.jpg"></a><br>
<font size=
"4">喜欢看电影的朋友一定要上上这个网站看看，里面有时下热门的电影资讯和网友们发表的影评，还有大量的电影预告片，更值得一说的是在时光网上可以查看全国各个大城市的电影院的电影播放时间表。想看某部电影先去查查，以免白跑一趟电影院。</font></p>
<p><br>
<font size="5"><font face="Verdana">-6-&nbsp;</font>
<strong>豆瓣网</strong></font>：<a href=
"http://www.douban.com">www.douban.com</a></p>
<p><a href="http://www.douban.com"><img alt="" src=
"http://t.douban.com/pics/logosmall.gif"></a><br>
<font size=
"4">豆瓣网的风格绝对是中国互联网的一朵奇葩，跟中国绝大多数的网站不一样，豆瓣的界面非常干净，干净得你让你刚上豆瓣网的时候觉得是那么的静悄悄。但是豆瓣网绝对是中国高素质网民的集中营，里面的讨论大多是非常深刻的。可以说豆瓣网给中国网民完全不同的感受。</font></p>
<p><br>
<font size="5"><font face="Verdana">-7-&nbsp;</font>
<strong>鲜果网</strong></font>：<a href=
"http://www.xianguo.com">www.xianguo.com</a></p>
<p><a href="http://www.xianguo.com"><img alt="" src=
"http://xianguo.com/about/img/xianguo88.gif"></a><br>
<font size=
"4">如果你不知道rss订阅，那么你一定不太了解网络，在鲜果网是可以看到无数的优秀的blog推荐到这里。你只要轻松点击阅读而不必登陆每个blog，就可以看到他们发布的最新blog。另外鲜果热文频道中的文章质量也是非常之高的。</font></p>
<p><font size="5"><font face="Verdana">-8-&nbsp;</font>
<strong>豆丁网</strong></font>：<a href=
"http://www.docin.com">www.docin.com</a></p>
<p><a href="http://www.docin.com"><img alt="" src=
"http://img.wanlibo.com/images_cn/newDocin/doc_logo.gif?rand=1228"></a><br>

<font size="4">在豆丁网上你可以下载无数的免费电子文档，甚至还可以在线阅读。<br>
在这里我要补充一个跟豆丁网类似的新浪网ishare，相信没有朋友不知道新浪网，但是大多人应该不知道新浪网有个ishare频道。</font><a href="http://ishare.sina.com.cn"><font size="4">http://ishare.sina.com.cn</font></a><font size="4">，里面的资料也是非常之多，一定有你需要的资料。</font></p>
<p><br>
<font size="5"><font face="Verdana">-9-&nbsp;</font>
<strong>游戏基地中文站</strong></font>：<a href=
"http://www.gamespot.com.cn/">http://www.gamespot.com.cn/</a></p>
<p><img width="204" height="60" alt="" src=
"http://bbs.gamespot.com.cn/templates/Orange/images/logo.gif"><br>
<font size=
"4">GameSpot.com是全球著名的专业游戏资讯站点。在游戏行业，还没有任何一家综合性专业游戏网站能与之匹敌。在这里，用户可以直接看到数以万计的游戏评论、预览、下载、视频、攻略、密技和新闻。1999和2000年“最佳娱乐站点”奖项的获得者，GameSpot.com已经成为全球各地数百万核心和普通玩家获取信息的第一选择。</font></p>
<p><br>
<font size="5"><font face="Verdana">-10-&nbsp;</font>
<strong>芥子园</strong></font>：<a href=
"http://www.jieziyuan.com">www.jieziyuan.com</a></p>
<p><a href="http://www.jieziyuan.com"><img style=
"width: 237px; height: 45px" width="270" height="37" alt="" src=
"http://www.jieziyuan.com/images/index_logo.gif"></a><br>
<font size=
"4">中华传统书画艺术的交流地，80后的我们不能丢了华夏文明中如此精华的部分。不懂也要了解一下，没准哪天那就开始搞收藏了，得关心一下现在书画界谁火，范曾？陈丹青？林岫
？</font></p>
<p><br>
<font size="5"><font face=
"Verdana">-1-</font><strong>分邮网</strong></font>： <a href=
"http://www.ifenyou.com">www.ifenyou.com</a></p>
<p><a href="http://ifenyou.com"><img alt="" src=
"http://ifenyou.com/images/logo.jpg"></a><br>
<font size=
"4">网上购物已不稀奇，先有淘宝，后有百度有啊，而分邮网这是国内首家提出分邮模式的新型购物网站，比如一次在线订购一年的袜子（12双），可以免费、分批、定时邮寄，包装很精致，作为礼物为别人购买时还可以留言，手写留言卡挺有意思。只是目前产品有些少。</font></p>

]]></description><guid>http://www.i170.com/Article/119812</guid><trackback:ping>http://www.i170.com/Article/119812/trackback</trackback:ping><comments>http://www.i170.com/Article/119812#comment</comments><wfw:commentRss>http://www.i170.com/Article/119812/commentRss</wfw:commentRss></item> <item><link>http://www.i170.com/Article/119733</link><title><![CDATA[最是人间留不住]]></title><author>heaven</author><category>思想</category><pubDate>Thu, 03 Dec 2009 19:19:23  +0800</pubDate><description><![CDATA[<p>&nbsp;</p>
<p><font size="3">有这样一句话，生活，就是生下来，活下去</font></p>
<p><font size="3">生活就是这样吗？</font></p>
<p><font size="3">我身体里曾经的那些能力，正在以难以估量的速度飞逝</font></p>
<p><font size="3">想想曾经的过往，曾经的人，曾经的事</font></p>
<p><font size="3">一切都那么模糊</font></p>
<p>&nbsp;</p>
<p><font size="3">我想生活本不改这样</font></p>
<p><font size="3">生活需要激情</font></p>
<p><font size="3">生活需要改变</font></p>
<p>&nbsp;</p>
<p><font color="#000080">&nbsp;</font></p>
<p><font color="#000080" size="3">不是世间的事在等着缘分</font></p>
<p><font color="#000080" size="3">而是缘分在等着我们</font></p>
<p><font color="#000080" size="3">我想，这风，这雨</font></p>
<p><font color="#000080" size="3">是缘分早就搭好了的戏台</font></p>
<p><font color="#000080" size="3">我无意中来到了戏台后</font></p>
<p><font color="#000080" size="3">捡起了仙女华丽的戏服</font></p>
<p><font color="#000080" size="3">情不自禁</font></p>
<p><font color="#000080" size="3">扮演了这段传奇</font></p>
<p>&nbsp;</p>
<p><font color="#000000" size=
"3">我像是活在好几百年前，或好几百年后，而不属于这个时代。</font></p>
<p>&nbsp;</p>
<p><font color="#000000" size="3">一直以来</font></p>
<p><font color="#000000" size="3">我只是拼命的想要贴近而非迎合这个时代</font></p>
<p><font color="#000000" size="3">用众人的眼</font></p>
<p><font color="#000000" size="3">尺丈量我心、我身</font></p>
<p><font color="#000000" size="3">无论我挣扎还是牺牲</font></p>
<p><font color="#000000" size="3">无论抗争还是妥协</font></p>
<p><font color="#000000" size="3">不过是因为</font></p>
<p><font color="#000000" size=
"3">我的潜意识里，愿此生能遭遇一段传奇，而拒绝平庸</font></p>
<p><font color="#000000" size="3">累不累？</font></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><font color="#000000" size="3"><font color="#000000" size=
"3">在家的人</font></font></p>
<p><font color="#000000" size="3"><font color="#000000" size=
"3">断肠是为了对天涯的相思</font></font></p>
<p><font color="#000000" size="3">在天涯的人</font></p>
<p><font color="#000000" size="3">断肠却是为了对家的相思</font></p>
<p><font color="#000000" size="3">有的人心怀家乡又何必远走，为何不留下</font></p>
<p><font color="#000000" size="3">有的人胸有天涯又何必羁留，倒不妨离去</font></p>
<p>&nbsp;</p>
<p><font color="#000000" size="3">我们所爱，不过是人间最不能留住的东西</font></p>
<p><font color="#000000" size=
"3">我所爱的，不过是心底里对那过往的真实回忆或未来的虚幻传奇的一段最直白的向往</font></p>
<p><font color="#000000" size="3"><img width="480" height="320"
alt="" src=
"http://www.i170.com/Attach/A2B69851-1EF3-42A7-AD52-B32ADB7325E1"></font></p>

]]></description><guid>http://www.i170.com/Article/119733</guid><trackback:ping>http://www.i170.com/Article/119733/trackback</trackback:ping><comments>http://www.i170.com/Article/119733#comment</comments><wfw:commentRss>http://www.i170.com/Article/119733/commentRss</wfw:commentRss></item> <item><link>http://www.i170.com/Article/106446</link><title><![CDATA[网页设计师、FLASH动画设计师-[over]]]></title><author>heaven</author><category>设计</category><pubDate>Tue, 27 May 2008 16:11:32  +0800</pubDate><description><![CDATA[<p>over</p>
<p><br>
　　　　<br>
<br>
　　　　<br>
　　</p>

]]></description><guid>http://www.i170.com/Article/106446</guid><trackback:ping>http://www.i170.com/Article/106446/trackback</trackback:ping><comments>http://www.i170.com/Article/106446#comment</comments><wfw:commentRss>http://www.i170.com/Article/106446/commentRss</wfw:commentRss></item> <item><link>http://www.i170.com/Article/105930</link><title><![CDATA[抗震救灾-众志成城！]]></title><author>heaven</author><category>汶川,地震</category><pubDate>Sat, 17 May 2008 19:24:34  +0800</pubDate><description><![CDATA[<p><img width="560" height="420" align="left" src=
"http://www.i170.com/Attach/902CF331-8FA4-4638-BA99-A4DBD9DB3A90"
alt=""></p>
<p>&nbsp;</p>
<p>&nbsp;</p>

]]></description><guid>http://www.i170.com/Article/105930</guid><trackback:ping>http://www.i170.com/Article/105930/trackback</trackback:ping><comments>http://www.i170.com/Article/105930#comment</comments><wfw:commentRss>http://www.i170.com/Article/105930/commentRss</wfw:commentRss></item> <item><link>http://www.i170.com/Article/103626</link><title><![CDATA[prototype.js　1.4版开发者手册(强烈推荐)]]></title><author>heaven</author><category>设计</category><pubDate>Sun, 06 Apr 2008 01:15:31  +0800</pubDate><description><![CDATA[<h1 class="postTitle"><a name="AjaxHolder_ctl01_TitleUrl" target=
"_blank" id="AjaxHolder_ctl01_TitleUrl" class="postTitle2" href=
"http://www.cnblogs.com/thinhunan/archive/2006/04/01/DeveloperNotesForPrototype.html">
prototype.js　1.4版开发者手册(强烈推荐)</a></h1>
<p>function sp(link){var em = 'serg' + 'io_p' + 'ereira@';em +=
'ms' + 'n.c' + 'om';document.write('<a target="_blank" href=
"http://blog.xiaonei.com/pages/editor/mai%27%20+%20%27lto:%27%20+%20em%20+%20%27">'
+ link + '</a>');}function navigateToVersion(list){var url =
list.options[list.selectedIndex].value;if(url !=
'')document.location = url;}</p>
<h1><a target="_blank" href=
"http://prototype.conio.net/">prototype.js</a>开发者手册</h1>
<h2>对应版本1.4.0</h2>
<div>original article by sp('Sergio Pereira') <a target="_blank"
href="mailto:sergio_pereira@msn.com">Sergio Pereira</a></div>
<div>
<p>last update: March 30th 2006</p>
<p>中文版：<a target="_blank" href=
"mailto:thin37421@126.com">THIN</a></p>
<p>最后更新：2006-3-31</p>
</div>
<p><span style=
"font-size: 10pt; color: rgb(0, 128, 0);">看到一个很好的东西在国内没有被很多人使用起来，实在是不爽，所以花了很大功夫把这个手册翻译成中文，<span style="color: red;">由于这篇文章很长，所以，翻译的工作量很大而且有些地方英文版也没有说清楚，虽得查看源代码，好在不是坚持做完了，大家鼓励下啊！^</span>o^<br>

prototype.js是一个非常优雅的基础类库，对做了大量的扩展，而且很好的支持Ajax，国外有多个基于此类库实现的效果库，也做得很棒。<br>

prototype.js不仅是一个有很大实用价值的js库，而且有很高的学习价值，所以我强烈建议B/S开发人员和对JS开发感兴趣的朋友去浏览一些它的源代码，其中有很多的珠玑，你绝对会觉得读它的源代码是一种享受，当然要读得懂，呵呵。<br>

网上也有人写过1.3版的源码解读，大家可以找来看看。不过1.4版做了很大的扩充，所以希望有朋友写出1.4版的源码解读。</span></p>
<p class="partingline">[separator]</p>
<br>
<span style="color: red;">几点说明：</span>
<ul>
<li><span style=
"color: red;">有朋友说prototye已经有人翻译过了，呵呵，是对的，说明你以前关注过它，不过原来翻译的是1.3版的文档，1.4版有很多重要的扩展，而且pre_1.5版现在也出来，不地改动不大。</span></li>
<li>
有朋友说有用多没有翻译地来的，拜托，只是各个方法的参数说明没有翻，这些说明很多都是什么类型，还是有空再弄吧，先将就一下，对不起了，翻到这个程序已经很累人了，毕竟有这么长。</li>
<li>做成CHM文档的事也只能Sorry，因为我没有这个时间，也没有做过CHM，我觉得排版一下看网页和CHM是差不多吧。</li>
</ul>
<p>&nbsp;</p>
<h3>prototype.js是什么?</h3>
<p>万一你没有使用过大名鼎鼎的prototype.js，那么让我来告诉你，<a target="_blank" href=
"http://prototype.conio.net/">prototype.js</a>是由<a target="_blank"
href="http://www.conio.net/">Sam
Stephenson</a>写的一个类库。这个构思奇妙，而且兼容标准的类库，能帮助你轻松建立有高度互动的web2.0特性的富客户端页面。</p>
<p>
如果你最近尝试使用它，你大概了解到文档并不是作者的一个强项。和在我以前使用这个类库的不少开发者一样，一开始，我不得不一头扎进阅读prototype.js的源代码和实验它的功能中。我想，在我学习完它之后，把我学到的东西分享给大家是件不错的事。</p>
<p>
同时，在本文中，我也将提供一个关于这个类库提供的objects,classes,functions,extensions这对东东的<a target="_blank"
href=
"http://thinhunan.cnblogs.com/archive/2006/04/01/DeveloperNotesForPrototype.html#Reference">非官方参考</a></p>
<p>在阅读这个文档时，熟悉Ruby的开发者将会注意到Ruby的一些内建类和本类库扩展实现之间非常相似。</p>
<h3>相关文章</h3>
<p>Advanced <a target="_blank" href=
"http://www.sergiopereira.com/articles/advjs.html">guide</a>.</p>
<h3>一些实用的函数</h3>
<p>这个类库带有很多预定义的对象和实用函数，这些东东的目的显然是把你从一些重复的打字中解放出来 。</p>
<h4>使用$()方法</h4>
<p>$() 方法是在DOM中使用过于频繁的 document.getElementById()
方法的一个便利的简写，就像这个DOM方法一样，这个方法返回参数传入的id的那个元素。</p>
<p>比起DOM中的方法，这个更胜一筹。你可以传入多个id作为参数然后 $() 返回一个带有所有要求的元素的一个 Array
对象。</p>
<pre class="programlisting">
&lt;HTML&gt;<br>
<br>
<br>
<br>
&lt;HEAD&gt;<br>
<br>
<br>
<br>
&lt;TITLE&gt; Test Page &lt;/TITLE&gt;<br>
<br>
<br>
<br>
&lt;script src="prototype-1.3.1.js"&gt;&lt;/script&gt;<br>
<br>
<br>
<br>
&lt;script&gt;<br>
<br>
<br>
<br>
function test1()<br>
<br>
<br>
<br>
{<br>
<br>
<br>
<br>
var d = $('myDiv');<br>
<br>
<br>
<br>
alert(d.innerHTML);<br>
<br>
<br>
<br>
}<br>
<br>
<br>
<br>
function test2()<br>
<br>
<br>
<br>
{<br>
<br>
<br>
<br>
var divs = $('myDiv','myOtherDiv');<br>
<br>
<br>
<br>
for(i=0; i&lt;divs.length; i++)<br>
<br>
<br>
<br>
{<br>
<br>
<br>
<br>
alert(divs[i].innerHTML);<br>
<br>
<br>
<br>
}<br>
<br>
<br>
<br>
}<br>
<br>
<br>
<br>
&lt;/script&gt;<br>
<br>
<br>
<br>
&lt;/HEAD&gt;<br>
<br>
<br>
<br>
&lt;BODY&gt;<br>
<br>
<br>
<br>
&lt;div id="myDiv"&gt;<br>
<br>
<br>
<br>
&lt;p&gt;This is a paragraph&lt;/p&gt;<br>
<br>
<br>
<br>
&lt;/div&gt;<br>
<br>
<br>
<br>
&lt;div id="myOtherDiv"&gt;<br>
<br>
<br>
<br>
&lt;p&gt;This is another paragraph&lt;/p&gt;<br>
<br>
<br>
<br>
&lt;/div&gt;<br>
<br>
<br>
<br>
&lt;input type="button" value=Test1 onclick="test1();"&gt;&lt;br&gt;<br>
<br>
<br>
<br>
&lt;input type="button" value=Test2 onclick="test2();"&gt;&lt;br&gt;<br>
<br>
<br>
<br>
&lt;/BODY&gt;<br>
<br>
<br>
<br>
&lt;/HTML&gt;
</pre>
<p>
另外一个好处是，这个函数能传入用string表示的对象ID，也可以传入对象本身，这样，在建立其它能传两种类型的参数的函数时非常有用。</p>
<h4>使用$F()函数</h4>
<p>$F()函数是另一个大收欢迎的“快捷键”，它能用于返回任何表单输入控件的值，比如text box,drop-down
list。这个方法也能用元素id或元素本身做为参数。</p>
<pre class="code">
&lt;script&gt;<br>
<br>
<br>
<br>
function test3()<br>
<br>
<br>
<br>
{<br>
<br>
<br>
<br>
alert(  <span class="highlite">$F('userName')</span>  );<br>
<br>
<br>
<br>
}<br>
<br>
<br>
<br>
&lt;/script&gt;<br>
<br>
<br>
<br>
&lt;input type="text" id="userName" value="Joe Doe"&gt;&lt;br&gt;<br>
<br>
<br>
<br>
&lt;input type="button" value=Test3 onclick="test3();"&gt;&lt;br&gt;
</pre>
<h4>使用<span class="functionName">$A()</span>函数</h4>
<p>$A()函数能把它接收到的单个的参数转换成一个Array对象。</p>
<p>
这个方法，结合被本类库扩展了的Array类，能方便的把任何的可枚举列表转换成或拷贝到一个Array对象。一个推荐的用法就是把DOM
Node Lists转换成一个普通的Array对象，从而更有效率的进行遍历，请看下面的例子。</p>
<pre class="code">
&lt;script&gt;<br>
<br>
<br>
<br>
function showOptions(){<br>
<br>
<br>
<br>
var someNodeList = $('lstEmployees').getElementsByTagName('option');<br>
<br>
<br>
<br>
var nodes = $A(someNodeList);<br>
<br>
<br>
<br>
nodes.each(function(node){<br>
<br>
<br>
<br>
alert(node.nodeName + ': ' + node.innerHTML);<br>
<br>
<br>
<br>
});<br>
<br>
<br>
<br>
}<br>
<br>
<br>
<br>
&lt;/script&gt;<br>
<br>
<br>
<br>
&lt;select id="lstEmployees" size="10" &gt;<br>
<br>
<br>
<br>
&lt;option value="5"&gt;Buchanan, Steven&lt;/option&gt;<br>
<br>
<br>
<br>
&lt;option value="8"&gt;Callahan, Laura&lt;/option&gt;<br>
<br>
<br>
<br>
&lt;option value="1"&gt;Davolio, Nancy&lt;/option&gt;<br>
<br>
<br>
<br>
&lt;/select&gt;<br>
<br>
<br>
<br>
&lt;input type="button" value="Show the options" onclick="showOptions();" &gt;
</pre>
<p>&nbsp;</p>
<h4>使用&nbsp;<span class="functionName">$H()</span> 函数</h4>
<p>$H()函数把一些对象转换成一个可枚举的和联合数组类似的Hash对象。</p>
<pre class="code">
&lt;script&gt;<br>
<br>
<br>
<br>
function testHash()<br>
<br>
<br>
<br>
{<br>
<br>
<br>
<br>
//let's create the object<br>
<br>
<br>
<br>
var a = {<br>
<br>
<br>
<br>
first: 10,<br>
<br>
<br>
<br>
second: 20,<br>
<br>
<br>
<br>
third: 30<br>
<br>
<br>
<br>
};<br>
<br>
<br>
<br>
//now transform it into a hash<br>
<br>
<br>
<br>
var h = <span class="highlite">$H(a)</span>;<br>
<br>
<br>
<br>
alert(h.toQueryString()); //displays: first=10&amp;second=20&amp;third=30<br>
<br>
<br>
<br>
}<br>
<br>
<br>
<br>
&lt;/script&gt;
</pre>
<p>&nbsp;</p>
<h4>使用<span class="functionName">$R()</span>函数</h4>
<p>$R()是new ObjectRange(lowBound,upperBound,excludeBounds)的缩写。</p>
<p>跳到<a target="_blank" href=
"#Reference.ObjectRange">ObjectRange</a> 类文档可以看到一个关于此类的完整描述.
此时，我们还是先来看一个例子以展示这个缩写能代替哪些方法吧。其它相关的一些知识可以在<a target="_blank" href=
"#Reference.Enumerable">Enumerable</a> 对象文档中找到。</p>
<pre class="code">
&lt;script&gt;<br>
<br>
<br>
<br>
function demoDollar_R(){<br>
<br>
<br>
<br>
var range = <span class="highlite">$R(10, 20, false)</span>;<br>
<br>
<br>
<br>
range.each(function(value, index){<br>
<br>
<br>
<br>
alert(value);<br>
<br>
<br>
<br>
});<br>
<br>
<br>
<br>
}<br>
<br>
<br>
<br>
&lt;/script&gt;<br>
<br>
<br>
<br>
&lt;input type="button" value="Sample Count" onclick="demoDollar_R();" &gt;
</pre>
<p>&nbsp;</p>
<h4>使用<span class="functionName">Try.these()</span>函数</h4>
<p><tt class="literal">Try.these()</tt>
方法使得实现当你想调用不同的方法直到其中的一个成功正常的这种需求变得非常容易，
他把一系列的方法作为参数并且按顺序的一个一个的执行这些方法直到其中的一个成功执行，返回成功执行的那个方法的返回值。</p>
<p>在下面的例子中， <tt class=
"literal">xmlNode.text</tt>在一些浏览器中好用，但是<tt class=
"literal">xmlNode.textContent</tt>在另一些浏览器中正常工作。 使用<tt class=
"literal">Try.these()</tt>方法我们可以得到正常工作的那个方法的返回值。</p>
<p>&lt;script&gt;<br>
function getXmlNodeValue(xmlNode){<br>
&nbsp;&nbsp;&nbsp; return Try.these(<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; function() {return
xmlNode.text;},<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; function() {return
xmlNode.textContent;)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; );<br>
}<br>
&lt;/script&gt;<br>
&nbsp;&nbsp;</p>
<p>&nbsp;</p>
<h3><span class="objectClass">Ajax</span>对象</h3>
<p>
上面提到的共通方法非常好，但是面对它吧，它们不是最高级的那类东西。它们是吗？你很可能自己编写了这些甚至在你的脚本里面有类似功能的方法。但是这些方法只是冰山一角。</p>
<p>
我很肯定你对prototype.js感兴趣的原因很可能是由于它的AJAX能力。所以让我们解释当你需要完成AJAX逻辑的时候，这个包如何让它更容易。</p>
<p><tt class="literal">Ajax</tt>
对象是一个预定义对象，由这个包创建，为了封装和简化编写<a href="http://en.wikipedia.org/wiki/Ajax_%28programming%29"
target="_blank">AJAX</a> 功能涉及的狡猾的代码。
这个对象包含一系列的封装AJAX逻辑的类。我们来看看其中几个类。</p>
<h4>使用<span class="objectClass">Ajax.Request</span>类</h4>
<p>如果你不使用任何的帮助程序包，你很可能编写了整个大量的代码来创建<tt class=
"literal">XMLHttpRequest</tt>对象并且异步的跟踪它的进程， 然后解析出响应
然后处理它。当你不需要支持多于一种类型的浏览器时你会感到非常的幸运。</p>
<p>为了支持 AJAX 功能。这个包定义了 <tt class="literal">Ajax.Request</tt> 类。</p>
<p>假如你有一个应用程序可以通过url <span class=
"emphasis"><em>http://yoursever/app/get_sales?empID=1234&amp;year=1998</em></span>与服务器通信。它返回下面这样的XML
响应。</p>
<pre class="code">
&lt;?xml version="1.0" encoding="utf-8" ?&gt;<br>
<br>
<br>
<br>
&lt;ajax-response&gt;<br>
<br>
<br>
<br>
&lt;response type="object" id="productDetails"&gt;<br>
<br>
<br>
<br>
&lt;monthly-sales&gt;<br>
<br>
<br>
<br>
&lt;employee-sales&gt;<br>
<br>
<br>
<br>
&lt;employee-id&gt;1234&lt;/employee-id&gt;<br>
<br>
<br>
<br>
&lt;year-month&gt;1998-01&lt;/year-month&gt;<br>
<br>
<br>
<br>
&lt;sales&gt;$8,115.36&lt;/sales&gt;<br>
<br>
<br>
<br>
&lt;/employee-sales&gt;<br>
<br>
<br>
<br>
&lt;employee-sales&gt;<br>
<br>
<br>
<br>
&lt;employee-id&gt;1234&lt;/employee-id&gt;<br>
<br>
<br>
<br>
&lt;year-month&gt;1998-02&lt;/year-month&gt;<br>
<br>
<br>
<br>
&lt;sales&gt;$11,147.51&lt;/sales&gt;<br>
<br>
<br>
<br>
&lt;/employee-sales&gt;<br>
<br>
<br>
<br>
&lt;/monthly-sales&gt;<br>
<br>
<br>
<br>
&lt;/response&gt;<br>
<br>
<br>
<br>
&lt;/ajax-response&gt;
</pre>
<p>用 <tt class=
"literal">Ajax.Request</tt>对象和服务器通信并且得到这段XML是非常简单的。下面的例子演示了它是如何完成的。</p>
<pre class="code">
&lt;script&gt;<br>
<br>
<br>
<br>
function searchSales()<br>
<br>
<br>
<br>
{<br>
<br>
<br>
<br>
var empID = $F('lstEmployees');<br>
<br>
<br>
<br>
var y = $F('lstYears');<br>
<br>
<br>
<br>
var url = 'http://yoursever/app/get_sales';<br>
<br>
<br>
<br>
var pars = 'empID=' + empID + '&amp;year=' + y;
</pre>
<div class="highlite"><br>
var myAjax = new Ajax.Request(<br>
url,<br>
{<br>
method: 'get',<br>
parameters: pars,<br>
onComplete: showResponse<br>
});</div>
<pre>
<br>
<br>
}<br>
<br>
function showResponse(originalRequest)<br>
<br>
{<br>
<br>
//put returned XML in the textarea<br>
<br>
$('result').value = originalRequest.responseText;<br>
<br>
}<br>
<br>
&lt;/script&gt;<br>
<br>
&lt;select id="lstEmployees" size="10" onchange="searchSales()"&gt;<br>
<br>
&lt;option value="5"&gt;Buchanan, Steven&lt;/option&gt;<br>
<br>
&lt;option value="8"&gt;Callahan, Laura&lt;/option&gt;<br>
<br>
&lt;option value="1"&gt;Davolio, Nancy&lt;/option&gt;<br>
<br>
&lt;/select&gt;<br>
<br>
&lt;select id="lstYears" size="3" onchange="searchSales()"&gt;<br>
<br>
&lt;option selected="selected" value="1996"&gt;1996&lt;/option&gt;<br>
<br>
&lt;option value="1997"&gt;1997&lt;/option&gt;<br>
<br>
&lt;option value="1998"&gt;1998&lt;/option&gt;<br>
<br>
&lt;/select&gt;<br>
<br>
&lt;br&gt;&lt;textarea id=result cols=60 rows=10 &gt;&lt;/textarea&gt;
</pre>
<p>你注意到传入 <tt class="literal">Ajax.Request</tt>构造方法的第二个对象了吗？
参数<tt class="literal">{method: 'get', parameters: pars, onComplete:
showResponse}</tt> 表示一个匿名对象的真实写法。他表示你传入的这个对象有一个名为 <tt class=
"literal">method</tt> 值为 <tt class="literal">'get'的属性，</tt>另一个属性名为
<tt class="literal">parameters</tt> 包含HTTP请求的查询字符串，和一个<tt class=
"literal">onComplete</tt> 属性/方法包含函数<tt class=
"literal">showResponse</tt>。</p>
<p>还有一些其它的属性可以在这个对象里面定义和设置，如 <tt class=
"literal">asynchronous</tt>，可以为<tt class="literal">true</tt> 或
<tt class="literal">false</tt> 来决定AJAX对服务器的调用是否是异步的（默认值是 <tt class=
"literal">true</tt>）。</p>
<p>这个参数定义AJAX调用的选项。在我们的例子中，在第一个参数通过HTTP GET命令请求那个url，传入了变量
<tt class="literal">pars</tt>包含的查询字符串， <tt class=
"literal">Ajax.Request</tt> 对象在它完成接收响应的时候将调用<tt class=
"literal">showResponse</tt> 方法。</p>
<p>也许你知道， <tt class=
"literal">XMLHttpRequest</tt>在HTTP请求期间将报告进度情况。这个进度被描述为四个不同阶段：<span class="emphasis"><em>Loading</em></span>,
<span class="emphasis"><em>Loaded</em></span>, <span class=
"emphasis"><em>Interactive</em></span>, 或 <span class=
"emphasis"><em>Complete</em></span>。你可以使 <tt class=
"literal">Ajax.Request</tt> 对象在任何阶段调用自定义方法 ，<span class=
"emphasis"><em>Complete</em></span>
是最常用的一个。想调用自定义的方法只需要简单的在请求的选项参数中的名为 <tt class=
"literal">onXXXXX</tt> 属性/方法中提供自定义的方法对象。 就像我们例子中的 <tt class=
"literal">onComplete</tt> 。你传入的方法将会被用一个参数调用，这个参数是 <tt class=
"literal">XMLHttpRequest</tt>
对象自己。你将会用这个对象去得到返回的数据并且或许检查包含有在这次调用中的HTTP结果代码的 <tt class=
"literal">status</tt> 属性。</p>
<p>还有另外两个有用的选项用来处理结果。我们可以在<tt class="literal">onSuccess</tt>
选项处传入一个方法，当AJAX无误的执行完后调用， 相反的，也可以在<tt class=
"literal">onFailure</tt>选项处传入一个方法，当服务器端出现错误时调用。正如<tt class=
"literal">onXXXXX</tt> 选项传入的方法一样，这两个在被调用的时候也传入一个带有AJAX请求的<tt class=
"literal">XMLHttpRequest对象。</tt></p>
<p>我们的例子没有用任何有趣的方式处理这个 XML响应，
我们只是把这段XML放进了一个文本域里面。对这个响应的一个典型的应用很可能就是找到其中的想要的信息，然后更新页面中的某些元素，
或者甚至可能做某些XSLT转换而在页面中产生一些HTML。</p>
<p>
&nbsp;在1.4.0版本中，一种新的事件回传外理被引入。如果你有一段代码总是要为一个特殊的事件执行，而不管是哪个AJAX调用引发它，那么你可以使用新的<a target="_blank"
href="#Ajax.Responders">Ajax.Responders</a>对象。</p>
<p>
假设你想要在一个AJAX调用正在运行时，显示一些提示效果，像一个不断转动的图标之类的，你可以使用两个全局事件Handler来做到，其中一个在第一个调用开始时显示图标，另一个在最后一个调用完成时隐藏图标。看下面的例子。</p>
<pre class="code">
&lt;script&gt;<br>
<br>
<br>
<br>
var myGlobalHandlers = {<br>
<br>
<br>
<br>
onCreate: function(){<br>
<br>
<br>
<br>
Element.show('systemWorking');<br>
<br>
<br>
<br>
},<br>
<br>
<br>
<br>
onComplete: function() {<br>
<br>
<br>
<br>
if(Ajax.activeRequestCount == 0){<br>
<br>
<br>
<br>
Element.hide('systemWorking');<br>
<br>
<br>
<br>
}<br>
<br>
<br>
<br>
}<br>
<br>
<br>
<br>
};<br>
<br>
<br>
<br>
<span class=
"highlite">Ajax.Responders.register(myGlobalHandlers);</span><br>
<br>
&lt;/script&gt;<br>
<br>
&lt;div id='systemWorking'&gt;&lt;img src='spinner.gif'&gt;Loading...&lt;/div&gt;
</pre>
<p>更完全的解释，请参照 <a target="_blank" title="4.14.&nbsp;Ajax.Request 类"
href="#ajax_request_reference">Ajax.Request 参考</a> 和 <a target=
"_blank" title="4.15.&nbsp;options 参数对象" href=
"#options_reference">Ajax选项参考</a>。</p>
<p>&nbsp;</p>
<h4>使用<span class="objectClass">Ajax.Updater</span>类</h4>
<p>如果你的服务器的另一端返回的信息已经是HTML了，那么使用这个程序包中 <tt class=
"literal">Ajax.Updater</tt>
类将使你的生活变得更加得容易。用它你只需提供哪一个元素需要被AJAX请求返回的HTML填充就可以了，例子比我写说明的更清楚。&nbsp;</p>
<pre class="code">
&lt;script&gt;<br>
<br>
<br>
<br>
function getHTML()<br>
<br>
<br>
<br>
{<br>
<br>
<br>
<br>
var url = 'http://yourserver/app/getSomeHTML';<br>
<br>
<br>
<br>
var pars = 'someParameter=ABC';
</pre>
<div class="highlite"><br>
var myAjax = new Ajax.Updater(<br>
'placeholder',<br>
url,<br>
{<br>
method: 'get',<br>
parameters: pars<br>
});</div>
<pre>
<br>
<br>
}<br>
<br>
&lt;/script&gt;<br>
<br>
&lt;input type=button value=GetHtml onclick="getHTML()"&gt;<br>
<br>
&lt;div id="placeholder"&gt;&lt;/div&gt;
</pre>
<p>你可以看到，这段代码比前面的例子更加简洁，不包括 <tt class="literal">onComplete</tt>
方法，但是在构造方法中传入了一个元素id。 我们来稍稍修改一下代码来描述如何在客户端处理服务器段错误成为可能。</p>
<p>我们将加入更多的选项， 指定处理错误的一个方法。这个是用 <tt class="literal">onFailure</tt>
选项来完成的。我们也指定了一个 <tt class="literal">placeholder</tt>
只有在成功请求之后才会被填充。为了完成这个目的我们修改了第一个参数从一个简单的元素id到一个带有两个属性的对象， <tt class=
"literal">success</tt> (一切OK的时候被用到) 和 <tt class=
"literal">failure</tt> (有地方出问题的时候被用到) 在下面的例子中没有用到<tt class=
"literal">failure</tt>属性，而仅仅在 <tt class="literal">onFailure</tt>
处使用了 <tt class="literal">reportError</tt> 方法。</p>
<p>&lt;script&gt;<br>
function getHTML()<br>
{<br>
var url = 'http://yourserver/app/getSomeHTML';<br>
var pars = 'someParameter=ABC';</p>
<pre class="code">
 
</pre>
<div class="highlite"><br>
var myAjax = new Ajax.Updater(<br>
{success: 'placeholder'},<br>
url,<br>
{<br>
method: 'get',<br>
parameters: pars,<br>
onFailure: reportError<br>
});</div>
<pre>
<br>
<br>
}<br>
<br>
function reportError(request)<br>
<br>
{<br>
<br>
alert('Sorry. There was an error.');<br>
<br>
}<br>
<br>
&lt;/script&gt;<br>
<br>
&lt;input type=button value=GetHtml onclick="getHTML()"&gt;<br>
<br>
&lt;div id="placeholder"&gt;&lt;/div&gt;
</pre>
<p>如果你的服务器逻辑是连同HTML 标记返回 代码， <tt class=
"literal">Ajax.Updater</tt>对象可以执行那段代码。为了使这个对象对待响应为，你只需在最后参数的对象构造方法中简单加入<tt class="literal">evalScripts:
true</tt>属性。但是值得提醒的是，像这个选项名evalScripts暗示的，这些脚本会被执行，但是它们不会被加入到Page的脚本中。“有什么区别？”，可能你会这样问。我们假定请求地址返回的东东像这样：</p>
<pre class="code">
&lt;script language="" type="text/"&gt;<br>
<br>
<br>
<br>
function sayHi(){<br>
<br>
<br>
<br>
alert('Hi');<br>
<br>
<br>
<br>
}<br>
<br>
<br>
<br>
&lt;/script&gt;<br>
<br>
<br>
<br>
&lt;input type=button value="Click Me" onclick="sayHi()"&gt;
</pre>
<p>
如果你以前这样尝试过，你知道这些脚本不会如你所期望的那样工作，原因是这段脚本会被执行，但像上面这样的脚本执行并不会创建一个名叫sayHi的函数，它什么也不做。如果要创建一个函数，我们应当把代码改成下面这个样子：</p>
<pre class="code">
&lt;script language="" type="text/"&gt;
</pre>
<div class="highlite">sayHi = function(){<br>
<br>
alert('Hi');<br>
<br>
};</div>
<pre>
<br>
<br>
&lt;/script&gt;<br>
<br>
&lt;input type=button value="Click Me" onclick="sayHi()"&gt;
</pre>
<p>
为什么我们在上面的代码中不使用var关键字来声明这个变量呢（指sayHi&nbsp;），因为那样做创建出来的函数将只是当前脚本块的一个局部变量（至少在IE中是这样）。不写var关键字，创建出来的对象的作用域就是我们所期望的window。</p>
<p>更多相关知识，请参看&nbsp; <a target="_blank" href=
"http://thinhunan.cnblogs.com/archive/2006/04/01/DeveloperNotesForPrototype.html#Ajax.Updater">
Ajax.Updater reference</a> 和<a target="_blank" href=
"http://thinhunan.cnblogs.com/archive/2006/04/01/DeveloperNotesForPrototype.html#Ajax.options">options
reference</a>.</p>
<h3>枚举... 噢!噢!</h3>
<p>
你知道，我们都是这样来做循环的，建一个Array，用elements组织它们，再建一个循环结构（例如for,foreach,while)通过index数字来访问每一个element，再用这个element做一些动作。</p>
<p>
当你想到这时，你会发现几乎每次写循环代码你都会迟早用到一个Array。那么，如果Array对象能够提供更多的功能给它们的迭代器使用不是很爽吗？确实是这样，事实上很多的编程语言都在它们的Array或其它类似的结构中（如Collections,Lists）提供一些这样的功能。</p>
<p>现在好了，prototype.js了给我们一个 <a target="_blank" class="code" href=
"http://thinhunan.cnblogs.com/archive/2006/04/01/DeveloperNotesForPrototype.html#Reference.Enumerable">
Enumerable</a>对象，它实现了很多和可迭代数据进行交互的窍门。和原有的JS对象相比prototype.js更上一层楼，它对<a target="_blank"
href=
"http://thinhunan.cnblogs.com/archive/2006/04/01/DeveloperNotesForPrototype.html#Reference.Array"><span class="code">Array</span>
类s</a>扩展了所有枚举要用的函数。</p>
<h4>循环, Ruby样式的</h4>
<p>在标准的中，如果你想把一个array中的所有elements显示出来，你可以像下面代码这样写得很好：</p>
<pre class="code">
&lt;script&gt;<br>
<br>
<br>
<br>
function showList(){<br>
<br>
<br>
<br>
var simpsons = ['Homer', 'Marge', 'Lisa', 'Bart', 'Meg'];
</pre>
<div class="highlite">for(i=0;i&lt;simpsons.length;i++){<br>
<br>
alert(simpsons[i]);<br>
<br>
}</div>
<pre>
<br>
<br>
}<br>
<br>
&lt;/script&gt;<br>
<br>
&lt;input type="button" value="Show List" onclick="showList();" &gt;
</pre>
<p>使用我们新的最好的朋友，prototype.js，我们可以把它生写成这样</p>
<pre class="code">
function showList(){<br>
<br>
<br>
<br>
var simpsons = ['Homer', 'Marge', 'Lisa', 'Bart', 'Meg'];
</pre>
<div class="highlite">simpsons.each( function(familyMember){<br>
<br>
alert(familyMember);<br>
<br>
});</div>
<pre>
<br>
<br>
}
</pre>
<p>
你可能会想“非常奇怪的方式...相对旧的，这种语法太怪异了”。哦，在上面的例子，确实什么也没有，在这个简单得要死例子中，也没有改变太多啊，尽管如此，请继续读下去。</p>
<p>在继续下面内容之前，你注意到那个被做为一个参数传递给each函数的函数？我们把它理解成迭代器函数。</p>
<h4>Your arrays on steroids</h4>
<p>
就如我们上面提到的，把你的Array中的elements当成相同的类型使用相同的属性和函数是很通用(Common,不知该翻译成通用还是庸俗)的。让我们看看怎么样利用我们新的马力强劲的Arrays的迭代功能吧。</p>
<p>依照标准找到一个element。</p>
<pre class="code">
&lt;script&gt;<br>
<br>
<br>
<br>
function findEmployeeById(emp_id){<br>
<br>
<br>
<br>
var listBox = $('lstEmployees')<br>
<br>
<br>
<br>
var options = listBox.getElementsByTagName('option');<br>
<br>
<br>
<br>
options = $A(options);<br>
<br>
<br>
<br>
var opt = options.<span class=
"highlite">find</span>( <strong>function(employee){<br>
<br>
<br>
<br>
return <span class=
"highlite">(employee.value == emp_id)</span>;<br>
<br>
<br>
<br>
}</strong>);<br>
<br>
<br>
<br>
alert(opt.innerHTML); //displays the employee name<br>
<br>
<br>
<br>
}<br>
<br>
<br>
<br>
&lt;/script&gt;<br>
<br>
<br>
<br>
&lt;select id="lstEmployees" size="10" &gt;<br>
<br>
<br>
<br>
&lt;option value="5"&gt;Buchanan, Steven&lt;/option&gt;<br>
<br>
<br>
<br>
&lt;option value="8"&gt;Callahan, Laura&lt;/option&gt;<br>
<br>
<br>
<br>
&lt;option value="1"&gt;Davolio, Nancy&lt;/option&gt;<br>
<br>
<br>
<br>
&lt;/select&gt;<br>
<br>
<br>
<br>
&lt;input type="button" value="Find Laura" onclick="findEmployeeById(8);" &gt;
</pre>
<p>现在我们再下一城，看看如何过滤一个Array中的元素，从每个元素中得到我们想要的成员。</p>
<pre class="code">
&lt;script&gt;<br>
<br>
<br>
<br>
function showLocalLinks(paragraph){<br>
<br>
<br>
<br>
paragraph = $(paragraph);<br>
<br>
<br>
<br>
var links = $A(paragraph.getElementsByTagName('a'));<br>
<br>
<br>
<br>
//find links that do not start with 'http'<br>
<br>
<br>
<br>
var localLinks = links.<span class=
"highlite">findAll</span>( function(link){<br>
<br>
<br>
<br>
var start = link.href.substring(0,4);<br>
<br>
<br>
<br>
return start !='http';<br>
<br>
<br>
<br>
});<br>
<br>
<br>
<br>
//now the link texts<br>
<br>
<br>
<br>
var texts = localLinks.<span class=
"highlite">pluck('innerHTML')</span>;<br>
<br>
<br>
<br>
//get them in a single string<br>
<br>
<br>
<br>
var result = texts.<span class="highlite">inspect()</span>;<br>
<br>
<br>
<br>
alert(result);<br>
<br>
<br>
<br>
}<br>
<br>
<br>
<br>
&lt;/script&gt;<br>
<br>
<br>
<br>
&lt;p id="someText"&gt;<br>
<br>
<br>
<br>
This &lt;a href="http://othersite.com/page.html"&gt;text&lt;/a&gt; has<br>
<br>
<br>
<br>
a &lt;a href="#localAnchor"&gt;lot&lt;/a&gt; of<br>
<br>
<br>
<br>
&lt;a href="#otherAnchor"&gt;links&lt;/a&gt;. Some are<br>
<br>
<br>
<br>
&lt;a href="http://wherever.com/page.html"&gt;external&lt;/a&gt;<br>
<br>
<br>
<br>
and some are &lt;a href="#someAnchor"&gt;local&lt;/a&gt;<br>
<br>
<br>
<br>
&lt;/p&gt;<br>
<br>
<br>
<br>
&lt;input type=button value="Find Local Links" onclick="showLocalLinks('someText')"&gt;
</pre>
<p>上面的代码仅仅是一点小小的实践让人爱上这种语法。请参看 <a target="_blank" class="code"
href="http://thinhunan.cnblogs.com/archive/2006/04/01/DeveloperNotesForPrototype.html#Reference.Enumerable">
Enumerable</a>和<a target="_blank" class="code" href=
"http://thinhunan.cnblogs.com/archive/2006/04/01/DeveloperNotesForPrototype.html#Reference.Array">Array</a>的所有函数</p>
<p>&nbsp;</p>
<hr>
<p><a id="Reference" target="_blank" name=
"Reference"></a>&nbsp;</p>
<h3>prototype.js参考</h3>
<p>&nbsp;</p>
<h4>类扩展</h4>
<p>prototype.js 类库实现强大功能的一种途径是扩展已有的 类。</p>
<p>&nbsp;</p>
<h4>对 <span class="code">Object的扩展</span></h4>
<table cellspacing="0" border="1" class="reference" id="Table1">
<tbody>
<tr>
<th>Method</th>
<th>Kind</th>
<th>Arguments</th>
<th>Description</th>
</tr>
<tr>
<td>extend(destination, source)</td>
<td><nobr>static</nobr></td>
<td>destination: any object, source: any object</td>
<td class="refDescription">提供一种通过拷贝所有源以象属性和函数到目标函数实现继承的方法</td>
</tr>
<tr>
<td>inspect(targetObj)</td>
<td>static</td>
<td>targetObj: any object</td>
<td class="refDescription">
返回可读性好关于目标对象的文字描述，如果对象实例没有定义一个inspect函数，默认返回toString函数的值。</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<h4><span class="code">对Number的扩展</span></h4>
<table cellspacing="0" border="1" class="reference" id="Table2">
<tbody>
<tr>
<th>Method</th>
<th><nobr>Kind</nobr></th>
<th>Arguments</th>
<th>Description</th>
</tr>
<tr>
<td>toColorPart()</td>
<td><nobr>instance</nobr></td>
<td>(none)</td>
<td class="refDescription">
返回数字的十六进制表示形式。在把一个RGB数字转换成HTML表现形式时很有用。</td>
</tr>
<tr>
<td>succ()</td>
<td>instance</td>
<td>(none)</td>
<td class="refDescription">&nbsp;返回下一个数字，这个方法可用于迭代调用场景中。</td>
</tr>
<tr>
<td>times(iterator)</td>
<td>instance</td>
<td>iterator: a function object conforming to Function(index)</td>
<td class="refDescription">Calls the <span class=
"code">iterator</span> function repeatedly passing the current
index in the <span class="code">index</span> argument.
反复调用iterator函数并传递当前index到iterator的index参数。</td>
</tr>
</tbody>
</table>
<p>下面的例子用提示框显示0-9。</p>
<pre class="code">
&lt;script&gt;<br>
<br>
<br>
<br>
function demoTimes(){<br>
<br>
<br>
<br>
var n = 10;<br>
<br>
<br>
<br>
n.times(function(index){<br>
<br>
<br>
<br>
alert(index);<br>
<br>
<br>
<br>
});<br>
<br>
<br>
<br>
/***************************<br>
<br>
<br>
<br>
* you could have also used:<br>
<br>
<br>
<br>
*           (10).times( .... );<br>
<br>
<br>
<br>
***************************/<br>
<br>
<br>
<br>
}<br>
<br>
<br>
<br>
&lt;/script&gt;<br>
<br>
<br>
<br>
&lt;input type=button value="Test Number.times()" onclick="demoTimes()"&gt;
</pre>
<p>&nbsp;</p>
<h4>对 <span class="code">Function扩展</span></h4>
<table cellspacing="0" border="1" class="reference" id="Table3">
<tbody>
<tr>
<th>Method</th>
<th>Kind</th>
<th>Arguments</th>
<th>Description</th>
</tr>
<tr>
<td>bind(object)</td>
<td><nobr>instance</nobr></td>
<td>object: the object that owns the method</td>
<td class="refDescription">
返回function的实例，这个实例和源function的结构一样，但是它已被绑定给了参数中提供的object，就是说，function中的this指针指向参数object。</td>
</tr>
<tr>
<td>bindAsEventListener(object)</td>
<td>instance</td>
<td>object: the object that owns the method</td>
<td class="refDescription">用法和上面的bind一样，区别在于用来绑定事件。</td>
</tr>
</tbody>
</table>
<p>让我们看看如何运用这些扩展。</p>
<pre class="code">
&lt;input type=checkbox id=myChk value=1&gt; Test?<br>
<br>
<br>
<br>
&lt;script&gt;<br>
<br>
<br>
<br>
//declaring the class<br>
<br>
<br>
<br>
var CheckboxWatcher = Class.create();<br>
<br>
<br>
<br>
//defining the rest of the class implementation<br>
<br>
<br>
<br>
CheckboxWatcher.prototype = {<br>
<br>
<br>
<br>
initialize: function(chkBox, message) {<br>
<br>
<br>
<br>
this.chkBox = $(chkBox);<br>
<br>
<br>
<br>
this.message = message;<br>
<br>
<br>
<br>
//assigning our method to the event
</pre>
<div class="highlite"><br>
this.chkBox.onclick =<br>
this.showMessage.bindAsEventListener(this);</div>
<pre>
<br>
<br>
},<br>
<br>
showMessage: function(evt) {<br>
<br>
alert(this.message + ' (' + evt.type + ')');<br>
<br>
}<br>
<br>
};<br>
<br>
var watcher = new CheckboxWatcher('myChk', 'Changed');<br>
<br>
&lt;/script&gt;
</pre>
<p>&nbsp;</p>
<h4><span class="code">对String的扩展</span></h4>
<table cellspacing="0" border="1" class="reference" id="Table4">
<tbody>
<tr>
<th>Method</th>
<th>Kind</th>
<th>Arguments</th>
<th>Description</th>
</tr>
<tr>
<td>stripTags()</td>
<td>instance</td>
<td>(none)</td>
<td class="refDescription">返回一个把所有的HTML或XML标记都移除的字符串。</td>
</tr>
<tr>
<td>stripScripts()</td>
<td><nobr>instance</nobr></td>
<td>(none)</td>
<td class="refDescription">返回一个把所有的script都移除的字符串。</td>
</tr>
<tr>
<td>escapeHTML()</td>
<td>instance</td>
<td>(none)</td>
<td class="refDescription">返回一个把所有的HTML标记合适的转义掉的字符串。</td>
</tr>
<tr>
<td>unescapeHTML()</td>
<td>instance</td>
<td>(none)</td>
<td class="refDescription"><span class=
"code">escapeHTML()的反转。</span></td>
</tr>
<tr>
<td>extractScripts()</td>
<td>instance</td>
<td>(none)</td>
<td class="refDescription">
返回一个包含在string中找到的所有&lt;script&gt;的数组。</td>
</tr>
<tr>
<td>evalScripts()</td>
<td>instance</td>
<td>(none)</td>
<td class="refDescription">执行在string中找到的所有&lt;script&gt;。</td>
</tr>
<tr>
<td>toQueryParams()</td>
<td>instance</td>
<td>(none)</td>
<td class="refDescription">把querystring分割才一个用parameter
name做index的联合Array，更像一个hash。</td>
</tr>
<tr>
<td>parseQuery()</td>
<td>instance</td>
<td>(none)</td>
<td class="refDescription"><span class=
"code">和toQueryParams()一样</span>.</td>
</tr>
<tr>
<td>toArray()</td>
<td>instance</td>
<td>(none)</td>
<td class="refDescription">把字符串转换成字符数组.</td>
</tr>
<tr>
<td>camelize()</td>
<td>instance</td>
<td>(none)</td>
<td class="refDescription">
转换一个以连字符连接的字符串成一个骆驼法样式的字符串。比如，这个函数在写代码时，把它做为一个样式工具使用是很有用的。</td>
</tr>
</tbody>
</table>
<p><a id="Reference.Array" target="_blank" name=
"Reference.Array"></a></p>
<h4>对&nbsp; <span class="code">Array</span>的扩展</h4>
<p>
因为array扩展于enumerable，所以所有enumberable对象的函数，array都是可以使用的，除此之外，下面的这些也是已经实现了的。</p>
<table cellspacing="0" border="1" class="reference" id="Table5">
<tbody>
<tr>
<th>Method</th>
<th>Kind</th>
<th>Arguments</th>
<th>Description</th>
</tr>
<tr>
<td>clear()</td>
<td><nobr>instance</nobr></td>
<td>(none)</td>
<td class="refDescription">清空。</td>
</tr>
<tr>
<td>compact()</td>
<td>instance</td>
<td>(none)</td>
<td class="refDescription">
返回一个不包括源array中null或undefined元素的array,此方法不改变源array。</td>
</tr>
<tr>
<td>first()</td>
<td>instance</td>
<td>(none)</td>
<td class="refDescription">返回array的第一个对象。</td>
</tr>
<tr>
<td>flatten()</td>
<td>instance</td>
<td>(none)</td>
<td class="refDescription">
通过递归组合array每个元素的子元素（如果该元素也是array)来返回一个“扁平的”一维的array。</td>
</tr>
<tr>
<td>indexOf(value)</td>
<td>instance</td>
<td>value: what you are looking for.</td>
<td class="refDescription">
返回给出数字位置（从０算起）的元素，如果在该位置没有找到对象，返回-1。</td>
</tr>
<tr>
<td>inspect()</td>
<td>instance</td>
<td>(none)</td>
<td class="refDescription">
重载inspect(),返回更好格式的反映Array每个元素的字符描述。</td>
</tr>
<tr>
<td>last()</td>
<td>instance</td>
<td>(none)</td>
<td class="refDescription">返回最后一个元素。</td>
</tr>
<tr>
<td>reverse([applyToSelf])</td>
<td>instance</td>
<td>applyToSelf: indicates if the array itself should also be
reversed.</td>
<td class="refDescription">
&nbsp;反转Array中元素的顺序，如果没有给出参数，或参数为true，则源Array中元素的顺序也反转，否则源Array保持不变。</td>
</tr>
<tr>
<td>shift()</td>
<td>instance</td>
<td>(none)</td>
<td class="refDescription">
返回Array的第一个元素并从Array中移除它，Array的Length-1。</td>
</tr>
<tr>
<td>without(value1 [, value2 [, .. valueN]])</td>
<td>instance</td>
<td>value1 ... valueN: values to be excluded if present in the
array.</td>
<td class="refDescription">
&nbsp;返回一个把参数列表中包含的元素从源Array中排除的Array。</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<h4><span class="code">document</span> DOM扩展</h4>
<table cellspacing="0" border="1" class="reference" id="Table6">
<tbody>
<tr>
<th>Method</th>
<th>Kind</th>
<th>Arguments</th>
<th>Description</th>
</tr>
<tr>
<td>getElementsByClassName(className [, parentElement])</td>
<td><nobr>instance</nobr></td>
<td>className: name of a CSS class associated with the elements,
parentElement: object or id of the element that contains the
elements being retrieved.</td>
<td class="refDescription">返回所有CSS
className属性等于className参数的元素，如果没有给出parentElement,那么将搜索document
body。(此处使用document.body我觉得不如使用document,因为有时有的页面没有body)&nbsp;</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<h4><span class="code">Event</span>扩展</h4>
<table cellspacing="0" border="1" class="reference" id="Table7">
<tbody>
<tr>
<th>Property</th>
<th>Type</th>
<th>Description</th>
</tr>
<tr>
<td>KEY_BACKSPACE</td>
<td><nobr>Number</nobr>Number</td>
<td class="refDescription">8: Constant. Code for the Backspace
key.</td>
</tr>
<tr>
<td>KEY_TAB</td>
<td>Number</td>
<td class="refDescription">9: Constant. Code for the Tab key.</td>
</tr>
<tr>
<td>KEY_RETURN</td>
<td>Number</td>
<td class="refDescription">13: Constant. Code for the Return
key.</td>
</tr>
<tr>
<td>KEY_ESC</td>
<td>Number</td>
<td class="refDescription">27: Constant. Code for the Esc key.</td>
</tr>
<tr>
<td>KEY_LEFT</td>
<td>Number</td>
<td class="refDescription">37: Constant. Code for the Left arrow
key.</td>
</tr>
<tr>
<td>KEY_UP</td>
<td>Number</td>
<td class="refDescription">38: Constant. Code for the Up arrow
key.</td>
</tr>
<tr>
<td>KEY_RIGHT</td>
<td>Number</td>
<td class="refDescription">39: Constant. Code for the Right arrow
key.</td>
</tr>
<tr>
<td>KEY_DOWN</td>
<td>Number</td>
<td class="refDescription">40: Constant. Code for the Down arrow
key.</td>
</tr>
<tr>
<td>KEY_DELETE</td>
<td>Number</td>
<td class="refDescription">46: Constant. Code for the Delete
key.</td>
</tr>
<tr class="privateMember">
<td>observers:</td>
<td>Array</td>
<td class="refDescription">List of cached observers. Part of the
internal implementation details of the object.</td>
</tr>
</tbody>
</table>
<table cellspacing="0" border="1" class="reference" id="Table8">
<tbody>
<tr>
<th>Method</th>
<th>Kind</th>
<th>Arguments</th>
<th>Description</th>
</tr>
<tr>
<td>element(event)</td>
<td>static</td>
<td>event: an Event object</td>
<td class="refDescription">返回事件源对象。</td>
</tr>
<tr>
<td>isLeftClick(event)</td>
<td>static</td>
<td>event: an Event object</td>
<td class="refDescription">如果点击了鼠标左键，返回true.</td>
</tr>
<tr>
<td>pointerX(event)</td>
<td>static</td>
<td>event: an Event object</td>
<td class="refDescription">返回鼠标的X座标。</td>
</tr>
<tr>
<td>pointerY(event)</td>
<td>static</td>
<td>event: an Event object</td>
<td class="refDescription">返回鼠标的Y座标。</td>
</tr>
<tr>
<td>stop(event)</td>
<td>static</td>
<td>event: an Event object</td>
<td class="refDescription">使用此函数来中断事件的默认行为并阻止传递（冒泡)。</td>
</tr>
<tr>
<td>findElement(event, tagName)</td>
<td>static</td>
<td>event: an Event object, tagName: name of the desired tag.</td>
<td class="refDescription">
从事件源对象开始向上搜索DOM树，直到找到第一个符合tagName的元素</td>
</tr>
<tr>
<td>observe(element, name, observer, useCapture)</td>
<td>static</td>
<td>element: object or id, name: event name (like 'click', 'load',
etc), observer: function to handle the event, useCapture: if
<span class="code">true</span>, handles the event in the
<em>capture</em> phase and if <span class="code">false</span> in
the <em>bubbling</em> phase.</td>
<td class="refDescription">为对象的某个事件增加一个处理函数。</td>
</tr>
<tr>
<td>stopObserving(element, name, observer, useCapture)</td>
<td>static</td>
<td>element: object or id, name: event name (like 'click'),
observer: function that is handling the event, useCapture: if true
handles the event in the <em>capture</em> phase and if false in the
<em>bubbling</em> phase.</td>
<td class="refDescription">和上面的函数相反。</td>
</tr>
<tr class="privateMember">
<td>_observeAndCache(element, name, observer, useCapture)</td>
<td>static</td>
<td>&nbsp;</td>
<td class="refDescription">私有函数，别管它。</td>
</tr>
<tr class="privateMember">
<td>unloadCache()</td>
<td><nobr>static</nobr></td>
<td>(none)</td>
<td class="refDescription">私有函数，别管它。从内存中清除所有的observers缓存。</td>
</tr>
</tbody>
</table>
<p>下面代码演示如何给window添加一个load事件处理函数。</p>
<pre class="code">
&lt;script&gt;<br>
<br>
<br>
<br>
<span class=
"highlite">Event.observe(window, 'load', showMessage, false);</span><br>
<br>
function showMessage() {<br>
<br>
alert('Page loaded.');<br>
<br>
}<br>
<br>
&lt;/script&gt;
</pre>
<p>&nbsp;</p>
<h4>在prototype.js中定义新的对象和类</h4>
<p>另一个这个程序包帮助你的地方就是提供许多既支持面向对象设计理念又有共通功能的许多对象。</p>
<p>&nbsp;</p>
<h4>The <span class="objectClass">PeriodicalExecuter</span>
object</h4>
<p>这个对象提供一定间隔时间上重复调用一个方法的逻辑。</p>
<table cellspacing="0" border="1" class="reference" id="Table9">
<tbody>
<tr>
<th>Method</th>
<th>Kind</th>
<th>Arguments</th>
<th>Description</th>
</tr>
<tr>
<td>[ctor](callback, interval)</td>
<td><nobr>constructor</nobr></td>
<td>callback: a parameterless function, interval: number of
seconds</td>
<td class="refDescription">创建这个对象的实例将会重复调用给定的方法。</td>
</tr>
</tbody>
</table>
<table cellspacing="0" border="1" class="reference" id="Table10">
<tbody>
<tr>
<th>Property</th>
<th>Type</th>
<th>Description</th>
</tr>
<tr>
<td>callback</td>
<td><nobr>Function()</nobr></td>
<td class="refDescription">被调用的方法，该方法不能传入参数。</td>
</tr>
<tr>
<td>frequency</td>
<td>Number</td>
<td class="refDescription">以秒为单位的间隔。</td>
</tr>
<tr class="privateMember">
<td>currentlyExecuting</td>
<td>Boolean</td>
<td class="refDescription">表示这个方法是否正在执行。</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<h4>The <span class="objectClass">Prototype</span> object</h4>
<p><tt class="literal">Prototype</tt> 没有太重要的作用，只是声明了该程序包的版本 。</p>
<table cellspacing="0" border="1" class="reference" id="Table11">
<tbody>
<tr>
<th>Property</th>
<th>Type</th>
<th>Description</th>
</tr>
<tr>
<td>Version</td>
<td>String</td>
<td class="refDescription"><font face="宋体">版本。</font></td>
</tr>
<tr>
<td>emptyFunction</td>
<td><nobr>Function()</nobr></td>
<td class="refDescription">空函数。</td>
</tr>
<tr>
<td>K</td>
<td>Function(obj)</td>
<td class="refDescription">一个仅仅回传参数的函数。</td>
</tr>
<tr class="privateMember">
<td>ScriptFragment</td>
<td>String</td>
<td class="refDescription">识别script的正则式。</td>
</tr>
</tbody>
</table>
<p><a id="Reference.Enumerable" target="_blank" name=
"Reference.Enumerable"></a></p>
<h4>The <span class="objectClass">Enumerable</span> object</h4>
<p>Enumberable对象能够已更优雅的方式实现对列表样式的结构进行枚举。</p>
<p>很多其它的对象通过扩展自Enumberable对象来得到这些有用的接口。</p>
<table cellspacing="0" border="1" class="reference" id="Table12">
<tbody>
<tr>
<th>Method</th>
<th>Kind</th>
<th>Arguments</th>
<th>Description</th>
</tr>
<tr>
<td>each(iterator)</td>
<td><nobr>instance</nobr></td>
<td>iterator: a function object conforming to Function(value,
index)</td>
<td class="refDescription">
把每个element做为第一个参数，element的index作为第一个参数调用iterator函数。</td>
</tr>
<tr>
<td>all([iterator])</td>
<td>instance</td>
<td>iterator: a function object conforming to Function(value,
index)</td>
<td class="refDescription">
这个函数会用给出的iterator测试整个集合，如果集合中任一元素在iterator函数测试中返回false或null，那么这个函数返回false,否则返回true。如果没有给出iterator，那么就会测试所有的元素是不是不等于false和null。你可以简单的把它看成是“检测每个元素都为非空非负”。</td>
</tr>
<tr>
<td>any(iterator)</td>
<td>instance</td>
<td>iterator: a function object conforming to Function(value,
index), optional.</td>
<td class="refDescription">
这个函数会用给出的iterator测试整个集合，如果集合中任一元素在iterator函数测试中返回true，那么这个函数返回true,否则返回false。如果没有给出iterator，那么就会测试所有的元素是不是有一个不等于false和null。你可以简单的把它看成是“检测元素中是不是有非空非负的”。</td>
</tr>
<tr>
<td>collect(iterator)</td>
<td>instance</td>
<td>iterator: a function object conforming to Function(value,
index)</td>
<td class="refDescription">
&nbsp;调用iterator函数根据集合中每个元素返回一个结果，然后按照原来集合中的顺序，返回一个Array。</td>
</tr>
<tr>
<td>detect(iterator)</td>
<td>instance</td>
<td>iterator: a function object conforming to Function(value,
index)</td>
<td class="refDescription">
集合中每个元素调用一次Iterator，返回第一个使Iterator返回True的元素，如果最终都没有为true的调用，那么返回null。</td>
</tr>
<tr>
<td>entries()</td>
<td>instance</td>
<td>(none)</td>
<td class="refDescription"><span class=
"code">等于toArray()</span>.</td>
</tr>
<tr>
<td>find(iterator)</td>
<td>instance</td>
<td>iterator: a function object conforming to Function(value,
index)</td>
<td class="refDescription">等于 <span class=
"code">detect()</span>.</td>
</tr>
<tr>
<td>findAll(iterator)</td>
<td>instance</td>
<td>iterator: a function object conforming to Function(value,
index)</td>
<td class="refDescription">
集合中每个元素调用Iterator，返回一个由所有调用Iterator返回结果等于true的元素组成的数组。和reject()相反。</td>
</tr>
<tr>
<td>grep(pattern [, iterator])</td>
<td>instance</td>
<td>pattern: a RegExp object used to match the elements, iterator:
a function object conforming to Function(value, index)</td>
<td class="refDescription">
&nbsp;用pattern参数正则表达式测试集合中的每个元素，返回一个包含所有匹配正则式的元素的Array，如果给出了Iterator，那个每个结果还要经过一下Iterator处理。</td>
</tr>
<tr>
<td>include(obj)</td>
<td>instance</td>
<td>obj: any object</td>
<td class="refDescription">&nbsp;判断集合中包不包含指定对象。</td>
</tr>
<tr>
<td>inject(initialValue, iterator)</td>
<td>instance</td>
<td>initialValue: any object to be used as the initial value,
iterator: a function object conforming to Function(accumulator,
value, index)</td>
<td class="refDescription">
&nbsp;用Iterator联接所有集合中的元素。Iterator在被调用时把上一次迭代的结果做为第一个参数传给accumulator。第一次迭代时，accurmelator等于initialValue,最后返回accumulator的值。</td>
</tr>
<tr>
<td>invoke(methodName [, arg1 [, arg2 [...]]])</td>
<td>instance</td>
<td>methodName: name of the method that will be called in each
element, arg1..argN: arguments that will be passed in the method
invocation.</td>
<td class="refDescription">
集合中的每个元素调用指定的函数（查看源代码可以发现指定函数被调用时，this指针被传成当前元素），并传入给出的参数，返回调用结果组成的Array。</td>
</tr>
<tr>
<td>map(iterator)</td>
<td>instance</td>
<td>iterator: a function object conforming to Function(value,
index)</td>
<td class="refDescription"><span class=
"code">同collect()</span>.</td>
</tr>
<tr>
<td>max([iterator])</td>
<td>instance</td>
<td>iterator: a function object conforming to Function(value,
index)</td>
<td class="refDescription">
返回集合中元素的最大值，或调用Iterator后返回值的最大值(如果给出了Iterator的话)。</td>
</tr>
<tr>
<td>member(obj)</td>
<td>instance</td>
<td>obj: any object</td>
<td class="refDescription">同 <span class=
"code">include()</span>.</td>
</tr>
<tr>
<td>min([iterator])</td>
<td>instance</td>
<td>iterator: a function object conforming to Function(value,
index)</td>
<td class="refDescription">返回最小值，参见max()。</td>
</tr>
<tr>
<td>partition([iterator])</td>
<td>instance</td>
<td>iterator: a function object conforming to Function(value,
index)</td>
<td class="refDescription">
返回一个包含两个Array的Array，第一个Array包含所有调用Iterator返回True的元素，第二个Array包含剩下的元素。如果Iterator没有给出，那么就根据元素本身判断。</td>
</tr>
<tr>
<td>pluck(propertyName)</td>
<td>instance</td>
<td>propertyName name of the property that will be read from each
element. This can also contain the index of the element</td>
<td class="refDescription">返回每个元素的指定属性名的属性的值组成的Array。</td>
</tr>
<tr>
<td>reject(iterator)</td>
<td>instance</td>
<td>iterator: a function object conforming to Function(value,
index)</td>
<td class="refDescription">和&nbsp; <span class=
"code">findAll()相反（返回所有等于false的元素）</span>.</td>
</tr>
<tr>
<td>select(iterator)</td>
<td>instance</td>
<td>iterator: a function object conforming to Function(value,
index)</td>
<td class="refDescription">同 <span class=
"code">findAll()</span>.</td>
</tr>
<tr>
<td>sortBy(iterator)</td>
<td>instance</td>
<td>iterator: a function object conforming to Function(value,
index)</td>
<td class="refDescription">根据每个元素调用Iterator返回的值进行排序返回一个Array。</td>
</tr>
<tr>
<td>toArray()</td>
<td>instance</td>
<td>(none)</td>
<td class="refDescription">返回由集合所有元素组成的一个Array。</td>
</tr>
<tr>
<td>zip(collection1[, collection2 [, ... collectionN
[,transform]]])</td>
<td>instance</td>
<td>collection1 .. collectionN: enumerations that will be merged,
transform: a function object conforming to Function(value,
index)</td>
<td class="refDescription">
合并每个给出的集合到当前集合。合并操作返回一个新的array，这个array的元素个数和原集合的元素个数一样，这个array的每个元素又是一个子array,它合并了所有集合中相同index的元素。如果transform函数被指定，那么array的每个元素还会调用transform函数先做处理。举个例子:
[1,2,3].zip([4,5,6], [7,8,9]).inspect()&nbsp;返回 "[
[1,4,7],[2,5,8],[3,6,9] ]"</td>
</tr>
</tbody>
</table>
<p><a id="Reference.Hash" target="_blank" name=
"Reference.Hash"></a></p>
<h4>The <span class="objectClass">Hash</span> object</h4>
<p>&nbsp;Hash对象实现一种Hash结构，也就是一个Key:Value对的集合。</p>
<p>
Hash中的每个Item是一个有两个元素的array，前一个是Key，后一个是Value，每个Item也有两个不需加以说明的属性,key和value。</p>
<table cellspacing="0" border="1" class="reference" id="Table13">
<tbody>
<tr>
<th>Method</th>
<th>Kind</th>
<th>Arguments</th>
<th>Description</th>
</tr>
<tr>
<td>keys()</td>
<td>instance</td>
<td>(none)</td>
<td class="refDescription">返回所有Item的key的集合的一个array。</td>
</tr>
<tr>
<td>values()</td>
<td><nobr>instance</nobr></td>
<td>(none)</td>
<td class="refDescription">返回所有Item的value的集合的一个array。</td>
</tr>
<tr>
<td>merge(otherHash)</td>
<td>instance</td>
<td>otherHash: Hash object</td>
<td class="refDescription">合并给出的Hash，返回一个新Hash。</td>
</tr>
<tr>
<td>toQueryString()</td>
<td>instance</td>
<td>(none)</td>
<td class="refDescription">以QueryString那样的样式返回hash中所有的item，例如：
<span class=
"code">'key1=value1&amp;key2=value2&amp;key3=value3'</span></td>
</tr>
<tr>
<td>inspect()</td>
<td>instance</td>
<td>(none)</td>
<td class="refDescription">用一种合适的方法显示hash中的key:value对。</td>
</tr>
</tbody>
</table>
<p><a id="Reference.ObjectRange" target="_blank" name=
"Reference.ObjectRange"></a></p>
<h4>The <span class="objectClass">ObjectRange</span> class</h4>
<p><em>继承自&nbsp; <a target="_blank" class="code" href=
"http://thinhunan.cnblogs.com/archive/2006/04/01/DeveloperNotesForPrototype.html#Reference.Enumerable">
Enumerable</a></em></p>
<p>用上、下边界描述一个对象区域。</p>
<table cellspacing="0" border="1" class="reference" id="Table14">
<tbody>
<tr>
<th>Property</th>
<th>Type</th>
<th>Kind</th>
<th>Description</th>
</tr>
<tr>
<td>start</td>
<td>(any)</td>
<td><nobr>instance</nobr></td>
<td class="refDescription">
<p>range的下边界</p>
</td>
</tr>
<tr>
<td>end</td>
<td>(any)</td>
<td>instance</td>
<td class="refDescription">range的上边界</td>
</tr>
<tr>
<td>exclusive</td>
<td>Boolean</td>
<td>instance</td>
<td class="refDescription">决定边界自身是不是range的一部分。</td>
</tr>
</tbody>
</table>
<table cellspacing="0" border="1" class="reference" id="Table15">
<tbody>
<tr>
<th>Method</th>
<th>Kind</th>
<th>Arguments</th>
<th>Description</th>
</tr>
<tr>
<td>[ctor](start, end, exclusive)</td>
<td>constructor</td>
<td>start: the lower bound, end: the upper bound, exclusive:
include the bounds in the range?</td>
<td class="refDescription">
创建一个range对象，从start生成到end,这里要注意的是，start和end必段类型一致，而且该类型要有succ()方法。</td>
</tr>
<tr>
<td>include(searchedValue)</td>
<td><nobr>instance</nobr></td>
<td>searchedValue: value that we are looking for</td>
<td class="refDescription">检查一个value是不是在range中。</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<h4>The <span class="objectClass">Class</span> object</h4>
<p>在这个程序包中 <tt class="literal">Class</tt> 对象在声明其他的类时候被用到
。用这个对象声明类使得新类支持 <tt class="literal">initialize()</tt>
方法，他起构造方法的作用。</p>
<p>看下面的例子</p>
<p>//declaring the class<br>
<span class="highlite">var MySampleClass =
Class.create();</span><br>
<br>
//defining the rest of the class implmentation<br>
MySampleClass.prototype = {<br>
<br>
&nbsp;&nbsp; initialize: function(message) {<br>
this.message = message;<br>
&nbsp;&nbsp; },<br>
<br>
&nbsp;&nbsp; showMessage: function(ajaxResponse) {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert(this.message);<br>
&nbsp;&nbsp; }<br>
};<br>
<br>
//now, let's instantiate and use one object<br>
var myTalker = new MySampleClass('hi there.');<br>
myTalker.showMessage(); //displays alert</p>
<table cellspacing="0" border="1" class="reference" id="Table16">
<tbody>
<tr>
<th>Method</th>
<th>Kind</th>
<th>Arguments</th>
<th>Description</th>
</tr>
<tr>
<td>create(*)</td>
<td><nobr>instance</nobr></td>
<td>(any)</td>
<td class="refDescription">定义新类的构造方法。</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<h4>The <span class="objectClass">Ajax</span> object</h4>
<p>这个对象被用作其他提供AJAX功能的类的根对象。&nbsp;</p>
<table cellspacing="0" border="1" class="reference" id="Table17">
<tbody>
<tr>
<th>Property</th>
<th>Type</th>
<th>Kind</th>
<th>Description</th>
</tr>
<tr>
<td>activeRequestCount</td>
<td>Number</td>
<td>instance</td>
<td class="refDescription">正在处理中的Ajax请求的个数。</td>
</tr>
</tbody>
</table>
<table cellspacing="0" border="1" class="reference" id="Table18">
<tbody>
<tr>
<th>Method</th>
<th>Kind</th>
<th>Arguments</th>
<th>Description</th>
</tr>
<tr>
<td>getTransport()</td>
<td><nobr>instance</nobr></td>
<td>(none)</td>
<td class="refDescription">返回新的<tt class=
"literal">XMLHttpRequest</tt> 对象。</td>
</tr>
</tbody>
</table>
<p><a id="Ajax.Responders" target="_blank" name=
"Ajax.Responders"></a></p>
<h4>The <span class="objectClass">Ajax.Responders</span>
object</h4>
<p><em>继承自 <a target="_blank" class="code" href=
"#Reference.Enumerable">Enumerable</a></em></p>
<p>
这个对象维持一个在Ajax相关事件发生时将被调用的对象的列表。比如，你要设置一个全局钩子来处理Ajax操作异常，那么你就可以使用这个对象。</p>
<table cellspacing="0" border="1" class="reference" id="Table19">
<tbody>
<tr>
<th>Property</th>
<th>Type</th>
<th>Kind</th>
<th>Description</th>
</tr>
<tr>
<td>responders</td>
<td>Array</td>
<td><nobr>instance</nobr></td>
<td class="refDescription">被注册到Ajax事件通知的对象列表。</td>
</tr>
</tbody>
</table>
<table cellspacing="0" border="1" class="reference" id="Table20">
<tbody>
<tr>
<th>Method</th>
<th>Kind</th>
<th>Arguments</th>
<th>Description</th>
</tr>
<tr>
<td>register(responderToAdd)</td>
<td>instance</td>
<td>responderToAdd: object with methods that will be called.</td>
<td class="refDescription">
被传入参数的对象应包含名如Ajax事件的系列方法（如onCreate,onComplete,onException）。通讯事件引发所有被注册的对象的合适名称的函数被调用。</td>
</tr>
<tr>
<td>unregister(responderToRemove)</td>
<td>instance</td>
<td>responderToRemove: object to be removed from the list.</td>
<td class="refDescription">&nbsp;从列表中移除。</td>
</tr>
<tr>
<td>dispatch(callback, request, transport, json)</td>
<td>instance</td>
<td>callback: name of the AJAX event being reported, request: the
Ajax.Request object responsible for the event, transport: the
XMLHttpRequest object that carried (or is carrying) the AJAX call,
json: the X-JSON header of the response (if present)</td>
<td class="refDescription">
遍历被注册的对象列表，找出有由callback参数决定的那个函数的对象。然后向这些函数传递其它的三个参数，如果Ajax响应中包含一个含有JSON内容的X-JSON
HTTP头，那么它会被热行并传入json参数。如果事件是onException,那么transport参数会被异常代替，json不会传递。</td>
</tr>
</tbody>
</table>
<p><a id="Ajax.Base" target="_blank" name="Ajax.Base"></a></p>
<h4>The <span class="objectClass">Ajax.Base</span> class</h4>
<p>这个类是其他在Ajax对象中定义的类的基类。</p>
<table cellspacing="0" border="1" class="reference" id="Table21">
<tbody>
<tr>
<th>Method</th>
<th>Kind</th>
<th>Arguments</th>
<th>Description</th>
</tr>
<tr>
<td>setOptions(options)</td>
<td><nobr>instance</nobr></td>
<td>options: <a target="_blank" href=
"http://thinhunan.cnblogs.com/archive/2006/04/01/DeveloperNotesForPrototype.html#Ajax.options">
AJAX options</a></td>
<td class="refDescription">设定AJAX操作想要的选项。</td>
</tr>
<tr>
<td>responseIsSuccess()</td>
<td>instance</td>
<td>(none)</td>
<td class="refDescription">返回 <tt class="literal">true</tt>
如果AJAX操作成功,否则为 <tt class="literal">false</tt> 。</td>
</tr>
<tr>
<td>responseIsFailure()</td>
<td>instance</td>
<td>(none)</td>
<td class="refDescription">与 <tt class=
"literal">responseIsSuccess()</tt> 相反。</td>
</tr>
</tbody>
</table>
<p><a id="Ajax.Request" target="_blank" name=
"Ajax.Request"></a></p>
<h4>The <span class="objectClass">Ajax.Request</span> class</h4>
<p><em>继承自 <a target="_blank" class="code" href=
"#Ajax.Base">Ajax.Base</a></em></p>
<p>封装 AJAX 操作</p>
<table cellspacing="0" border="1" class="reference" id="Table22">
<tbody>
<tr>
<th>Property</th>
<th>Type</th>
<th>Kind</th>
<th>Description</th>
</tr>
<tr>
<td>Events</td>
<td>Array</td>
<td>static</td>
<td class="refDescription">在AJAX操作中所有可能报告的事件/状态的列表。这个列表包括:
<tt class="literal">'Uninitialized', 'Loading', 'Loaded',
'Interactive',</tt> 和 <tt class="literal">'Complete'</tt>。</td>
</tr>
<tr>
<td>transport</td>
<td>XMLHttpRequest</td>
<td>instance</td>
<td class="refDescription">承载AJAX操作的 <tt class=
"literal">XMLHttpRequest</tt> 对象。</td>
</tr>
<tr>
<td>url</td>
<td><nobr>string</nobr></td>
<td><nobr>instance</nobr></td>
<td class="refDescription">请求的URL。</td>
</tr>
</tbody>
</table>
<table cellspacing="0" border="1" class="reference" id="Table23">
<tbody>
<tr>
<th>Method</th>
<th>Kind</th>
<th>Arguments</th>
<th>Description</th>
</tr>
<tr>
<td>[ctor](url, options)</td>
<td>constructor</td>
<td>url: the url to be fetched, options: AJAX options</td>
<td class="refDescription">
创建这个对象的一个实例，它将在给定的选项下请求url。onCreate事件在调用constructor事被激发。
<span class="bold"><strong>重要：</strong></span>
如果选择的url受到浏览器的安全设置，他会一点作用也不起。 很多情况下，浏览器不会请求与当前页面不同主机(域名)的url。
你最好只使用本地url来避免限制用户配置他们的浏览器(谢谢Clay)</td>
</tr>
<tr class="privateMember">
<td>evalJSON()</td>
<td><nobr>instance</nobr></td>
<td>(none)</td>
<td class="refDescription">
这个方法显然不会被外部调用。它在Ajax响应中含有X-JSON&nbsp;HTTP头时用于内部调用执行这些内容。</td>
</tr>
<tr class="privateMember">
<td>evalReponse()</td>
<td>instance</td>
<td>(none)</td>
<td class="refDescription">
这也方法显然不会被外部调用，如果Ajax响应含有一个值为text/的Cotent-Type头，那么这个方法就用被调用执行响应体。</td>
</tr>
<tr>
<td>header(name)</td>
<td>instance</td>
<td>name: HTTP header name</td>
<td class="refDescription">引用Ajax响应的头的内容，在Ajax访问结束后再调用这个方法。</td>
</tr>
<tr class="privateMember">
<td>onStateChange()</td>
<td>instance</td>
<td>(none)</td>
<td class="refDescription">这个方法通常不会被外部调用。
当AJAX请求状态改变的时候被这个对象自己调用。</td>
</tr>
<tr class="privateMember">
<td>request(url)</td>
<td><nobr>instance</nobr></td>
<td>url: url for the AJAX call</td>
<td class="refDescription">这个方法通常不会被外部调用。已经在构造方法中调用了。</td>
</tr>
<tr class="privateMember">
<td>respondToReadyState(readyState)</td>
<td>instance</td>
<td>readyState: state number (1 to 4)</td>
<td class="refDescription">这个方法通常不会被外部调用。
当AJAX请求状态改变的时候被这个对象自己调用。</td>
</tr>
<tr class="privateMember">
<td>setRequestHeaders()</td>
<td>instance</td>
<td>(none)</td>
<td class="refDescription">这个方法通常不会被外部调用。
被这个对象自己调用来配置在HTTP请求要发送的HTTP报头。</td>
</tr>
</tbody>
</table>
<p><a id="Ajax.options" target="_blank" name=
"Ajax.options"></a></p>
<h4>The <span class="objectClass">options</span> argument
object</h4>
<p>An important part of the AJAX operations is the <span class=
"code">options</span> argument. There's no <span class=
"code">options</span> class per se. Any object can be passed, as
long as it has the expected properties. It is common to create
anonymous objects just for the AJAX calls.</p>
<table cellspacing="0" border="1" class="reference" id="Table24">
<tbody>
<tr>
<th>Property</th>
<th>Type</th>
<th>Default</th>
<th>Description</th>
</tr>
<tr>
<td>method</td>
<td>String</td>
<td>'post'</td>
<td class="refDescription">HTTP 请求方式。</td>
</tr>
<tr>
<td>parameters</td>
<td><nobr>String</nobr></td>
<td>''</td>
<td class="refDescription">在HTTP请求中传入的url格式的值列表。</td>
</tr>
<tr>
<td>asynchronous</td>
<td>Boolean</td>
<td>true</td>
<td class="refDescription">指定是否做异步 AJAX 请求。</td>
</tr>
<tr>
<td>postBody</td>
<td>String</td>
<td>undefined</td>
<td class="refDescription">在HTTP POST的情况下，传入请求体中的内容。</td>
</tr>
<tr>
<td>requestHeaders</td>
<td>Array</td>
<td>undefined</td>
<td class="refDescription">和请求一起被传入的HTTP头部列表， 这个列表必须含有偶数个项目，
任何奇数项目是自定义的头部的名称， 接下来的偶数项目使这个头部项目的字符串值。 例子:<tt class=
"literal">['my-header1', 'this is the value', 'my-other-header',
'another value']</tt></td>
</tr>
<tr>
<td>onXXXXXXXX</td>
<td>Function(XMLHttpRequest, Object)</td>
<td>undefined</td>
<td class="refDescription">在AJAX请求中，当相应的事件/状态形成的时候调用的自定义方法。 例如
<tt class="literal">var myOpts = {onComplete: showResponse,
onLoaded: registerLoaded};</tt>. 这个方法将被传入一个参数， 这个参数是承载AJAX操作的
<tt class="literal">XMLHttpRequest</tt>
对象，另一个是包含被执行X-JSON响应HTTP头。</td>
</tr>
<tr>
<td>onSuccess</td>
<td>Function(XMLHttpRequest, Object)</td>
<td>undefined</td>
<td class="refDescription">当AJAX请求成功完成的时候调用的自定义方法。 这个方法将被传入一个参数，
这个参数是承载AJAX操作的 <tt class="literal">XMLHttpRequest</tt>
对象，另一个是包含被执行X-JSON响应HTTP头。</td>
</tr>
<tr>
<td>onFailure</td>
<td>Function(XMLHttpRequest, Object)</td>
<td>undefined</td>
<td class="refDescription">当AJAX请求完成但出现错误的时候调用的自定义方法。这个方法将被传入一个参数，
这个参数是承载AJAX操作的 <tt class="literal">XMLHttpRequest</tt>
对象，另一个是包含被执行X-JSON响应HTTP头。</td>
</tr>
<tr>
<td>onException</td>
<td>Function(Ajax.Request, exception)</td>
<td><nobr>undefined</nobr></td>
<td class="refDescription">
当一个在客户端执行的Ajax发生像无效响应或无效参数这样的异常情况时被调用的自定义函数。它收到两个参数，包含异常Ajax操作的Ajax.Request对象和异常对象。</td>
</tr>
<tr>
<td>insertion</td>
<td>an Insertion class</td>
<td>undefined</td>
<td class="refDescription">一个能决定怎么样插入新内容的类，能 <a target="_blank"
class="code" href=
"http://thinhunan.cnblogs.com/archive/2006/04/01/DeveloperNotesForPrototype.html#Insertion.Before">
Insertion.Before</a>, <a target="_blank" class="code" href=
"http://thinhunan.cnblogs.com/archive/2006/04/01/DeveloperNotesForPrototype.html#Insertion.Top">
Insertion.Top</a>, <a target="_blank" class="code" href=
"http://thinhunan.cnblogs.com/archive/2006/04/01/DeveloperNotesForPrototype.html#Insertion.Bottom">
Insertion.Bottom</a>,&nbsp;或 <a target="_blank" class="code" href=
"http://thinhunan.cnblogs.com/archive/2006/04/01/DeveloperNotesForPrototype.html#Insertion.After">
Insertion.After</a>. 只能应用于<a target="_blank" class="code" href=
"http://thinhunan.cnblogs.com/archive/2006/04/01/DeveloperNotesForPrototype.html#Ajax.Updater">Ajax.Updater</a>
对象.</td>
</tr>
<tr>
<td>evalScripts</td>
<td>Boolean</td>
<td>undefined, false</td>
<td class="refDescription">决定当响应到达的时候是否执行其中的脚本块，只在 <a target=
"_blank" title="4.16.&nbsp;Ajax.Updater _fcksavedurl=" archive=""
thinhunan.cnblogs.com="" http:="" href=
"http://thinhunan.cnblogs.com/archive/2006/04/01/DeveloperNotesForPrototype.html#ajax_updater_reference">
<tt class="literal">Ajax.Updater</tt></a> 对象中应用。</td>
</tr>
<tr>
<td>decay</td>
<td>Number</td>
<td>undefined, 1</td>
<td class="refDescription">决定当最后一次响应和前一次响应相同时在 <a target="_blank"
title="4.17.&nbsp;Ajax.PeriodicalUpdater _fcksavedurl=" archive=""
thinhunan.cnblogs.com="" http:="" href=
"http://thinhunan.cnblogs.com/archive/2006/04/01/DeveloperNotesForPrototype.html#ajax_periodical_updater">
<tt class="literal">Ajax.PeriodicalUpdater</tt></a> 对象中的减漫访问的次数，
例如，如果设为2，后来的刷新和之前的结果一样， 这个对象将等待2个设定的时间间隔进行下一次刷新， 如果又一次一样，
那么将等待4次，等等。 不设定这个只，或者设置为1，将避免访问频率变慢。</td>
</tr>
<tr>
<td>frequency</td>
<td>Number</td>
<td>undefined, 2</td>
<td class="refDescription">用秒表示的刷新间的间隔，只能应用于 <a target="_blank"
class="code" href=
"http://thinhunan.cnblogs.com/archive/2006/04/01/DeveloperNotesForPrototype.html#Ajax.PeriodicalUpdater">
Ajax.PeriodicalUpdater</a> &nbsp;对象。</td>
</tr>
</tbody>
</table>
<p><a id="Ajax.Updater" target="_blank" name=
"Ajax.Updater"></a></p>
<h4>The <span class="objectClass">Ajax.Updater</span> class</h4>
<p><em>继承自 <a target="_blank" class="code" href=
"#Ajax.Request">Ajax.Request</a></em></p>
<p>当请求的url返回一段HTML而你想把它直接放置到页面中一个特定的元素的时候被用到。 如果url的返回<tt class=
"literal">&lt;script&gt;</tt> 的块并且想在接收到时就执行它的时候也可以使用该对象。含有脚本的时候使用
<tt class="literal">evalScripts</tt> 选项。</p>
<table cellspacing="0" border="1" class="reference" id="Table25">
<tbody>
<tr>
<th>Property</th>
<th>Type</th>
<th>Kind</th>
<th>Description</th>
</tr>
<tr class="privateMember">
<td>containers</td>
<td>Object</td>
<td>instance</td>
<td class="refDescription">这个对象包含两个属性:AJAX请求成功执行的时候用到 <tt class=
"literal">containers.success</tt> , 否则的话用到 <tt class=
"literal">containers.failure</tt> 。</td>
</tr>
</tbody>
</table>
<table cellspacing="0" border="1" class="reference" id="Table26">
<tbody>
<tr>
<th>Method</th>
<th>Kind</th>
<th>Arguments</th>
<th>Description</th>
</tr>
<tr>
<td>[ctor](container, url, options)</td>
<td>constructor</td>
<td>container:this can be the id of an element, the element object
itself, or an object with two properties -
<strong>object.success</strong> element (or id) that will be used
when the AJAX call succeeds, and <strong>object.failure</strong>
element (or id) that will be used otherwise. url: the url to be
fetched, options: <a target="_blank" class="code" href=
"#Ajax.options">AJAX options</a></td>
<td class="refDescription">创建一个用给定的选项请求给定的url的一个实例。</td>
</tr>
<tr class="privateMember">
<td>updateContent()</td>
<td><nobr>instance</nobr></td>
<td>(none)</td>
<td class="refDescription">这个方法通常不会被外部调用。 当响应到达的时候，被这个对象自己调用。
它会用HTML更新适当的元素或者调用在 <tt class="literal">insertion</tt>
选项中传入的方法-这个方法将被传入两个参数， 被更新的元素和响应文本。</td>
</tr>
</tbody>
</table>
<p><a id="Ajax.PeriodicalUpdater" target="_blank" name=
"Ajax.PeriodicalUpdater"></a></p>
<h4>The <span class="objectClass">Ajax.PeriodicalUpdater</span>
class</h4>
<p><em><a target="_blank" class="code" href=
"http://thinhunan.cnblogs.com/archive/2006/04/01/DeveloperNotesForPrototype.html#Ajax.Base">
继承自Ajax.Base</a></em></p>
<p>这个类重复生成并使用 <tt class="literal">Ajax.Updater</tt>
对象来刷新页面中的一个元素。或者执行 Ajax.Updater 可以执行的其它任务。更多信息参照 <a target="_blank"
title="4.16.&nbsp;Ajax.Updater _fcksavedurl=" archive=""
thinhunan.cnblogs.com="" http:="" href=
"http://thinhunan.cnblogs.com/archive/2006/04/01/DeveloperNotesForPrototype.html#ajax_updater_reference">
Ajax.Updater 参考</a> 。</p>
<table cellspacing="0" border="1" class="reference" id="Table27">
<tbody>
<tr>
<th>Property</th>
<th>Type</th>
<th>Kind</th>
<th>Description</th>
</tr>
<tr>
<td>container</td>
<td>Object</td>
<td><nobr>instance</nobr></td>
<td class="refDescription">这个值将直接传入<tt class=
"literal">Ajax.Updater</tt>的构造方法。</td>
</tr>
<tr>
<td>url</td>
<td>String</td>
<td>instance</td>
<td class="refDescription">这个值将直接传入<tt class=
"literal">Ajax.Updater</tt>的构造方法。</td>
</tr>
<tr>
<td>frequency</td>
<td>Number</td>
<td>instance</td>
<td class="refDescription">两次刷新之间的间隔 (不是频率) ，以秒为单位。 默认2秒。 This 当调用
<tt class="literal">Ajax.Updater</tt> 对象的时候，这个数将和当前的 <tt class=
"literal">decay</tt> 相乘。</td>
</tr>
<tr>
<td>decay</td>
<td><nobr>Number</nobr></td>
<td>instance</td>
<td class="refDescription">重负执行任务的时候保持的衰败水平。</td>
</tr>
<tr class="privateMember">
<td>updater</td>
<td><a target="_blank" href=
"http://thinhunan.cnblogs.com/archive/2006/04/01/DeveloperNotesForPrototype.html#Ajax.Updater">
Ajax.Updater</a></td>
<td>instance</td>
<td class="refDescription">最后一次使用的 <tt class=
"literal">Ajax.Updater</tt> 对象</td>
</tr>
<tr class="privateMember">
<td>timer</td>
<td>Object</td>
<td>instance</td>
<td class="refDescription">通知对象该下一次更新时用到的 计时器。</td>
</tr>
</tbody>
</table>
<table cellspacing="0" border="1" class="reference" id="Table28">
<tbody>
<tr>
<th>Method</th>
<th>Kind</th>
<th>Arguments</th>
<th>Description</th>
</tr>
<tr>
<td>[ctor](container, url, options)</td>
<td>constructor</td>
<td>container:this can be the id of an element, the element object
itself, or an object with two properties - <span class=
"code">object.success</span> element (or id) that will be used when
the AJAX call succeeds, and <span class=
"code">object.failure</span> element (or id) that will be used
otherwise. url: the url to be fetched, options: <a target="_blank"
class="code" href=
"http://thinhunan.cnblogs.com/archive/2006/04/01/DeveloperNotesForPrototype.html#Ajax.options">
AJAX options</a></td>
<td class="refDescription">创建一个用给定的选项请求给定的url的一个实例。</td>
</tr>
<tr class="privateMember">
<td>start()</td>
<td><nobr>instance</nobr></td>
<td>(none)</td>
<td class="refDescription">这个方法通常不会被外部调用。
对象为了开始周期性执行任务的时候调用的方法。</td>
</tr>
<tr>
<td>stop()</td>
<td>instance</td>
<td>(none)</td>
<td class="refDescription">
使对象停止执行周期任务。停止后，如果有onComplete选项，那么引发callback。</td>
</tr>
<tr class="privateMember">
<td>updateComplete()</td>
<td>instance</td>
<td>(none)</td>
<td class="refDescription">这个方法通常不会被外部调用。 被当前的 <tt class=
"literal">Ajax.Updater</tt> 使用，当一次请求结束的时候，它被用作计划下一次请求。</td>
</tr>
<tr class="privateMember">
<td>onTimerEvent()</td>
<td>instance</td>
<td>(none)</td>
<td class="refDescription">这个方法通常不会被外部调用。当到下一次更新时被内部调用。</td>
</tr>
</tbody>
</table>
<p><a id="Element" target="_blank" name="Element"></a></p>
<h4>The <span class="objectClass">Element</span> object</h4>
<p>这个对象提供在操作DOM中元素时使用的功能性方法。</p>
<table cellspacing="0" border="1" class="reference" id="Table29">
<tbody>
<tr>
<th>Method</th>
<th>Kind</th>
<th>Arguments</th>
<th>Description</th>
</tr>
<tr>
<td>addClassName(element, className)</td>
<td>instance</td>
<td>element: element object or id, className: name of a CSS
class</td>
<td class="refDescription">将给出的className添加到对象的className属性中。</td>
</tr>
<tr>
<td>classNames(element)</td>
<td><nobr>instance</nobr></td>
<td>element: element object or id</td>
<td class="refDescription">返回一个Element.ClassName的对象表示CSS
给出对象有的class names。</td>
</tr>
<tr>
<td>cleanWhitespace(element)</td>
<td>instance</td>
<td>element: element object or id</td>
<td class="refDescription">清除对象子元素中所有空白的text node。</td>
</tr>
<tr>
<td>empty(element)</td>
<td>instance</td>
<td>element: element object or id</td>
<td class="refDescription">返回一个布尔值指示对象为空或只有空白字符。</td>
</tr>
<tr>
<td>getDimensions(element)</td>
<td>instance</td>
<td>element: element object or id</td>
<td class="refDescription">返回对象的尺寸，返回值有两个属性，height和width。</td>
</tr>
<tr>
<td>getHeight(element)</td>
<td>instance</td>
<td>element: element object or id</td>
<td class="refDescription">返回元素的 <tt class=
"literal">offsetHeight</tt> 。</td>
</tr>
<tr>
<td>getStyle(element, cssProperty)</td>
<td>instance</td>
<td>element: element object or id, cssProperty name of a CSS
property (either format 'prop-name' or 'propName' works).</td>
<td class="refDescription">
返回给定对象的CSS属性值或没有指定cssProperty时返回null。</td>
</tr>
<tr>
<td>hasClassName(element, className)</td>
<td>instance</td>
<td>element: element object or id, className: name of a CSS
class</td>
<td class="refDescription">返回 <tt class="literal">true</tt>
如果元素的类名中含有给定的类名</td>
</tr>
<tr>
<td>hide(elem1 [, elem2 [, elem3 [...]]])</td>
<td>instance</td>
<td>elemN: element object or id</td>
<td class="refDescription">通过设定<tt class=
"literal">style.display</tt> 为 <tt class=
"literal">'none'</tt>来隐藏每个传入的元素。</td>
</tr>
<tr>
<td>makeClipping(element)</td>
<td>instance</td>
<td>element: element object or id</td>
<td class="refDescription"><font face=
"宋体">能过设定overflow的值设定内容溢出剪辑。</font></td>
</tr>
<tr>
<td>makePositioned(element)</td>
<td>instance</td>
<td>element: element object or id</td>
<td class="refDescription"><span class=
"code">更改对象的style.position为'relative'。</span></td>
</tr>
<tr>
<td>remove(element)</td>
<td>instance</td>
<td>element: element object or id</td>
<td class="refDescription">从document对象中删除指定的元素。</td>
</tr>
<tr>
<td>removeClassName(element, className)</td>
<td>instance</td>
<td>element: element object or id, className: name of a CSS
class</td>
<td class="refDescription">从元素的类名中删除给定的类名。</td>
</tr>
<tr>
<td>scrollTo(element)</td>
<td>instance</td>
<td>element: element object or id</td>
<td class="refDescription">滚动window到对象的位置。</td>
</tr>
<tr>
<td>setStyle(element, cssPropertyHash)</td>
<td>instance</td>
<td>element: element object or id, cssPropertyHash Hash object with
the styles to be applied.</td>
<td class="refDescription">依照cssPropertyHash参数给对象设置CSS属性值。</td>
</tr>
<tr>
<td>show(elem1 [, elem2 [, elem3 [...]]])</td>
<td>instance</td>
<td>elemN: element object or id</td>
<td class="refDescription">用设定它的 <tt class=
"literal">style.display</tt> 为 <tt class=
"literal">''</tt>来显示每个传入的元素。</td>
</tr>
<tr>
<td>toggle(elem1 [, elem2 [, elem3 [...]]])</td>
<td>instance</td>
<td>elemN: element object or id</td>
<td class="refDescription">切换每一个传入元素的可视性。</td>
</tr>
<tr>
<td>undoClipping(element)</td>
<td>instance</td>
<td>element: element object or id</td>
<td class="refDescription"><font face=
"宋体">style.overflow的值返回上一个设定值。</font></td>
</tr>
<tr>
<td>undoPositioned(element)</td>
<td>instance</td>
<td>element: element object or id</td>
<td class="refDescription">清除对象的 <span class=
"code">style.position</span> 为 <span class="code">''</span></td>
</tr>
<tr>
<td>update(element, html)</td>
<td>instance</td>
<td>element: element object or id, html: html content</td>
<td class="refDescription">
用给出的HTML参数替换对象的innerHTML,如果HTML参数中包含&lt;script&gt;，那么它们不会被包含进去，但是会执行。</td>
</tr>
<tr>
<td>visible(element)</td>
<td>instance</td>
<td>element: element object or id</td>
<td class="refDescription">返回一个布尔值指示对象可不可见。</td>
</tr>
</tbody>
</table>
<p><a id="Element.ClassNames" target="_blank" name=
"Element.ClassNames"></a></p>
<h4>The <span class="objectClass">Element.ClassNames</span>
class</h4>
<p><em>继承自&nbsp; <a target="_blank" class="code" href=
"http://thinhunan.cnblogs.com/archive/2006/04/01/DeveloperNotesForPrototype.html#Reference.Enumerable">
Enumerable</a></em></p>
<p>在一个对象中表示CSS class names的集合。</p>
<table cellspacing="0" border="1" class="reference" id="Table30">
<tbody>
<tr>
<th>Method</th>
<th>Kind</th>
<th>Arguments</th>
<th>Description</th>
</tr>
<tr>
<td>[ctor](element)</td>
<td>constructor</td>
<td>element: any DOM element object or id</td>
<td class="refDescription">创建一个对象，给出对象的CSS class
names被表现在这个ClassNames对象中。</td>
</tr>
<tr>
<td>add(className)</td>
<td><nobr>instance</nobr></td>
<td>className: a CSS class name</td>
<td class="refDescription">把CSS class name包含进对象的class names
列表。</td>
</tr>
<tr>
<td height="39">remove(className)</td>
<td height="39">instance</td>
<td height="39">className: a CSS class name</td>
<td height="39" class="refDescription">从对象的class
names列表中移除className</td>
</tr>
<tr>
<td>set(className)</td>
<td>instance</td>
<td>className: a CSS class name</td>
<td class="refDescription">设定对象CSS class name为className,移除其它class
names。</td>
</tr>
</tbody>
</table>
<p><a id="Abstract" target="_blank" name="Abstract"></a></p>
<h4>The <span class="objectClass">Abstract</span> object</h4>
<p>这个对象是这个程序包中其他类的根。它没有任何属性和方法。在这个对象中定义的类可以被视为传统的抽象类。</p>
<p><a id="Abstract.Insertion" target="_blank" name=
"Abstract.Insertion"></a></p>
<h4>The <span class="objectClass">Abstract.Insertion</span>
class</h4>
<p>这个类被用作其他提供动态内容插入功能的类的基类，它像一个抽象类一样被使用。</p>
<table cellspacing="0" border="1" class="reference" id="Table31">
<tbody>
<tr>
<th>Method</th>
<th>Kind</th>
<th>Arguments</th>
<th>Description</th>
</tr>
<tr>
<td>[ctor](element, content)</td>
<td>constructor</td>
<td>element: element object or id, content: HTML to be
inserted</td>
<td class="refDescription">创建一个可以帮助插入动态内容的对象。</td>
</tr>
<tr class="privateMember">
<td>contentFromAnonymousTable()</td>
<td><nobr>instance</nobr></td>
<td>(none)</td>
<td class="refDescription"><font face=
"宋体">对content通过匿名表格变成一个Node数组。</font></td>
</tr>
</tbody>
</table>
<table cellspacing="0" border="1" class="reference" id="Table32">
<tbody>
<tr>
<th>Property</th>
<th>Type</th>
<th>Kind</th>
<th>Description</th>
</tr>
<tr class="privateMember">
<td>adjacency</td>
<td>String</td>
<td>static, parameter</td>
<td class="refDescription">这个参数指定相对于给定元素，内容将被放置的位置。 可能的值是:
<tt class="literal">'beforeBegin'</tt>, <tt class=
"literal">'afterBegin'</tt>, <tt class="literal">'beforeEnd'</tt>,
和 <tt class="literal">'afterEnd'</tt>.</td>
</tr>
<tr>
<td>element</td>
<td>Object</td>
<td>instance</td>
<td class="refDescription">与插入物做参照元素对象。</td>
</tr>
<tr>
<td>content</td>
<td>String</td>
<td>instance</td>
<td class="refDescription">被插入的 HTML 。</td>
</tr>
</tbody>
</table>
<p><a id="Insertion" target="_blank" name="Insertion"></a></p>
<h4>The <span class="objectClass">Insertion</span> object</h4>
<p>这个对象是其他类似功能的根。它没有任何属性和方法。在这个对象中定义的类仍然可以被视为传统的抽象类。</p>
<p><a id="Insertion.Before" target="_blank" name=
"Insertion.Before"></a></p>
<h4>The <span class="objectClass">Insertion.Before</span>
class</h4>
<p>继承自 <tt class="literal"><a target="_blank" title=
"4.20.&nbsp;Abstract.Insertion _fcksavedurl=" archive=""
thinhunan.cnblogs.com="" http:="" href=
"http://thinhunan.cnblogs.com/archive/2006/04/01/DeveloperNotesForPrototype.html#abstract_insertion">
Abstract.Insertion</a></tt></p>
<p>在给定元素开始标记的前面插入HTML。</p>
<table cellspacing="0" border="1" class="reference" id="Table33">
<tbody>
<tr>
<th>Method</th>
<th>Kind</th>
<th>Arguments</th>
<th>Description</th>
</tr>
<tr>
<td>[ctor](element, content)</td>
<td><nobr>constructor</nobr></td>
<td>element: element object or id, content: HTML to be
inserted</td>
<td class="refDescription">继承自&nbsp;&nbsp; <a target="_blank"
class="code" href=
"http://thinhunan.cnblogs.com/archive/2006/04/01/DeveloperNotesForPrototype.html#Abstract.Insertion">
Abstract.Insertion</a>. 创建一个可以帮助插入动态内容的对象。</td>
</tr>
</tbody>
</table>
<pre class="code">
<br>
<br>
下面的代码<br>
<br>
&lt;br&gt;Hello, &lt;span id="person" style="color:red;"&gt;Wiggum. How's it going?&lt;/span&gt;<br>
<br>
&lt;script&gt; <span class=
"highlite">new Insertion.Before('person', 'Chief ')</span>; &lt;/script&gt;
</pre>
<pre class="code">
<br>
<br>
将把 HTML 变为<br>
<br>
&lt;br&gt;Hello, <span class=
"highlite">Chief </span>&lt;span id="person" style="color:red;"&gt;Wiggum. How's it going?&lt;/span&gt;
</pre>
<p><a id="Insertion.Top" target="_blank" name=
"Insertion.Top"></a></p>
<h4>The <span class="objectClass">Insertion.Top</span> class</h4>
<p>继承自 <tt class="literal"><a target="_blank" title=
"4.20.&nbsp;Abstract.Insertion 类" href=
"#abstract_insertion">Abstract.Insertion</a></tt></p>
<p>在给定元素第一个子节点位置插入 HTML。内容将位于元素的开始标记的紧后面。</p>
<table cellspacing="0" border="1" class="reference" id="Table34">
<tbody>
<tr>
<th>Method</th>
<th>Kind</th>
<th>Arguments</th>
<th>Description</th>
</tr>
<tr>
<td>[ctor](element, content)</td>
<td><nobr>constructor</nobr></td>
<td>element: element object or id, content: HTML to be
inserted</td>
<td class="refDescription">继承自&nbsp;&nbsp;<a target="_blank" class=
"code" href="#Abstract.Insertion">Abstract.Insertion</a>.
创建一个可以帮助插入动态内容的对象。</td>
</tr>
</tbody>
</table>
<pre class="code">
<br>
<br>
下面的代码<br>
<br>
&lt;br&gt;Hello, &lt;span id="person" style="color:red;"&gt;Wiggum. How's it going?&lt;/span&gt;<br>
<br>
&lt;script&gt; <span class=
"highlite">new Insertion.Top('person', 'Mr. ')</span>; &lt;/script&gt;
</pre>
<pre class="code">
<br>
<br>
将把 HTML 变为<br>
<br>
&lt;br&gt;Hello, &lt;span id="person" style="color:red;"&gt;<span class="highlite">Mr. </span>Wiggum. How's it going?&lt;/span&gt;
</pre>
<p><a id="Insertion.Bottom" target="_blank" name=
"Insertion.Bottom"></a></p>
<h4>The <span class="objectClass">Insertion.Bottom</span>
class</h4>
<p><em>Inherits from <a target="_blank" class="code" href=
"http://thinhunan.cnblogs.com/archive/2006/04/01/DeveloperNotesForPrototype.html#Abstract.Insertion">
Abstract.Insertion</a></em></p>
<p>在给定元素最后一个子节点位置插入 HTML。内容将位于元素的结束标记的紧前面。</p>
<table cellspacing="0" border="1" class="reference" id="Table35">
<tbody>
<tr>
<th>Method</th>
<th>Kind</th>
<th>Arguments</th>
<th>Description</th>
</tr>
<tr>
<td>[ctor](element, content)</td>
<td>constructor</td>
<td>element: element object or id, content: HTML to be
inserted</td>
<td class="refDescription">Inherited from <a target="_blank" class=
"code" href=
"http://thinhunan.cnblogs.com/archive/2006/04/01/DeveloperNotesForPrototype.html#Abstract.Insertion">
Abstract.Insertion</a>. Creates an object that will help with
dynamic content insertion.</td>
</tr>
</tbody>
</table>
<p>The following code</p>
<pre class="code">
&lt;br&gt;Hello, &lt;span id="person" style="color:red;"&gt;Wiggum. How's it going?&lt;/span&gt;<br>
<br>
<br>
<br>
&lt;script&gt; <span class=
"highlite">new Insertion.Bottom('person', " What's up?")</span>; &lt;/script&gt;
</pre>
<p>Will change the HTML to</p>
<pre class="code">
&lt;br&gt;Hello, &lt;span id="person" style="color:red;"&gt;Wiggum. How's it going?<span class="highlite"> What's up?</span>&lt;/span&gt;
</pre>
<p><a id="Insertion.After" target="_blank" name=
"Insertion.After"></a></p>
<h4>The <span class="objectClass">Insertion.After</span> class</h4>
<p><em>Inherits from <a target="_blank" class="code" href=
"#Abstract.Insertion">Abstract.Insertion</a></em></p>
<p>在给定元素结束标记的后面插入HTML。</p>
<table cellspacing="0" border="1" class="reference" id="Table36">
<tbody>
<tr>
<th>Method</th>
<th>Kind</th>
<th>Arguments</th>
<th>Description</th>
</tr>
<tr>
<td>[ctor](element, content)</td>
<td>constructor</td>
<td>element: element object or id, content: HTML to be
inserted</td>
<td class="refDescription">Inherited from <a target="_blank" class=
"code" href="#Abstract.Insertion">Abstract.Insertion</a>. Creates
an object that will help with dynamic content insertion.</td>
</tr>
</tbody>
</table>
<p>The following code</p>
<pre class="code">
&lt;br&gt;Hello, &lt;span id="person" style="color:red;"&gt;Wiggum. How's it going?&lt;/span&gt;<br>
<br>
<br>
<br>
&lt;script&gt; <span class=
"highlite">new Insertion.After('person', ' Are you there?')</span>; &lt;/script&gt;
</pre>
<p>Will change the HTML to</p>
<pre class="code">
&lt;br&gt;Hello, &lt;span id="person" style="color:red;"&gt;Wiggum. How's it going?&lt;/span&gt;<span class="highlite"> Are you there?</span>
</pre>
<p><a id="Field" target="_blank" name="Field"></a></p>
<h4>The <span class="objectClass">Field</span> object</h4>
<p>这个对象提供操作表单中的输入项目的功能性方法。</p>
<table cellspacing="0" border="1" class="reference" id="Table37">
<tbody>
<tr>
<th>Method</th>
<th>Kind</th>
<th>Arguments</th>
<th>Description</th>
</tr>
<tr>
<td>clear(field1 [, field2 [, field3 [...]]])</td>
<td>instance</td>
<td>fieldN: field element object or id</td>
<td class="refDescription">清除传入表单中项目元素的值。</td>
</tr>
<tr>
<td>present(field1 [, field2 [, field3 [...]]])</td>
<td>instance</td>
<td>fieldN: field element object or id</td>
<td class="refDescription">只有在所有的表单项目都不为空时返回 <tt class=
"literal">true</tt> 。</td>
</tr>
<tr>
<td>focus(field)</td>
<td><nobr>instance</nobr></td>
<td>field: field element object or id</td>
<td class="refDescription">移动焦点到给定的表单项目。</td>
</tr>
<tr>
<td>select(field)</td>
<td>instance</td>
<td>field: field element object or id</td>
<td class="refDescription">选择支持项目值选择的表单项目的值。</td>
</tr>
<tr>
<td>activate(field)</td>
<td>instance</td>
<td>field: field element object or id</td>
<td class="refDescription">移动焦点并且选择支持项目值选择的表单项目的值。</td>
</tr>
</tbody>
</table>
<p><a id="Form" target="_blank" name="Form"></a></p>
<h4>The <span class="objectClass">Form</span> object</h4>
<p>这个对象提供操作表单和他们的输入元素的功能性方法。</p>
<table cellspacing="0" border="1" class="reference" id="Table38">
<tbody>
<tr>
<th>Method</th>
<th>Kind</th>
<th>Arguments</th>
<th>Description</th>
</tr>
<tr>
<td>serialize(form)</td>
<td>instance</td>
<td>form: form element object or id</td>
<td class="refDescription">返回url参数格式的项目名和值的列表， 如<tt class=
"literal">'field1=value1&amp;field2=value2&amp;field3=value3'。</tt></td>
</tr>
<tr>
<td>findFirstElement(form)</td>
<td><nobr>instance</nobr></td>
<td>form: form element object or id</td>
<td class="refDescription">返回Form中第一个Enable的对象。</td>
</tr>
<tr>
<td>getElements(form)</td>
<td>instance</td>
<td>form: form element object or id</td>
<td class="refDescription">返回包含所有在表单中输入项目的 <tt class=
"literal">Array</tt> 对象。</td>
</tr>
<tr>
<td>getInputs(form [, typeName [, name]])</td>
<td>instance</td>
<td>form: form element object or id, typeName: the type of the
input element, name: the name of the input element.</td>
<td class="refDescription">返回一个 <tt class="literal">Array</tt>
包含所有在表单中的 <tt class="literal">&lt;input&gt; 元素</tt>。 另外，
这个列表可以对元素的类型或名字属性进行过滤。</td>
</tr>
<tr>
<td>disable(form)</td>
<td>instance</td>
<td>form: form element object or id</td>
<td class="refDescription">使表单中的所有输入项目无效。</td>
</tr>
<tr>
<td>enable(form)</td>
<td>instance</td>
<td>form: form element object or id</td>
<td class="refDescription">使表单中的所有输入项目有效。</td>
</tr>
<tr>
<td>focusFirstElement(form)</td>
<td>instance</td>
<td>form: form element object or id</td>
<td class="refDescription">激活第一个表单中可视的，有效的输入项目。</td>
</tr>
<tr>
<td>reset(form)</td>
<td>instance</td>
<td>form: form element object or id</td>
<td class="refDescription">重置表单。和调用表单对象的 <tt class=
"literal">reset()</tt> 方法一样。</td>
</tr>
</tbody>
</table>
<p><a id="Form.Element" target="_blank" name=
"Form.Element"></a></p>
<h4>The <span class="objectClass">Form.Element</span> object</h4>
<p>这个对象提供表单对象中的可视和非可视元素的功能性方法。</p>
<table cellspacing="0" border="1" class="reference" id="Table39">
<tbody>
<tr>
<th>Method</th>
<th>Kind</th>
<th>Arguments</th>
<th>Description</th>
</tr>
<tr>
<td>serialize(element)</td>
<td><nobr>instance</nobr></td>
<td>element: element object or id</td>
<td class="refDescription">返回元素的 名称=值 对, 如 <tt class=
"literal">'elementName=elementValue'。</tt></td>
</tr>
<tr>
<td>getValue(element)</td>
<td>instance</td>
<td>element: element object or id</td>
<td class="refDescription">返回元素的值。</td>
</tr>
</tbody>
</table>
<p><a id="Form.Element.Serializers" target="_blank" name=
"Form.Element.Serializers"></a></p>
<h4>The <span class="objectClass">Form.Element.Serializers</span>
object</h4>
<p>这个对象提供了内部使用的用来协助解析出表单元素的当前值的一些有用的方法。</p>
<table cellspacing="0" border="1" class="reference" id="Table40">
<tbody>
<tr>
<th>Method</th>
<th>Kind</th>
<th>Arguments</th>
<th>Description</th>
</tr>
<tr>
<td>inputSelector(element)</td>
<td>instance</td>
<td>element: object or id of a form element that has the
<em>checked</em> property, like a radio button or checkbox.</td>
<td class="refDescription">返回带有元素名称和值的 <tt class=
"literal">Array</tt> , 如 <tt class="literal">['elementName',
'elementValue']</tt></td>
</tr>
<tr>
<td>textarea(element)</td>
<td><nobr>instance</nobr></td>
<td>element: object or id of a form element that has the
<em>value</em> property, like a textbox, button or password
field.</td>
<td class="refDescription">返回带有元素名称和值的 <tt class=
"literal">Array</tt> , 如 <tt class="literal">['elementName',
'elementValue']</tt></td>
</tr>
<tr>
<td>select(element)</td>
<td>instance</td>
<td>element: object of a &lt;select&gt; element</td>
<td class="refDescription">返回带有元素名称和所有被选择的选项的值或文本的 <tt class=
"literal">Array</tt> , 如 <tt class="literal">['elementName',
'selOpt1 selOpt4 selOpt9']</tt></td>
</tr>
</tbody>
</table>
<p><a id="Abstract.TimedObserver" target="_blank" name=
"Abstract.TimedObserver"></a></p>
<h4>The <span class="objectClass">Abstract.TimedObserver</span>
class</h4>
<p>这个类是用于其它监听一个元素的值(或者任何类中涉及的属性)变化的类的基类，这个类像一个抽象类一样被使用。</p>
<p>子类可以被创建来监听如输入项目值，或style属性，或表格的行数，或者其他任何对跟踪变化相关的东西。</p>
<p>子类必须实现这个方法来决定什么才是被监听的元素的当前值。</p>
<table cellspacing="0" border="1" class="reference" id="Table41">
<tbody>
<tr>
<th>Method</th>
<th>Kind</th>
<th>Arguments</th>
<th>Description</th>
</tr>
<tr>
<td>[ctor](element, frequency, callback)</td>
<td>constructor</td>
<td>element: element object or id, frequency: interval in seconds,
callback: function to be called when the element changes</td>
<td class="refDescription">创建一个监听元素的对象。</td>
</tr>
<tr class="privateMember">
<td>getValue()</td>
<td>instance, abstract</td>
<td>(none)</td>
<td class="refDescription">子类必须实现这个方法以瘊定什么这个元素被监视的当前值。</td>
</tr>
<tr class="privateMember">
<td>registerCallback()</td>
<td><nobr>instance</nobr></td>
<td>(none)</td>
<td class="refDescription">这个方法通常不会被外部调用。 被这个对象自己调用来开始监听那个元素。</td>
</tr>
<tr class="privateMember">
<td>onTimerEvent()</td>
<td>instance</td>
<td>(none)</td>
<td class="refDescription">这个方法通常不会被外部调用。
被这个对象自己调用来周期性的检查那个元素。</td>
</tr>
</tbody>
</table>
<table cellspacing="0" border="1" class="reference" id="Table42">
<tbody>
<tr>
<th>Property</th>
<th>Type</th>
<th>Description</th>
</tr>
<tr>
<td>element</td>
<td>Object</td>
<td class="refDescription">被监听的元素对象。</td>
</tr>
<tr>
<td>frequency</td>
<td><nobr>Number</nobr></td>
<td class="refDescription">每次检查中的以秒为单位的时间间隔。</td>
</tr>
<tr>
<td>callback</td>
<td>Function(Object, String)</td>
<td class="refDescription">只要元素改变这个方法就会被调用。 会接收到元素对象和新值作为参数。</td>
</tr>
<tr class="privateMember">
<td>lastValue</td>
<td>String</td>
<td class="refDescription">元素被核实的最后一个值。</td>
</tr>
</tbody>
</table>
<p><a id="Form.Element.Observer" target="_blank" name=
"Form.Element.Observer"></a></p>
<h4>The <span class="objectClass">Form.Element.Observer</span>
class</h4>
<p>继承自 <tt class="literal"><a target="_blank" title=
"4.30.&nbsp;Abstract.TimedObserver 类" href=
"#abstract_timed_observer">Abstract.TimedObserver</a></tt></p>
<p><tt class="literal">Abstract.TimedObserver</tt>
的一个实现类用来监听表单输入项目的值的变化。当你想监听一个没有带报告值变化事件的元素的时候使用这个类。否则的话使用
<tt class="literal"><a target="_blank" title=
"4.34.&nbsp;Form.Element.EventObserver 类" href=
"#form_element_event_observer">Form.Element.EventObserver</a></tt>
类代替。</p>
<table cellspacing="0" border="1" class="reference" id="Table43">
<tbody>
<tr>
<th>Method</th>
<th>Kind</th>
<th>Arguments</th>
<th>Description</th>
</tr>
<tr>
<td>[ctor](element, frequency, callback)</td>
<td>constructor</td>
<td>element: element object or id, frequency: interval in seconds,
callback: function to be called when the element changes</td>
<td class="refDescription">继承自 <tt class=
"literal">Abstract.TimedObserver</tt>. 创建一个监听元素值属性的对象。</td>
</tr>
<tr class="privateMember">
<td>getValue()</td>
<td><nobr>instance</nobr></td>
<td>(none)</td>
<td class="refDescription">返回元素的值。</td>
</tr>
</tbody>
</table>
<p><a id="Form.Observer" target="_blank" name=
"Form.Observer"></a></p>
<h4>The <span class="objectClass">Form.Observer</span> class</h4>
<p>继承自 <tt class="literal"><a target="_blank" title=
"4.30.&nbsp;Abstract.TimedObserver _fcksavedurl=" archive=""
thinhunan.cnblogs.com="" http:="" href=
"http://thinhunan.cnblogs.com/archive/2006/04/01/DeveloperNotesForPrototype.html#abstract_timed_observer">
Abstract.TimedObserver</a></tt></p>
<p><tt class="literal">Abstract.TimedObserver</tt>
的一个实现类用来监听表单中任何数据项的值的变化。当你想监听一个没有带报告值变化事件的元素的时候使用这个类。
否则的话使用类<tt class="literal"><a target="_blank" title=
"4.35.&nbsp;Form.EventObserver _fcksavedurl=" archive=""
thinhunan.cnblogs.com="" http:="" href=
"http://thinhunan.cnblogs.com/archive/2006/04/01/DeveloperNotesForPrototype.html#form_event_observer">Form.EventObserver</a></tt>
代替。</p>
<table cellspacing="0" border="1" class="reference" id="Table44">
<tbody>
<tr>
<th>Method</th>
<th>Kind</th>
<th>Arguments</th>
<th>Description</th>
</tr>
<tr>
<td>[ctor](form, frequency, callback)</td>
<td>constructor</td>
<td>form: form object or id, frequency: interval in seconds,
callback function to be called when any data entry element in the
form changes</td>
<td class="refDescription">继承自 <tt class=
"literal">Abstract.TimedObserver</tt>. 创建一个监听表单变化的对象。</td>
</tr>
<tr class="privateMember">
<td>getValue()</td>
<td><nobr>instance</nobr></td>
<td>(none)</td>
<td class="refDescription">返回所有表单数据的一系列值。</td>
</tr>
</tbody>
</table>
<p><a id="Abstract.EventObserver" target="_blank" name=
"Abstract.EventObserver"></a></p>
<h4>The <span class="objectClass">Abstract.EventObserver</span>
class</h4>
<p>这个类被用作其他一些类的基类，这些类具有在一个元素的值改变事件发生的时候执行一个回调方法这样的功能。</p>
<p>类 <tt class="literal">Abstract.EventObserver
的多个对象可以绑定到一个元素上，不是一个帮其他的擦出了，而是按照他们付给元素的顺序执行这些回调方法。</tt></p>
<p>单选按钮和复选框的触发事件是 <tt class="literal">onclick</tt>
，而文本框和下拉列表框/下拉列表框的是 <tt class="literal">onchange</tt> 。&nbsp;</p>
<table cellspacing="0" border="1" class="reference" id="Table45">
<tbody>
<tr>
<th>Method</th>
<th>Kind</th>
<th>Arguments</th>
<th>Description</th>
</tr>
<tr>
<td>[ctor](element, callback)</td>
<td>constructor</td>
<td>element: element object or id, callback: function to be called
when the event happens</td>
<td class="refDescription">创建监听元素的对象。</td>
</tr>
<tr class="privateMember">
<td>getValue()</td>
<td><nobr>instance,abstract</nobr></td>
<td>(none)</td>
<td class="refDescription">子类必须实现这个方法以瘊定什么这个元素被监视的当前值。</td>
</tr>
<tr class="privateMember">
<td>registerCallback()</td>
<td>instance</td>
<td>(none)</td>
<td class="refDescription">这个方法通常不会被外部调用。 被对象调用来把自己绑定到元素的事件上。</td>
</tr>
<tr class="privateMember">
<td>registerFormCallbacks()</td>
<td>instance</td>
<td>(none)</td>
<td class="refDescription">这个方法通常不会被外部调用。
被对象调用来把自己绑定到表单中的每一个数据项元素的事件上。</td>
</tr>
<tr class="privateMember">
<td>onElementEvent()</td>
<td>instance</td>
<td>(none)</td>
<td class="refDescription">这个方法通常不会被外部调用。 将被绑定到元素的事件上。</td>
</tr>
</tbody>
</table>
<table cellspacing="0" border="1" class="reference" id="Table46">
<tbody>
<tr>
<th>Property</th>
<th>Type</th>
<th>Description</th>
</tr>
<tr>
<td>element</td>
<td>Object</td>
<td class="refDescription">被监听的元素对象。</td>
</tr>
<tr>
<td>callback</td>
<td>Function(Object, String)</td>
<td class="refDescription">只要元素改变就调用的方法。会接收到元素对象和新值作为参数。</td>
</tr>
<tr class="privateMember">
<td>lastValue</td>
<td>String</td>
<td class="refDescription">元素被核实的最后一个值。</td>
</tr>
</tbody>
</table>
<p><a id="Form.Element.EventObserver" target="_blank" name=
"Form.Element.EventObserver"></a></p>
<h4>The <span class="objectClass">Form.Element.EventObserver</span>
class</h4>
<p>继承自 <a target="_blank" title=
"4.33.&nbsp;Abstract.EventObserver _fcksavedurl=" archive=""
thinhunan.cnblogs.com="" http:="" href=
"http://thinhunan.cnblogs.com/archive/2006/04/01/DeveloperNotesForPrototype.html#abstract_event_observer">
<tt class="literal">Abstract.EventObserver</tt></a></p>
<p><tt class="literal">Abstract.EventObserver</tt>
的一个实现类，它在监测到表单中数据项元素的值改变的相应事件时候执行一个回调方法。 如果元素没有任何报告变化的事件，那么你可以使用
<tt class="literal"><a target="_blank" title=
"4.31.&nbsp;Form.Element.Observer _fcksavedurl=" archive=""
thinhunan.cnblogs.com="" http:="" href=
"http://thinhunan.cnblogs.com/archive/2006/04/01/DeveloperNotesForPrototype.html#form_element_observer">
Form.Element.Observer</a></tt> 类代替。</p>
<table cellspacing="0" border="1" class="reference" id="Table47">
<tbody>
<tr>
<th>Method</th>
<th>Kind</th>
<th>Arguments</th>
<th>Description</th>
</tr>
<tr>
<td>[ctor](element, callback)</td>
<td>constructor</td>
<td>element: element object or id, callback: function to be called
when the event happens</td>
<td class="refDescription">继承自 <tt class=
"literal">Abstract.EventObserver</tt>。 创建一个监听元素值属性的对象。</td>
</tr>
<tr class="privateMember">
<td>getValue()</td>
<td><nobr>instance</nobr></td>
<td>(none)</td>
<td class="refDescription">返回元素的值。</td>
</tr>
</tbody>
</table>
<p>&lt;!--
-------------------------------------------------------------------------------------------
--&gt;<a id="Form.Observer" target="_blank" name=
"Form.Observer"></a></p>
<h4>The <span class="objectClass">Form.EventObserver</span>
class</h4>
<p>继承自 <a target="_blank" title=
"4.33.&nbsp;Abstract.EventObserver _fcksavedurl=" editor="" pages=
"" blog.xiaonei.com="" http:="" href=
"http://blog.xiaonei.com/pages/editor/winblog.html#abstract_event_observer">
<tt class="literal">Abstract.EventObserver</tt></a></p>
<p><tt class="literal">Abstract.EventObserver</tt>
的一个实现类，监听表单对象中包含的任何对象的任何变化，用元素的事件检测值的变化。如果元素没有任何报告变化的事件，
那么你可以使用<tt class="literal"><a target="_blank" title=
"4.32.&nbsp;Form.Observer _fcksavedurl=" editor="" pages=""
blog.xiaonei.com="" http:="" href=
"http://blog.xiaonei.com/pages/editor/winblog.html#form_observer">Form.Observer</a></tt>
类代替。</p>
<table cellspacing="0" border="1" class="reference" id="Table48">
<tbody>
<tr>
<th>Method</th>
<th>Kind</th>
<th>Arguments</th>
<th>Description</th>
</tr>
<tr>
<td>[ctor](form, callback)</td>
<td>constructor</td>
<td>form: form object or id, callback: function to be called when
any data entry element in the form changes</td>
<td class="refDescription">继承自 <tt class=
"literal">Abstract.EventObserver</tt>。 创建一个监听元素值属性的对象。</td>
</tr>
<tr class="privateMember">
<td>getValue()</td>
<td><nobr>instance</nobr></td>
<td>(none)</td>
<td class="refDescription">返回所有表单数据的一系列值。</td>
</tr>
</tbody>
</table>
<p><a id="Position" target="_blank" name="Position"></a></p>
<h3 class="title"><a id="d0e3420" target="_blank" name=
"d0e3420"></a><tt class="literal">Position</tt> 对象 (预备文档)</h3>
<p>这个对象提供许多和元素位置相关的方法。</p>
<table cellspacing="0" border="1" class="reference" id="Table49">
<tbody>
<tr>
<th>Method</th>
<th>Kind</th>
<th>Arguments</th>
<th>Description</th>
</tr>
<tr>
<td>prepare()</td>
<td><nobr>instance</nobr></td>
<td>(none)</td>
<td class="refDescription">调整 <tt class="literal">deltaX</tt> 和
<tt class="literal">deltaY</tt> 属性来协调在滚动位置中的变化。
记得在页面滚动之后的任何调用的<tt class="literal">withinIncludingScrolloffset</tt>
之前调用这个方法。</td>
</tr>
<tr>
<td>realOffset(element)</td>
<td><nobr>instance</nobr></td>
<td>element: object</td>
<td class="refDescription">返回这个元素的正确滚动偏差的 <tt class=
"literal">Array</tt> 对象， 包括所有影响元素的滚动偏差。结果数组类似 <tt class=
"literal">[total_scroll_left, total_scroll_top]</tt></td>
</tr>
<tr>
<td>cumulativeOffset(element)</td>
<td>instance</td>
<td>element: object</td>
<td class="refDescription">回这个元素的正确滚动偏差的 <tt class=
"literal">Array</tt> 对象， 包含任何被放置的父元素强加偏差。结果数组类似 <tt class=
"literal">[total_offset_left, total_offset_top]</tt></td>
</tr>
<tr>
<td>within(element, x, y)</td>
<td>instance</td>
<td>element: object, x and y: coordinates of a point</td>
<td class="refDescription">测试给定的点的坐标是否在给定的元素的外部矩形范围之内。</td>
</tr>
<tr>
<td>withinIncludingScrolloffsets(element, x, y)</td>
<td>instance</td>
<td>element: object, x and y: coordinates of a point</td>
<td class="refDescription">
&nbsp;测试给定的点的坐标是否在给定的元素的外部矩形范围之内（包含scroll offsets）。</td>
</tr>
<tr>
<td>overlap(mode, element)</td>
<td><nobr>instance</nobr></td>
<td>mode: 'vertical' or 'horizontal', element: object</td>
<td class="refDescription">在调用这个方法之前需要调用<tt class=
"literal">within()</tt> 。这个方法返回0.0到1.0之间的数字，来表示坐标在元素重叠的分数。
举个例子，如果元素是一个边长是100px的正方形的DIV，并且位于(300, 300), 然后 <tt class=
"literal">within(divSquare, 330, 330)；</tt><tt class=
"literal">overlap('vertical', divSquare);</tt> 会返回
0.10，意思是那个点位于DIV顶部边框以下 10% (30px) 的位置上。</td>
</tr>
<tr>
<td>clone(source, target)</td>
<td>instance</td>
<td>source: element object or id, target: element object or id</td>
<td class="refDescription">改变目标元素的大小尺寸和位置与源元素的相同。</td>
</tr>
</tbody>
</table>
<div class="postDesc">posted @ 2006-04-01 18:38 <a target="_blank"
href="http://thinhunan.cnblogs.com/">THIN</a> 阅读(103835) <a target=
"_blank" href=
"http://blog.xiaonei.com/pages/editor/winblog.html#Post">评论(129)</a>
&nbsp;<a target="_blank" href=
"http://www.cnblogs.com/thinhunan/admin/EditPosts.aspx?postid=364404">编辑</a>
<a target="_blank" href=
"http://www.cnblogs.com/thinhunan/AddToFavorite.aspx?id=364404">收藏</a>
所属分类: <a target="_blank" href=
"http://www.cnblogs.com/thinhunan/category/22345.html">DHTML
&amp;</a></div>
<p><img width="1" height="1" alt="" src=
"http://www.cnblogs.com/thinhunan/aggbug/364404.html?webview=1"></p>
<p>--&gt;</p>

]]></description><guid>http://www.i170.com/Article/103626</guid><trackback:ping>http://www.i170.com/Article/103626/trackback</trackback:ping><comments>http://www.i170.com/Article/103626#comment</comments><wfw:commentRss>http://www.i170.com/Article/103626/commentRss</wfw:commentRss></item> <item><link>http://www.i170.com/Article/101138</link><title><![CDATA[DIY醫療 + 網路 = 全球12億客戶-转]]></title><author>heaven</author><category>互联网</category><pubDate>Fri, 29 Feb 2008 12:21:06  +0800</pubDate><description><![CDATA[<p><a href="http://bioiq.com/"><img alt="" src=
"http://mr6.cc/wp-content/uploads/2008/02/p06.jpg"></a></p>
<div class="contenttext">
<p><span lang="EN-US"><a href=
"http://www.mivitals.com/"><font size="2"><img alt="" src=
"http://mr6.cc/wp-content/uploads/2008/02/p14.jpg"></font></a></span></p>
<p><a href="http://www.23andme.com/"><img alt="" src=
"http://mr6.cc/wp-content/uploads/2008/02/p22.jpg"></a></p>
<p class="partingline">[separator]</p>
<p>
昨天新聞提到前陣子有位中國大陸記者進行實驗，將茶水謊稱是尿液，送到好幾家醫院去作健康檢查，結果竟有好幾家醫院報告回來說「尿蛋白過高」，還為「病人」開了藥。</p>
<p>
我在台北開車常經過某家醫院，看到穿白袍的醫師走進去，總是一想，哎，醫療產業真是多棒的產業，<strong>這地區有多少人，他們的潛在「客人」就有多少人</strong>；當一個人出現「需求」，這需求肯定會是一個人一生中提出的<strong>最強烈的需求</strong>，世上再也沒有東西比「保命」更重要了。還在美國時，我一度很羨慕即將從軟體工程師轉行作醫生的朋友，他說，當醫生以後還是可以創業，那時候的「點子」又會很不一樣了！</p>
<p>
尤其是當我們將現在最新的通路「互聯網」加入醫療，讓人人都可以「DIY」。說到醫療、說到健康，這世上無論是白人黑人土人黃人，大家都是「人」，醫學理論差不了多少，因此，理論上來說，<strong>「DIY醫療
+
網路」</strong>簡直就是一拍即合的絕佳雙人組，可以幫你<strong>涵蓋全球十二億上網人口</strong>。更由於醫學的需求總是如此切迫，收費起來絲毫不必客氣。全球人們對醫療的需求已經如此巨大，大到連在旁邊收「慧星尾」的小石塊，全球集合起來，大概都可以賺爆！</p>
<p>最近看到三個「DIY醫療 + 網站」的組合，很有意思：</p>
<p>一、<a href=
"http://www.bioiq.com/">bioIQ</a>：這個網站提供一些簡單的「在家就可體檢」的身體檢查，可以直接買來DIY，不必再送回實驗室，它馬上就告訴你結果。這和網拍的情境一樣，看到喜歡的，就買回來在家裡用，只是它買的機會比其他產品大很多，世界上沒人想生病，BioIQ可以輕易就可以吸引一群人買這樣的小盒子作DIY身體檢查。<a href="http://www.bioiq.com/m/tests">這些測試包括</a>：糖尿病測試、甲狀腺機能異常的測試、心血管疾病、腎臟疾病…等等。</p>
<p>二、<a href=
"http://www.mivitals.com/">miVitals</a>：這是一個幫助個人DIY收集「個人病歷資料」的網站。你在一間醫院做身體檢查，所有的醫療病歷資料都在那間醫院裡，假如真的要轉院時，實在相當麻煩。假如你必須到巴西住五個月，然後在巴西突然舊症復發怎麼辦？一般人平常沒病沒痛，就算知道應該未雨稠繆，也覺得「太麻煩」而作罷。MiVitals教你DIY，自己一步一步的向醫院取資料，把自己的病患資料填上來，以後到全球旅行都可以上網去下載！</p>
<p>三、<a href=
"https://www.23andme.com/">23andMe</a>：這間公司幫我們作DNA分析，去年開站時，已在美國掀起一陣狂熱和辯論（創辦人也剛好是Google創辦人Sergey
Brin的老婆）。它只要取我們的唾液，然後送進他們的實驗室，四~六周後結果就可以出來，包括我們祖宗八代可能有什麼潛在的遺傳疾病，包括自己可能有什麼潛在的問題基因通通告訴我們。這個月，23AndMe<a href="https://www.23andme.com/ourservice/ancestry/">更剛剛推出了「祖先分析」</a>，可以算出父系那邊的祖先是從哪裡來的，曾經住過哪裡等等。不確定這部份是不是完全是靠DNA，還是有和全國族譜作比對就是了。</p>
<p>
再次經過這間台北的醫院，看到這麼多穿白袍的醫生，為何這些DIY醫療網站，<strong>只有歐美創業家才能推出呢</strong>？我們應在這方面努力想想，尤其是有亞洲人特色的醫療作業，和網路結合一下，有機會做全球的生意！</p>
</div>

]]></description><guid>http://www.i170.com/Article/101138</guid><trackback:ping>http://www.i170.com/Article/101138/trackback</trackback:ping><comments>http://www.i170.com/Article/101138#comment</comments><wfw:commentRss>http://www.i170.com/Article/101138/commentRss</wfw:commentRss></item> <item><link>http://www.i170.com/Article/100987</link><title><![CDATA[红酒结缘艺术，嘉德在线红酒交易平台“道喜红酒网”正式上线]]></title><author>heaven</author><category>互联网</category><pubDate>Wed, 27 Feb 2008 11:51:25  +0800</pubDate><description><![CDATA[<p style=
"margin: 0cm 0cm 0pt; text-indent: 21pt; line-height: 150%;" class=
"MsoNormal"><span style=
"line-height: 150%;">记者今日获悉，今年被嘉德在线（<span><a href=
"http://www.artrade.com/"><span style=
"color: windowtext; line-height: 150%; text-decoration: none;">www.artrade.com</span></a></span>）并购的葡萄酒网（<span><a href="http://www.dolcey.com/"><span style="color: windowtext; line-height: 150%; text-decoration: none;">www.dolcey.com</span></a></span>），
近日已经改版上线，更名为“道喜红酒网”。改版后，道喜红酒网将引进西方优质葡萄酒，率先在中国创建国内外葡萄酒、酒具酒器的交易平台，为酒庄产地特别是
国际葡萄酒品牌，搭建一座与中国葡萄酒代理商、分销商沟通、合作的桥梁。作为国内首次涉足葡萄酒行业的艺术领域企业，嘉德在线此举引起了艺术拍卖、葡萄酒
行业以及社会大众的广泛关注。</span></p>
<p style=
"margin: 0cm 0cm 0pt; text-indent: 15.75pt; line-height: 150%;"
class="MsoNormal"><span style=
"line-height: 150%;">艺术与酒文化可谓水乳交融，西方悲剧艺术直接起源于酒神崇拜，中国的文人骚客，如诗仙李白、“草圣”张旭等，对“杯中之物”也是钟爱有加。艺术品与葡萄酒似乎有着天然的联系，不少艺术家本身就是葡萄酒藏家。嘉德在线<span>CEO</span>陆昂女士表示，嘉德在线一直身体力行在中国倡导“艺术生活化·生活艺术化”的生活理念和艺术理想，<span>2006</span>年嘉德在线就曾推出特别拍卖——“艺术与消费·红酒拍卖专场”，成功对美国著名的纳帕酒庄红酒进行了拍卖和推广。</span></p>
<p style="margin: 0cm 0cm 0pt; line-height: 150%;" class=
"MsoNormal"><span style="line-height: 150%;">&nbsp;&nbsp;&nbsp;
目前，中国葡萄酒市场每年<span>15%</span>的增长速度，让国际葡萄酒商觊觎不已。然而，国外葡萄酒品牌要进入中国市场并不容易，一来由于国际上葡萄酒品牌数目众多，很难让中国酒商和消费者快速接受；二来国外葡萄酒品牌在中国也缺乏推广经验和快速进入市场的渠道。针对这两点，<span>2007</span>年嘉德在线<span>CEO</span>兼道喜红酒网执行董事陆昂女士特地赴欧美葡萄酒产地进行了实地考察，通过特色酒品的引进，以及联姻道喜红酒网，进行资源和渠道的有机整合，并通过完善网站功能，搭建起了一个精准、成熟的葡萄酒在线交易平台，使道喜红酒网成为国内外葡萄酒品牌推广的重要渠道。<br>
</span> <span style="line-height: 150%;">&nbsp;&nbsp;&nbsp;
观察人士指出，此次嘉德在线能够有效整合资源，推广葡萄酒文化，主要在于嘉德在线拥有畅通的资源提供渠道、庞大的注册用户群、翔实的艺术家数据库和活跃的
网上购买市场，许多艺术家和收藏家今后将直接成为道喜葡萄酒网的用户；而嘉德在线即有的信用保证的支付方式和畅达的物流服务，则为道喜红酒网的运营打下了
很好的基础。这些是道喜红酒网原先所没有的。可以说，借势嘉德在线，道喜红酒网已经成为国内外葡萄酒品牌被中国艺术界、收藏界以及社会大众认知、认可的快
速通道。</span></p>
<p style="margin: 0cm 0cm 0pt; line-height: 150%;" class=
"MsoNormal"><span style="line-height: 150%;">&nbsp;&nbsp;&nbsp;
道喜红酒网上线适逢新年佳节，嘉德在线为此特别推出了“特荐特价”活动，以庆双喜。据悉，新年期间，</span><span style=
"line-height: 150%;">道喜特荐红酒“纳帕海势系列”中的“</span><span style=
"line-height: 150%;">海势<span>—</span>黑衣骑士<span>(Cabernet
Sauvignon)</span></span><span style=
"line-height: 150%;">”，将以<span>98</span>元的优惠价格（原价<span>142</span>元）出售。根</span><span style="line-height: 150%;">据介绍，</span><span style="line-height: 150%;">“</span><span style="line-height: 150%;">海势<span>—</span>黑衣骑士</span><span style="line-height: 150%;">”深色石榴红，水果味，特别适合在节假日搭配味道厚重的肉类菜肴如烤羊、烤鸭烧烤肉类，并且香气沉郁，适合于储藏，可谓色、香、味俱美，是为节日锦上添花的难得佳品。</span></p>
<p><span style="line-height: 150%;">&nbsp;&nbsp;&nbsp;&nbsp;</span>
<span style="line-height: 150%;">据
悉，收藏级别的高端葡萄酒将是道喜红酒网的一大亮点，不过除此之外，道喜红酒网也为世界各地具有特色风情的好酒分别安排了一席之地。可以说，在嘉德在线的
荫护下，目前道喜红酒网已经完成了一流葡萄酒在线交易平台和葡萄酒文化传播者双重身份的有机结合，已经能够高举文化大旗，以酒作媒，为中国消费者带来不同
的文化大餐。</span></p>

]]></description><guid>http://www.i170.com/Article/100987</guid><trackback:ping>http://www.i170.com/Article/100987/trackback</trackback:ping><comments>http://www.i170.com/Article/100987#comment</comments><wfw:commentRss>http://www.i170.com/Article/100987/commentRss</wfw:commentRss></item> <item><link>http://www.i170.com/Article/100745</link><title><![CDATA[半亩塘闲话: 网络视频和播客类网站专项清查工作已经开始-z]]></title><author>heaven</author><category>互联网,视频</category><pubDate>Mon, 25 Feb 2008 14:43:44  +0800</pubDate><description><![CDATA[<p>随着网络视频法规的实施，网络视频和播客类网站专项清查工作目前已经开始。多个网站已经发出通知（<a target="_blank"
href="http://www.gdidc.net.cn/test.html">1</a>，<a target="_blank"
href=
"http://www.zjwj110.cn/ReadNews.asp?NewsID=861">2</a>，<a target=
"_blank" href=
"http://cyberpolice.hangzhou.com.cn/ggl.asp?id=22">3</a>）。</p>
<p><a target="_blank" href=
"http://www.gdidc.net.cn/test.html">这里</a>还有一份涉“黄”网络视频节目名单
，兹列如下。这与<a target="_blank" href=
"http://zhcn.blogspot.com/2007/08/40.html">去年的40部黄色小说</a>颇有异曲同工之妙。</p>
<p class="MsoNormal"><span style="font-family: 宋体;">竹夫人</span></p>
<p class="MsoNormal"><span>Big</span><span style=
"font-family: 宋体;">波诱惑</span></p>
<p class="MsoNormal"><span>2003</span><span style=
"font-family: 宋体;">赤裸天使</span></p>
<p class="MsoNormal"><span>2003</span><span style=
"font-family: 宋体;">野性情人</span></p>
<p class="MsoNormal"><span>410</span><span style=
"font-family: 宋体;">淫童</span></p>
<p class="MsoNormal"><span>93</span><span style=
"font-family: 宋体;">夜之女</span></p>
<p class="MsoNormal"><span>94</span><span style=
"font-family: 宋体;">应召女郎</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">哎吔女朋友</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">爱的精灵</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">爱的色放</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">爱情万岁</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">爱人</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">爱神</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">案之孽杀</span><span><span>&nbsp;</span></span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">八仙饭店之人肉叉烧包</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">半妖乳娘</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">变色的花朵</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">不扣钮的女孩</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">不文女学堂</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">不再情牵</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">曹查理</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">赤裸羔羊</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">赤裸羔羊</span><span>2</span><span style=
"font-family: 宋体;">强奸</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">赤裸天使</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">赤足惊魂</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">丑闻</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">雏妓</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">慈禧的秘密生活</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">慈禧野史</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">摧花神龙教</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">大作戰</span><span><span>&nbsp;</span></span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">挡不住的风情</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">灯草和尚</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">灯草和尚</span><span>2-</span><span style=
"font-family: 宋体;">白蛇前传</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">灯草和尚之素女经</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">癫马女郎之一夜情</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">发电俏佳娃</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">风流名妓苏小小</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">羔羊大律师</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">羔羊医生</span></p>
<p class="MsoNormal"><span>&nbsp;</span></p>
<p class="MsoNormal"><span>&nbsp;</span></p>
<p class="MsoNormal"><span>&nbsp;</span></p>
<p class="MsoNormal"><span>&nbsp;</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">宫闱情变</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">勾魂恶梦</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">豪情夜生活</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">好色女警</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">好色妖姬杨贵妃</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">和尚的一场春梦</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">黑街舞男</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">黑狱圣女</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">红灯区</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">红楼春上春</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">花街狂奔</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">还珠格格成人版</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">幻想玉女</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">换妻换上瘾</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">皇帝也风流</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">鸡年大奸情</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">鸡鸭恋</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">激情模特儿</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">极度强奸</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">极度兽性</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">家庭教师</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">家有艳妻</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">奸魔Ⅱ</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">剑奴</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">降頭</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">街坊差人</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">她来自胡志明市</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">借种</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">金瓶双艳</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">金瓶艳史</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">禁宫八大酷刑之极乐酷刑</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">禁忌游戏</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">禁室培欲</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">惊变</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">警花肉搏强奸党</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">镜花风月春降</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">镜花风月系列</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">旧约</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">哭泣的女人</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">郎心如铁</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">老泥妹</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">历代名妓</span><span>-</span><span style=
"font-family: 宋体;">悲落叶之柳如是</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">恋幼情色</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">聊斋花弄月</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">聊斋艳谭</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">聊斋艳谭续集五通神</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">聊斋艳谭之幽媾</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">邻家女优</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">绿色椅子</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">裸遍世界</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">裸体美人之女佣</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">满清禁宫秘史</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">满清十大酷刑</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">满清十大酷刑</span><span>2</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">滿清</span><span>II</span><span style=
"font-family: 宋体;">之赤裸淩迟</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">盲女</span><span>72</span><span style=
"font-family: 宋体;">小時</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">迷魂党</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">蜜桃成熟时</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">蜜桃成熟时</span><span>1997</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">蜜桃成熟时</span><span>3</span><span style=
"font-family: 宋体;">之蜜桃仙子</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">灭门惨</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">灭门惨案之借种</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">灭门惨案之孽杀</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">滅門慘案之孽殺</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">南洋</span><span>10</span><span style=
"font-family: 宋体;">大邪术</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">南洋第一邪降</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">南洋十大邪降</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">孽欲追击档案之邪杀</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">女欢</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">女机械人</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">女色狼</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">虐之恋</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">潘金莲之前世今生</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">裴斗娜的体验</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">苹果</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">七日情</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">齐天大性之大破盘丝洞</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">倩女销魂</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">强奸</span><span>2</span><span style=
"font-family: 宋体;">制服诱惑</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">强奸案中案</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">强奸终极篇最后羔羊</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">蔷薇之恋</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">亲蜜情人之无限诱惑</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">青楼十二房</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">卿本佳人</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">情不自禁</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">情劫</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">情难自制</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">情欲报复</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">全职妓女</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">人鬼情未了</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">人皮高跟鞋</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">人肉叉烧包</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">人肉叉烧包</span><span>2-</span><span style=
"font-family: 宋体;">天诛地灭</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">人肉腊肠</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">人头豆腐汤</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">三度诱惑</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">三分一情人</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">三剑侠与飞机妹</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">色降</span><span>II</span><span style=
"font-family: 宋体;">万里驱魔</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">色降</span><span>II-</span><span style=
"font-family: 宋体;">血玫瑰</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">色戒</span><span>(</span><span style=
"font-family: 宋体;">未删节版</span><span>)</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">色情男女</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">色欲城市之赤裸姐妹花</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">色欲中环</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">杀奸</span><span>O</span><span style=
"font-family: 宋体;">娘</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">山中艳谭</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">少女潘金莲</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">蛇蝎美人</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">射鸡英雄传</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">生人勿近之邪花</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">尸蛊艳谭</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">失忆性行为</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">师生绮恋</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">释放自已</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">兽性新人类</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">兽性诱惑</span><span>-</span><span style=
"font-family: 宋体;">赤裸性游戏</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">双面媚娘</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">双姝艳</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">水浒传之英雄好色</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">私家秘密处女</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">四度诱惑</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">台湾少女日记</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">唐朝豪放女</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">唐朝禁宫风云</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">唐皇宫外情之二唐朝后宫的秘密</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">唐皇宫外情之三唐朝艳妃</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">唐皇宫外情之太监与宫女</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">桃色香居</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">特区爱奴</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">天地玄门</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">田螺艳鬼</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">偷窥乐无穷</span><span>-</span><span style=
"font-family: 宋体;">着草威龙</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">偷窥无罪</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">偷窥无罪</span><span>II</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">偷拍计程车</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">偷情宝鉴</span><span>-</span><span style=
"font-family: 宋体;">十二性夜</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">偷情男女</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">偷食女学生</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">偷试隔墙花</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">偷香</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">脱衣舞女</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">玩女无罪</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">危情</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">韦小宝之玩女大王</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">伟哥的故事</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">我的姐姐</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">我的女友是二嫂</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">我的演员女友</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">我为卿狂</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">无尽的爱</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">五大郎与潘金莲</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">五月樱唇</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">午夜女郎</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">武则天</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">舞男</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">西施</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">西厢艳谭</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">西游淫记</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">吸我一个吻</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">吸血贵利王血玫瑰</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">嬉春无悔</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">虾录情圣</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">霞姐－夜生活女王</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">夏日狂情</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">现代白蛇艳谈</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">现代靓妹仔</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">香醇的诱惑</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">香港处男</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">香港奇案之强奸</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">香港奇案之屯门色魔</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">香港舞男</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">香港淫娃</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">小心女人</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">校园女教师之迫娼</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">邪教档案</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">邪僧</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">邪邪邪</span><span>(</span><span style=
"font-family: 宋体;">彭丹</span><span>)</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">心锁</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">新潮女空姐</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">新羔羊医生</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">新紅唇劫</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">新女性宝鉴邱玉茹邱莉婷</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">新倾国倾城</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">新三狼之欢场屠夫</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">新素女艳谭</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">新应召女郎</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">星期六约会</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">杏林春暖</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">性妲已</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">性分裂</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">性工作者十日谈</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">性媾</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">性火坑乳燕</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">性劫兰桂芳（大友梨奈</span><span>,</span><span style=
"font-family: 宋体;">曾玉茹）</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">性奴</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">性趣高手</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">性事奇趣录之阉夫</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">性夜</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">凶宅胭脂</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">胸军一号</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">熊熊性火</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">血溅红灯区</span><span>(</span><span style=
"font-family: 宋体;">容儿</span><span>)</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">血恋</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">血恋</span><span>II</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">血染红唇</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">鸭之一族</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">艳降</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">艳绛勾魂</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">艳谭之灯草和尚</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">艳舞女郎</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">艳遇</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">一脱求生</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">伊波拉病毒</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">怡红院</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">艺坛照妖镜之</span><span>96</span><span style=
"font-family: 宋体;">应召名册</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">异种</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">淫荡杨贵妃</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">淫间道</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">淫童</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">有色心没色胆</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">与鸭共舞</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">玉女白菊花</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">玉女聊斋</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">玉蒲团之官人我要</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">玉蒲团系列</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">玉蒲团之偷情宝鉴</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">玉蒲团之阴阳性教</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">玉蒲团之玉女心经</span><span><span>&nbsp;</span></span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">欲火龙珠</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">欲女</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">愈快乐愈堕落</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">云雨生死恋</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">展招艳史</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">纸包梦惊魂</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">制服的挑逗</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">制服诱惑Ⅱ地下法庭</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">致命女人心</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">中港丽人</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">中国古代性戏观</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">终极强奸</span><span>2-</span><span style=
"font-family: 宋体;">原始兽性</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">钟馗嫁妹</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">周末同床</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">捉奸趣事</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">足本玉蒲团</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">短裙拉美脱衣自拍</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">汤唯成名前性虐戏曝光</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">希尔顿豪放视频集</span></p>
<p class="MsoNormal"><span style=
"font-family: 宋体;">安娜的激情史</span></p>
<p><span style="font-family: 宋体;">外遇的好日子</span></p>

]]></description><guid>http://www.i170.com/Article/100745</guid><trackback:ping>http://www.i170.com/Article/100745/trackback</trackback:ping><comments>http://www.i170.com/Article/100745#comment</comments><wfw:commentRss>http://www.i170.com/Article/100745/commentRss</wfw:commentRss></item> <item><link>http://www.i170.com/Article/97773</link><title><![CDATA[Citiy8城市吧真是太帅了！输入你家小区试试，输入你公司所在大厦试试。]]></title><author>heaven</author><category>互联网,虚拟世界</category><pubDate>Mon, 14 Jan 2008 12:41:42  +0800</pubDate><description><![CDATA[<p><img alt="" src=
"http://bj.city8.com/search/image/logo_normal.gif"></p>
<p>Citiy8城市吧真是太帅了！输入你家小区试试，输入你公司所在大厦试试。</p>
<p>&nbsp;</p>
<p><a href="http://www.city8.com/">城市吧实景地图</a>于2006
年6月推出，早于07年Google推出的Street
View站点，是由国际领先的全景技术提供商杰图软件自主研发的，引领电子地图发展趋势的实用Web2.0网站。它创新地将三维实景与电子地图结合，为广
大网民提供实景地图搜索服务。在这里，你会发现那些现实中的大厦、道路已经不仅仅是地图上的抽象的一个点、一条线，而是可以带给你栩栩如生、身临其境的体
验。目前城市吧已经开通以下城市的实景地图搜索服务：<a href=
"http://sh.city8.com/">上海地图</a>、<a href=
"http://bj.city8.com/">北京地图</a>、<a href=
"http://gz.city8.com/">广州地图</a>、<a href=
"http://sz.city8.com/">深圳地图</a>、<a href=
"http://hz.city8.com/">杭州地图</a>、<a href=
"http://suzhou.city8.com/">苏州地图</a>、<a href=
"http://wz.city8.com/">温州地图</a>、<a href=
"http://jn.city8.com/">济南地图、</a><a href=
"http://zz.city8.com/">郑州地图</a>、<a href=
"http://qd.city8.com/">青岛地图</a>、<a href=
"http://dg.city8.com/">东莞地图</a>、<a href=
"http://xm.city8.com/">厦门地图</a>、<a href=
"http://zh.city8.com/">珠海地图</a>、<a href=
"http://fz.city8.com/">福州地图</a>、<a href=
"http://fs.city8.com/">佛山地图</a>、<a href=
"http://dl.city8.com/">大连地图</a>、<a href=
"http://xa.city8.com/">西安地图</a>、<a href=
"http://hk.city8.com/">海口地图</a>、<a href=
"http://sy.city8.com/">三亚地图</a>、<a href=
"http://nc.city8.com/">南昌地图</a>、<a href=
"http://cd.city8.com/">成都地图</a>。在城市吧，你可以进行：</p>
<ul>
<li>
<div align="left" class="b">实景搜索</div>
<ul>
<li>
<div align="left">搜索单位名称，查看搜索结果位置和实景；</div>
</li>
<li>
<div align="left">搜索公交路线，查看公交路线和换乘处实景；</div>
</li>
<li>
<div align="left">搜索开车路线，查看拐弯，上高架等关键路段实景。</div>
</li>
</ul>
</li>
<li>
<div align="left" class="b">实景漫游</div>
<ul>
<li>
<div align="left">身临其境在南京路、淮海路等商业街区逛街；</div>
</li>
<li>
<div align="left">身临其境游览金茂、东方明珠、新天地等旅游景点；</div>
</li>
<li>
<div align="left">身临其境参观商家店面。</div>
</li>
</ul>
</li>
<li>
<div align="left" class="b">实景分享</div>
<ul>
<li>
<div align="left">企业地图：把公司地址配上实景图，让客户更方便的找到你；</div>
</li>
<li>
<div align="left">博客地图：实景记录我的“窝”，我在城市的足迹，让我难忘的地点；</div>
</li>
<li>
<div align="left">通过QQ、MSN、Email、Blog、BBS等方式与他人分享任何位置信息，<br>
<div align="left">包括约会、聚会地点，你的住所、工作地点，你的活动场所．．．．．．</div>
</div>
</li>
</ul>
</li>
</ul>
<blockquote>
<div align="left">
<div align="left">
<p><span class="b">分享什么？</span><br>
用实景告诉朋友约在哪里腐败；<br>
发现了好吃的地方贴出来跟大家分享；<br>
今天遭贼了，在BBS/Blog里贴出实景，提醒朋友注意；<br>
租房买房不用跑过去也可以查看小区周边环境怎么样；<br>
让远方的家人在city8网上旅游一番；<br>
以及任何你想分享的东西。。。。。<br>
从现在开始，你再也不用费尽口舌的描述了， 用实景说话吧。<br>
例：<a href=
"http://bbs.city8.com/thread-444-1-1.html">http://bbs.city8.com/thread-444-1-1.html</a></p>
</div>
</div>
</blockquote>
<p>&nbsp;</p>
<p>&nbsp;喜欢！</p>

]]></description><guid>http://www.i170.com/Article/97773</guid><trackback:ping>http://www.i170.com/Article/97773/trackback</trackback:ping><comments>http://www.i170.com/Article/97773#comment</comments><wfw:commentRss>http://www.i170.com/Article/97773/commentRss</wfw:commentRss></item> <item><link>http://www.i170.com/Article/97536</link><title><![CDATA[个人也可以建设视频网站啦！Comsenz发布影音播客系统SupeV]]></title><author>heaven</author><category>互联网,视频</category><pubDate>Thu, 10 Jan 2008 19:28:54  +0800</pubDate><description><![CDATA[<p>&nbsp;</p>
<p>
1月10日，国内最大的互联网社区产品及服务提供商康盛创想(Comsenz)推出了其精心打造的影音播客系统——SupeV，此软件的发布让个人站长不花一份钱免费搭建独立视频网站的愿望成为现实。</p>
<p><font size="5"><font color="#FF6600">不过！建视频网站
之前你得好好考虑考虑，建议先看看</font><a href=
"http://www.i170.com/user/heaven/Article_97513">这篇文章</a>。</font><br>

<br>
互
联网视频时代的来临，引发了视频分享的狂潮。网民迫不及待地想在这个日新月异的时代中展现自己，期待实现视频资源共享和传播，在这一需求的召唤下，视频网
站势如破竹般诞生，满足了网民分享视频的需求。然而由于视频需要专业的技术以及高昂的存储和带宽费用，所以视频网站多是互联网巨头所拥有的特权，占据中国
互联网主流位置的个人网站却无力涉足，难免有所遗憾。而现在，SupeV的出现让广大的个人站长终于有了自己的选择。<br>
<br>
SupeV提供视频
的上传、解码、播放、分享等功能以及相应的功能管理后台，基本上囊括了现阶段主流视频网站所拥有的全部功能，而且还采用了诸如模板机制、SEO技术和
AJAX技术等众多流行技术元素，使用者可以利用它以极简单的方式建立起一个类似Youtube或者土豆的视频站点。</p>
<div class="t_msgfont" id="message543"><br>
除了提供专业的视频技术解决方案之外，更加激动人心的是，针对视频网站资源高消耗的特点，SupeV还免费提供高带宽和无限的存储空间，这种大手笔动作解决了个人站长关于成本的后顾之忧，站长仅需一个虚拟主机空间，即使不懂技术也能搭建、配置、管理和维护自己的视频网站。<br>

<br>
SupeV
的发布再一次印证了Comsenz一贯坚持的“专注为站长提供工具”的发展思路，无论是Discuz!、ECShop还是SupeV，Comsenz一直
通过领先的技术来降低个人站长、网店店主进入互联网的门槛。除了技术手段之外，Comsenz还相继投入了巨大资金为用户提供带宽、服务器等相关物质资
源，从之前的5d6d.com、卖否网到现在的SupeV，这一系列举措对国内个人网站的普及和繁荣起到了巨大的促进作用。<br>
<br>
<br>
官方目前发布版本为SupeV1.0.0 beta1<br>
<br>
SupeV演示地址：<a href="http://www.supev.org/" target=
"_blank">www.supev.org</a><br>
<br>
SupeV发布地址：<a href="http://www.discuz.net/thread-829452-1-1.html"
target=
"_blank">http://www.discuz.net/thread-829452-1-1.html</a><br>
<br>
SupeV下载地址：<a href=
"http://download.discuz.net/supev/SupeV_1.0.0_Beta1_SC_GBK_ZENDENC.zip"
target=
"_blank">http://download.discuz.net/supev/SupeV_1.0.0_Beta1_SC_GBK_ZENDENC.zip</a></div>

]]></description><guid>http://www.i170.com/Article/97536</guid><trackback:ping>http://www.i170.com/Article/97536/trackback</trackback:ping><comments>http://www.i170.com/Article/97536#comment</comments><wfw:commentRss>http://www.i170.com/Article/97536/commentRss</wfw:commentRss></item> <item><link>http://www.i170.com/Article/97515</link><title><![CDATA[扫黄网---上网新去处]]></title><author>heaven</author><category>互联网</category><pubDate>Thu, 10 Jan 2008 13:34:16  +0800</pubDate><description><![CDATA[<p><img src="http://www.saohuang.cn/media/digg/img/logo.jpg" alt=
""></p>
<p>http://www.saohuang.cn/</p>
<p>很黄很不暴力。。。</p>

]]></description><guid>http://www.i170.com/Article/97515</guid><trackback:ping>http://www.i170.com/Article/97515/trackback</trackback:ping><comments>http://www.i170.com/Article/97515#comment</comments><wfw:commentRss>http://www.i170.com/Article/97515/commentRss</wfw:commentRss></item> <item><link>http://www.i170.com/Article/97513</link><title><![CDATA[网上销售彩票咯儿屁了！视频网站也要咯儿屁！]]></title><author>heaven</author><category>互联网,彩票,视频</category><pubDate>Thu, 10 Jan 2008 13:14:00  +0800</pubDate><description><![CDATA[<p><font size="4"><strong><span lang="EN-US" style=
"font-size: 12pt;"><font face=
"Times New Roman">1、2007</font></span><span style=
"font-size: 12pt; font-family: 宋体;">年</span><span lang="EN-US"
style="font-size: 12pt;"><font face=
"Times New Roman">12</font></span><span style=
"font-size: 12pt; font-family: 宋体;">月</span><span lang="EN-US"
style="font-size: 12pt;"><font face=
"Times New Roman">24</font></span><span style=
"font-size: 12pt; font-family: 宋体;">日</span><span style=
"font-size: 12pt; font-family: 宋体;">，财政部、民政部、国家体育总局联合发文，要求停止互联网销售彩票业务！</span></strong></font></p>
<p>&nbsp;</p>
<p><font size="4"><span style=
"font-size: 12pt; font-family: 宋体;">停止互联网销售彩票业务还有情可原，因为有关“专家”称：此举利大于弊。</span></font></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><font size="4"><strong><span class="px14"><font id=
"FontSizeSettings5">2、国家广电总局联合信息产业部发布了《互联网视听节目服务管理规定》，并宣布从2008年1
月31日起实施。</font></span><span class="px14"><font id=
"FontSizeSettings5">规定一：申请从事互联网视听节目服务的，应当具备以下条件：具备法人资格，<font color=
"#FF6600">为国有独资或国有控股单位</font>，且在申请之日前3年内无违法违规记录。</font></span></strong></font></p>
<p><font size="4">完了，彻底完了，<span class="px14"><font id=
"FontSizeSettings5">土豆、六间房、</font></span><span class=
"px14"><font id=
"FontSizeSettings5">优酷等等，没有一个是“国有独资或国有控股单位”，都要咯儿屁了！</font></span></font></p>
<p>&nbsp;</p>

]]></description><guid>http://www.i170.com/Article/97513</guid><trackback:ping>http://www.i170.com/Article/97513/trackback</trackback:ping><comments>http://www.i170.com/Article/97513#comment</comments><wfw:commentRss>http://www.i170.com/Article/97513/commentRss</wfw:commentRss></item> <item><link>http://www.i170.com/Article/97440</link><title><![CDATA[很黄很暴力排名的网站排名top10]]></title><author>heaven</author><category>笑话,互联网</category><pubDate>Wed, 09 Jan 2008 11:57:20  +0800</pubDate><description><![CDATA[<h2>很黄很暴力排名的网站排名top10</h2>
<p>
13岁的北京学生张某，在去年12月27日19时新闻联播一则关于净化网络视听的新闻里，接受采访时说的话激起了轩然大波：“上次我上网查资料，突然弹出来一个网页，很黄很暴力，我赶紧把它给关了。”这个片段被CCTV以实名身份播放出来，一时处处刀光剑影。<br>

<a href=
"http://www.williamlong.info/archives/1197.html">月光博客</a>说，Wall之下，怎么可能有很黄很暴力的网站？我想他大概是误会了CCTV一片拿全国网民当儿子的良苦用心。常喊狼来了，有利于身心健康，有利于社会进步，有利于社会和谐。<br>

<strong>本文信手拈来十个很黄很暴力的网站，以作反例。</strong></p>
<p><strong>No.10 新华网</strong><br>
<br>
<img src=
"http://photo15.yupoo.com/20080107/102146_1489486913_mndqfelc.jpg"
alt=""><br>
<br>
上榜原因：用很黄很暴力的语言赤裸裸地介绍禁片。<br>
<br>
<strong>No.9 新浪网</strong><br>
<br>
<img src=
"http://photo15.yupoo.com/20080107/102150_208336877_apgyftbv.jpg"
alt=""><br>
<br>
上榜原因：详细介绍很黄很暴力的新闻，恶意影射全国小学校长，恶意影射全国文质彬彬的人，传播犯罪。<br>
<br>
<strong>No.8 网易</strong><br>
<br>
<img src=
"http://photo14.yupoo.com/20080107/102152_969692650_mhuxjnaw.jpg"
alt=""><br>
<br>
上榜原因：详细介绍很黄很暴力的新闻，倡导嫖娼不给钱的恶劣行为，传播犯罪。<br>
<br>
<strong>No.7 搜狐</strong><br>
<br>
<img src=
"http://photo15.yupoo.com/20080107/102156_303976690_hgpvmgjq.jpg"
alt=""><br>
<br>
上榜原因：很黄很暴力的低级新闻与黄色图片，诱使犯罪。</p>
<p>&nbsp;</p>
<p><strong>No.6 腾讯网</strong><br>
<br>
<img src=
"http://photo14.yupoo.com/20080107/102145_1602682982_slbtgawi.jpg"
alt=""><br>
<br>
上榜原因：很黄很暴力的低级新闻与黄色图片，恶意攻击女大学生，诱使犯罪。<br>
<br>
<strong>No.5 奇虎</strong><br>
<br>
<img src=
"http://photo14.yupoo.com/20080107/102144_15203047_hfxvshfn.jpg"
alt=""><br>
<br>
上榜原因：黄色网站，众望所归。<br>
<br>
<strong>No.4 人民网</strong><br>
<br>
<img src=
"http://photo14.yupoo.com/20080107/102144_828189685_vrxcbfpx.jpg"
alt=""><br>
<br>
上榜原因：还有什么好说的？一个很黄，一个很暴力。</p>
<p>&nbsp;</p>
<p><strong>No.3 百度</strong><br>
<br>
<img src=
"http://photo15.yupoo.com/20080107/102147_683703767_vfwwabtd.jpg"
alt=""><br>
<br>
上榜原因：这就是图片版的很黄很暴力吧？<br>
<br>
<strong>No.2 民政部</strong><br>
<br>
<img src=
"http://photo15.yupoo.com/20080107/102142_441103929_yilgeeoa.jpg"
alt=""><br>
<br>
上榜原因：logo.<br>
<br>
<strong>No.1 CCTV</strong><br>
<br>
<img src=
"http://photo15.yupoo.com/20080107/102143_1963183304_dhdwjbrx.jpg"
alt=""><br>
<br>
上榜原因：太黄，太暴力了！张同学关的就是这个网页吧？</p>

]]></description><guid>http://www.i170.com/Article/97440</guid><trackback:ping>http://www.i170.com/Article/97440/trackback</trackback:ping><comments>http://www.i170.com/Article/97440#comment</comments><wfw:commentRss>http://www.i170.com/Article/97440/commentRss</wfw:commentRss></item> <item><link>http://www.i170.com/Article/97437</link><title><![CDATA[异次元奢华及下一个Facebook]]></title><author>heaven</author><category>策划,商业,互联网,facebook,虚拟世界</category><pubDate>Wed, 09 Jan 2008 11:26:00  +0800</pubDate><description><![CDATA[<p>&nbsp;</p>
<p>　 “奢侈，它本身是非法情爱嫡出的孩子，是它生出了资本主义。”
德国思想家桑巴特在他一本著名著作中这样说，他将“奢侈”定义为“是任何超出必要开支的花费”。他认为正是“奢侈消费”作为动力，推动了宫廷向</p>
<table cellspacing="0" cellpadding="0" border="0" align="left"
style="margin: 10px 7px 3px 4px;">
<tbody>
<tr>
<td>
<div id="ad_position_roller_39"></div>
</td>
</tr>
</tbody>
</table>
城市、从老贵族向新贵族的之间的资本主义的生成过程，而在奢侈消费中最活跃的因素是“女人”。
<p>
　　如果桑巴特的生命能够再延长60年，到今天，让他看到虚拟世界的产生和发展，想必他一定会惊呼“奢侈，是它催生出了虚拟世界”，而这个再次改变历史的主角，似乎也是女人。</p>
<p>　　向虚拟世界移民</p>
<p>　　卡尔拉（<a target="_blank" href=
"http://topic.ccw.com.cn/corpCenter/249.html"><font color=
"#0000CC"><strong>Ca</strong></font></a>rla）
在忙完一天的工作后回到了家里，她脱掉了衣服和鞋子，打开电脑，随即进入了另外一个世界。她来到了一个热带丛林岛屿，这里有她自己的别墅，她看到她的朋友
们陆续到来，一个一个都精心修饰扮相迷人，在这座装饰豪华、配有意大利名贵家私的五星级海滨别墅中，她们要举行一场快乐的鸡尾酒会。</p>
<p>
　　千万别以为卡尔拉（Carla）是个亿万富翁，她只是一个三十岁的未婚女白领，在一家汽车零售店里做管理。上述的一切都是发生在虚拟世界，她只
是Second
life虚拟世界1100万用户中的普通一员，她在这里有自己的商店，有自己的房产，她的奢华生活全部只在一个互联网和虚拟现实技术构建的一个异次元空
间。</p>
<p>　　但是像卡尔拉（Carla）这样的女性用户已经占据Second
life虚拟世界1100万用户中的50%，但是她们会比男性花费更多的时间在上面。而且她们会花费许多金钱来维持她们异次元空间中的奢华生活，根据
Second life官方数据，至少有3000名用户在其中每年要花费2万美元。别忘了，Second
life中的首富正是一名奢华制造者，一名德籍华裔女性Anshe Chung.她在Second
life中经营地产、家居、饰品等生意，所生产的虚拟物品售价从10林登币到数万林登币不等（270林登币约合1美元），在过去的30个月里通过
Second life虚拟物品生意她已经赚到了200万美元。</p>
<p>
　　卡尔拉（Carla）的生活方式，似乎为2007年虚拟世界热潮的全球蔓延做了一个桑巴特式的说明。在满足基本生存需求之外，人们都有一个寻求
美好生活的梦想。“For a new
life”，这个当年驱使数百万大不列颠移民穿越大西洋（爱股，行情，资讯）漂泊到北美大陆的Slogan，似乎又一次发挥了魔力，鼓舞着数千万人开始向
虚拟世界移民。在印第安纳州立大学电信系副教授Edward
Castronova看来，这种从现实世界向虚拟世界的移民是一个不可扭转的趋势，当12月11日他接受BBC采访时说“诸如Second
Life等虚拟世界的出现，将会触发人们向虚拟世界移民，并终将从现实消失。”在其最新出版的著作《向虚拟世界移民》（Exodus To
The Virtual
World）中，Castronova将这一趋势与发生在公元1600年代“从大不列颠岛向北美的移民大潮”相提并论。</p>
<p>　　怀有类似看法的，并不仅仅是Edward
Castronova一人。有很多专家相信用不了多久，虚拟世界就将会广泛蔓延，并且最终取代Facebook成为最为Popular的互联网现象。对于
大多数人而言，像卡尔拉（Carla）拥有的那种虚拟世界中的“奢华生活”，已经唾手可得。我们甚至会花费比现实家庭生活更多的费用，来维护我们虚拟世界
的“奢华生活”。</p>
<p>　　赶上Facebook用不了太多的时间</p>
<p>
　　Facebook这个硅谷孕育的互联网“宠儿”，已经拥有7000万来自全球各地的用户，日上载图片量超过1000万张，月PV量高达150
亿，毫无疑问Facebook满足了人们数字化生存的胃口。但是，很多人相信3D虚拟世界将会比Facebook更加吸引人。当人们能够通过自己的虚拟形
象（Avatar）身临其境地生活在虚拟时空中的时候，他们会花费更多的时间和金钱投入其中，他们沉浸（immerse）在虚拟世界中甚至会比
Facebook最铁杆的用户更上瘾（addict）。</p>
<p>　　David Knighton，来自美国佛罗里达州杰克逊维尔市的一位Second
Life用户，只是众多浪迹虚拟世界中的普通网民的一员。他已经沉迷Second
Life一年有余。在接受美国CNN记者采访时，他表示自己非常喜欢这种异次元社交方式，“我在Second
Life遇到了一些好朋友，这些人到今天在真实世界也还和我关系不错。”</p>
<p>　　David Knighton每周七天几乎天天都要登录Second
Life，每天会在其中呆上6小时。但是到底是什么吸引着David？一般人看来似乎仅仅对于新科技的热衷和迷恋。但David并不这样以为，“体验扮演
一个角色，的确是一方面。但是Second
Life带来的更多是社交和创造层面的东西。人们注册进来，认识到这一点，马上就会被吸引。”</p>
<p>　　David的观点受到了Caleb Booker的支持。Caleb
Booker是著名的虚拟世界观察评论网站metaversed.com的发起人和主要作者之一。Booker相信虚拟世界会将我们远距离分布的社交网络
（far-flung social
networks）聚合起来。他以岳母为例说明这个问题，老太太在搬到另外一个城市生活之后，就一直用Facebook与三个女儿保持联络。但是他认为虚
拟世界（virtual
worlds）将在更为复杂的层面上实现这种互动。“当我想与我在英国和其他美国的好友小聚的时候，再也不担心交通费用了。”</p>
<p>　　他相信虚拟世界赶上Facebook并引爆流行用不了太多的时间。</p>
<p>　　《黑客帝国》还很远，技术会又一次令你震惊</p>
<p>
　　人们在Facebook、MySpace等社交网站上，仅仅能够通过文本、图片和视频来展开互动。但是在虚拟世界，人们会用更丰富的形式展开彼
此的互动。比如，自己可以有一个自己的虚拟形象、可以通过语音和视频在一个非常逼真的三维虚拟空间中，身临其境地展开交流。你可以走动，可以拉住别人的
手，可以用各种各样的姿势、动作、表情来表达自己的情绪和感受。</p>
<p>
　　3D技术的发展日益复杂，足可以使虚拟世界发生的这一切无限逼真于真实世界。甚至正在开发中的3D全息技术可以提供类似于科幻大片《星际迷航》（star
trek）中生物甲板（holodecks）的体验：你可以触摸并品尝远方的虚拟食物。</p>
<p>　　“当然，我们离《黑客帝国》那样的虚拟世界还很远。” Caleb Booker说，“但是，技术会又一次令你震惊。”</p>
<p>　　尽管非盈利性研究机构Metaverse Roadm<a target="_blank" href=
"http://wiki.ccw.com.cn/AP"><font color=
"#0000CC"><strong>ap</strong></font></a>曾
经对虚拟世界的发展轨迹做了一个轮廓式的勾勒，认为虚拟世界从现在至少需要10年左右才会走向繁荣。到2016年，才会有一半的互联网用户拥有自己的虚拟
形象avatars，那些13到30岁之间的活跃用户会每周花费10个小时的时间在3D虚拟世界中展开生活和社交。但是，目前虚拟世界的活跃程度和激发出
来的产业热情，有理由使我们将这个时间再度提前。事实上著名的研究机构Gartner已经指出，到2010年将会有80%的活跃用户进入虚拟世界。</p>
<p>　　Metaverse Roadmap也指出目前已经有数千万青少年已经进入类似Habbo Hotel
和Playdo这样的二维虚拟世界，这些人将会是未来主要的虚拟世界公民。而吸引这些小女孩、小男孩们进入虚拟世界中的原因，正是在其中有他们想要的生
活。这些孩子可能在现实生活中并没有太好的物质条件，但是他们在虚拟世界中的生活却相当富有，相当体面，而且富有异域情调。当你在Second
Life花1600美元就可以买下一个小岛，而且可以拥有自己的一座别墅和豪华游艇的时候，你为什么还要委屈自己背负沉重的贷款去月供一个尽可容身的小房
间呢？</p>

]]></description><guid>http://www.i170.com/Article/97437</guid><trackback:ping>http://www.i170.com/Article/97437/trackback</trackback:ping><comments>http://www.i170.com/Article/97437#comment</comments><wfw:commentRss>http://www.i170.com/Article/97437/commentRss</wfw:commentRss></item> <item><link>http://www.i170.com/Article/97434</link><title><![CDATA[在网上发现一些Nokia6290短信的输入技巧，还不错。]]></title><author>heaven</author><category></category><pubDate>Wed, 09 Jan 2008 10:47:55  +0800</pubDate><description><![CDATA[<p>&nbsp;</p>
<p><font size="3"><img width="336" height="373" align="right" src=
"http://www.i170.com/Attach/A58E4D2F-CDEB-448C-A8EA-084AFB8A6A55"
alt=
"">6290属于智能手机</font>，所以使用起来略有繁杂。如果是新手，懂得一些使用技巧可以少走些弯路。让手机用的更快捷，更舒服。<font size="3">&nbsp;
&nbsp;首先声明此技巧改编自N73等的通用技巧</font><br>
<font size=
"3">1、需要连续输入符号时，只须按*键调出符号输入，移动到你想要输入的符号，按几下5键然后再按确定键，就可以了，（输无敌分隔线－－－－－－－和一些表情比如^-^&nbsp;&nbsp;-_-!!!
时很方便）</font><br>
<font size="3">2、中文输入状态下，按一下1键可以输入句号。 按2下是逗号， 3下是问号？
4下是叹号！这样常用标点符号就可以快捷输入了。</font><br>
<font size="3">3、要输入哪个数字，可以不必切换输入法，直接长按那个数字就可以了，省的来回切换。</font><br>
<font size=
"3">4、按住#键不放，再按方向键上下左右实现文本编辑里的用鼠标选择涂黑，然后就可以复制粘贴了。</font><br>
<font size=
"3">5、中文输入方式下，输完拼音按＊键就会出现声调，按一次换一个声调，这样找某些字就方便多了。例如，我想输入狮子的“狮”，如果按完744出现shi以后，需要按向下键7次才能看到“狮”。如果出现shi以后，按一下*键，这时只需要按向下键两次就可以了。</font><br>

<font size=
"3">6、短信</font>输入时在中文输入状态下，按一下0是空格，两下是数字0，三下是回车换行。这个回车换行非常有用！因为一个短信里不同内容的信息换行输入就不会造成误解。<br>

<font size="3">7、写完短信后按拨号键可以直接发送。</font></p>

]]></description><guid>http://www.i170.com/Article/97434</guid><trackback:ping>http://www.i170.com/Article/97434/trackback</trackback:ping><comments>http://www.i170.com/Article/97434#comment</comments><wfw:commentRss>http://www.i170.com/Article/97434/commentRss</wfw:commentRss></item> </channel></rss> 