﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>博客园-DotNetNuke开发平台--http://www.dnnsun.com</title><link>http://www.cnblogs.com/sunwangji/</link><description>

It is only with the heart that one can see rightly... 
what is essential is invisible to the eye. 
</description><language>zh-cn</language><lastBuildDate>Sun, 07 Sep 2008 19:43:10 GMT</lastBuildDate><pubDate>Sun, 07 Sep 2008 19:43:10 GMT</pubDate><ttl>60</ttl><item><title>你需要么,dnn多语言解决方案?</title><link>http://www.cnblogs.com/sunwangji/archive/2008/05/15/1199247.html</link><dc:creator>Baldwin</dc:creator><author>Baldwin</author><pubDate>Thu, 15 May 2008 13:06:00 GMT</pubDate><guid>http://www.cnblogs.com/sunwangji/archive/2008/05/15/1199247.html</guid><wfw:comment>http://www.cnblogs.com/sunwangji/comments/1199247.html</wfw:comment><comments>http://www.cnblogs.com/sunwangji/archive/2008/05/15/1199247.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/sunwangji/comments/commentRss/1199247.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/sunwangji/services/trackbacks/1199247.html</trackback:ping><description><![CDATA[<font face="Verdana">目前dnn多语言解决方案是我这段时间研究的重点,我接下来也许会写几篇相关文章阐述这些问题.<br />
我想本地化是ASP.NET的特性,无疑dnn也会直接支持,但是事实并不是很乐观,那是因为dnn本身也只是在表面上作些文章吧了,如果你想利用dnn实现多语言Portal,那你就错了,除非你重新开发或在模块级别上支持多语言.那dnn究竟支持多语言到何种地步呢?那就是dnn默认支持的多语言只局限于页面标签(Tags,Token etc),比如登陆链接,编辑模块时的字段Label等等,并不是我们通常理解的内容本地化(多语言支持).当然你可以通过两种解决方案来实现多语言支持:<br />
1)模块级别的多语言开发,也许你的内容可能需要存储好几个版本(根据你站点支持的语言总数)<br />
2)站点级别的多语言开发,也就是你需要发布好几个站点(根据你需要支持的语言总数)<br />
目前在DNN模块市场还是有些模块真正做到了支持多语言,比如:<br />
1)MLSkinHelper, PageLocalization Module,Language Selector skin object 等等<br />
http://www.apollo-software.nl/Home/tabid/36/language/en-US/Default.aspx<br />
最经典的范例就是http://declic-video-fx.com/,它利用apollo-software相关模块实现了多语言站点,可以说基本上实现了多语言支持的所有功能.<br />
2)Localization Extensions: Easily implement multilingual portals <br />
http://www.adequation-dotnetnuke.com/en/AboutUs.aspx<br />
该站点的公司主页就是利用来实现了多语言支持,请访问http://www.adequation-informatique.com/en/Home.aspx<br />
3)这是一个免费的模块Magic Content,同时也是DNN Forget下的一个新模块,该模块属于proeder.network.consult公司.<br />
Magic Content is a multi-lingual content publishing module for the DotNetNuke plattform that can be used as a replacement for the current Text/HTML module. It's very easy to use and extends content publishing by many useful features. * one edit tab for each portal locale * advanced edit tab for role based content management * newsletter tab for sending content out via e-mail * replacement token tab.<br />
http://www.codeplex.com/MagicContent<br />
http://www.portalfabrik.net/<br />
相关链接:<br />
How to localization with dnnMenu or solpartMenu?<br />
http://www.dotnetnuke.com/Community/Forums/tabid/795/forumid/76/threadid/224072/scope/posts/Default.aspx<br />
how to localization in skin?<br />
http://www.dotnetnuke.com/Community/Forums/tabid/795/forumid/109/threadid/222245/scope/posts/Default.aspx<br />
<br />
更多信息请查看<font face="Verdana"><a href="http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/EntryID/36/Default.aspx">http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/EntryID/36/Default.aspx</a></font></font>
<img src ="http://www.cnblogs.com/sunwangji/aggbug/1199247.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42134/" target="_blank">[新闻]JavaScript将成Silverlight的最大对手?</a>]]></description></item><item><title>如何定制dnn的FckEditor</title><link>http://www.cnblogs.com/sunwangji/archive/2008/04/25/1170348.html</link><dc:creator>Baldwin</dc:creator><author>Baldwin</author><pubDate>Fri, 25 Apr 2008 00:56:00 GMT</pubDate><guid>http://www.cnblogs.com/sunwangji/archive/2008/04/25/1170348.html</guid><wfw:comment>http://www.cnblogs.com/sunwangji/comments/1170348.html</wfw:comment><comments>http://www.cnblogs.com/sunwangji/archive/2008/04/25/1170348.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/sunwangji/comments/commentRss/1170348.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/sunwangji/services/trackbacks/1170348.html</trackback:ping><description><![CDATA[<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp; 先简单介绍一下dnn里边的富文本编辑器(Rich TextEditor)的渊源,也就是我们常说的web在线编辑器,最先dnn版本是集成了FreeTextbox的,但后来由于FreeTextbox商业化了,而且本身FreeTextbox也不是特别的好用,故由于dnn本身的开源性质,最终替换了如今的FckEditor,以下就是FckEditor的一些特性:<br />
1) 多种浏览器兼容,其中包括IE 5.5+ (Windows), Firefox 1.0+, Mozilla 1.3+和Netscape 7+以上浏览器<br />
2) 支持 XHTML 1.0 <br />
3) 支持CSS <br />
4) 字体属性编辑 <br />
5) 剪切、粘贴、撤销、重复 <br />
6) 从word中粘贴文档并自动清理 格式<br />
7) 插入图片，上传图片 <br />
8) 表格编辑 <br />
9) 插入表单域及其子元素 <br />
10) 支持右键菜单 <br />
11) 可定制工具栏 <br />
12) 皮肤支持 <br />
13) 插件(Plugins)模式支持 <br />
14) 拼写检查程序 <br />
15) 多语言支持以及自动用户语言侦查。 <br />
16) 轻量级和快速 <br />
17) 自动浏览器侦查和定制 <br />
18) 支持多种编程语言,其中包括ASP，CGI，PHP，ASP.NET，Java，ColdFusion，Python等脚本<br />
19) 支持开发者安装和API编程<br />
20) 简单易用!&nbsp; <br />
21) 开源<br />
这里先着重提及如何定制dnn的FckEditor,在此之前先简单说明一下在dnn中FckEditor的目录结构,目前FckEditor在dnn是作为一个HtmlEditorProviders的形式出现的,也就是dnn已集成了FckEditor并为此提供一个默认的Providersl来管理,将来如果需要替换其他Providers的话也是及其方便的,我想这是dnn里Providers的魅力所在,开发过dnn的程序员都比较清楚,而其FckEditor的根目录就是$rootWebsite/Providers/HtmlEditorProviders/Fck,其中关系到我们如何定制FckEditor比较主要的目录就是默认的FCKeditor和dnn核心添加的Custom这两个目录,如果打开这两个目录看看,你就会比较清楚了,其实FCKeditor这里目录主要就是包含默认的FCKeditor所有的东西,比如skins,plugins,lang(语言包)等等,而Custom这是dnn对默认FCKeditor定制的一些修改配置.比如增加了dnn默认的编辑器工具栏属性:</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #000000">FCKConfig.ToolbarSets[</span><span style="color: #000000">"</span><span style="color: #000000">DNNDefault</span><span style="color: #000000">"</span><span style="color: #000000">]&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;[<br />
&nbsp;&nbsp;&nbsp;&nbsp;[</span><span style="color: #000000">'</span><span style="color: #000000">Source</span><span style="color: #000000">'</span><span style="color: #000000">,</span><span style="color: #000000">'</span><span style="color: #000000">Preview</span><span style="color: #000000">'</span><span style="color: #000000">,</span><span style="color: #000000">'</span><span style="color: #000000">-</span><span style="color: #000000">'</span><span style="color: #000000">,</span><span style="color: #000000">'</span><span style="color: #000000">Templates</span><span style="color: #000000">'</span><span style="color: #000000">],<br />
&nbsp;&nbsp;&nbsp;&nbsp;[</span><span style="color: #000000">'</span><span style="color: #000000">Cut</span><span style="color: #000000">'</span><span style="color: #000000">,</span><span style="color: #000000">'</span><span style="color: #000000">Copy</span><span style="color: #000000">'</span><span style="color: #000000">,</span><span style="color: #000000">'</span><span style="color: #000000">Paste</span><span style="color: #000000">'</span><span style="color: #000000">,</span><span style="color: #000000">'</span><span style="color: #000000">PasteText</span><span style="color: #000000">'</span><span style="color: #000000">,</span><span style="color: #000000">'</span><span style="color: #000000">PasteWord</span><span style="color: #000000">'</span><span style="color: #000000">,</span><span style="color: #000000">'</span><span style="color: #000000">-</span><span style="color: #000000">'</span><span style="color: #000000">,</span><span style="color: #000000">'</span><span style="color: #000000">Print</span><span style="color: #000000">'</span><span style="color: #000000">,</span><span style="color: #000000">'</span><span style="color: #000000">SpellCheck</span><span style="color: #000000">'</span><span style="color: #000000">],<br />
&nbsp;&nbsp;&nbsp;&nbsp;[</span><span style="color: #000000">'</span><span style="color: #000000">Undo</span><span style="color: #000000">'</span><span style="color: #000000">,</span><span style="color: #000000">'</span><span style="color: #000000">Redo</span><span style="color: #000000">'</span><span style="color: #000000">,</span><span style="color: #000000">'</span><span style="color: #000000">-</span><span style="color: #000000">'</span><span style="color: #000000">,</span><span style="color: #000000">'</span><span style="color: #000000">Find</span><span style="color: #000000">'</span><span style="color: #000000">,</span><span style="color: #000000">'</span><span style="color: #000000">Replace</span><span style="color: #000000">'</span><span style="color: #000000">,</span><span style="color: #000000">'</span><span style="color: #000000">-</span><span style="color: #000000">'</span><span style="color: #000000">,</span><span style="color: #000000">'</span><span style="color: #000000">SelectAll</span><span style="color: #000000">'</span><span style="color: #000000">,</span><span style="color: #000000">'</span><span style="color: #000000">RemoveFormat</span><span style="color: #000000">'</span><span style="color: #000000">],<br />
&nbsp;&nbsp;&nbsp;&nbsp;[</span><span style="color: #000000">'</span><span style="color: #000000">Bold</span><span style="color: #000000">'</span><span style="color: #000000">,</span><span style="color: #000000">'</span><span style="color: #000000">Italic</span><span style="color: #000000">'</span><span style="color: #000000">,</span><span style="color: #000000">'</span><span style="color: #000000">Underline</span><span style="color: #000000">'</span><span style="color: #000000">,</span><span style="color: #000000">'</span><span style="color: #000000">StrikeThrough</span><span style="color: #000000">'</span><span style="color: #000000">,</span><span style="color: #000000">'</span><span style="color: #000000">-</span><span style="color: #000000">'</span><span style="color: #000000">,</span><span style="color: #000000">'</span><span style="color: #000000">Subscript</span><span style="color: #000000">'</span><span style="color: #000000">,</span><span style="color: #000000">'</span><span style="color: #000000">Superscript</span><span style="color: #000000">'</span><span style="color: #000000">],<br />
&nbsp;&nbsp;&nbsp;&nbsp;[</span><span style="color: #000000">'</span><span style="color: #000000">OrderedList</span><span style="color: #000000">'</span><span style="color: #000000">,</span><span style="color: #000000">'</span><span style="color: #000000">UnorderedList</span><span style="color: #000000">'</span><span style="color: #000000">,</span><span style="color: #000000">'</span><span style="color: #000000">-</span><span style="color: #000000">'</span><span style="color: #000000">,</span><span style="color: #000000">'</span><span style="color: #000000">Outdent</span><span style="color: #000000">'</span><span style="color: #000000">,</span><span style="color: #000000">'</span><span style="color: #000000">Indent</span><span style="color: #000000">'</span><span style="color: #000000">],<br />
&nbsp;&nbsp;&nbsp;&nbsp;[</span><span style="color: #000000">'</span><span style="color: #000000">JustifyLeft</span><span style="color: #000000">'</span><span style="color: #000000">,</span><span style="color: #000000">'</span><span style="color: #000000">JustifyCenter</span><span style="color: #000000">'</span><span style="color: #000000">,</span><span style="color: #000000">'</span><span style="color: #000000">JustifyRight</span><span style="color: #000000">'</span><span style="color: #000000">,</span><span style="color: #000000">'</span><span style="color: #000000">JustifyFull</span><span style="color: #000000">'</span><span style="color: #000000">],<br />
&nbsp;&nbsp;&nbsp;&nbsp;[</span><span style="color: #000000">'</span><span style="color: #000000">Link</span><span style="color: #000000">'</span><span style="color: #000000">,</span><span style="color: #000000">'</span><span style="color: #000000">Unlink</span><span style="color: #000000">'</span><span style="color: #000000">,</span><span style="color: #000000">'</span><span style="color: #000000">Anchor</span><span style="color: #000000">'</span><span style="color: #000000">],<br />
&nbsp;&nbsp;&nbsp;&nbsp;[</span><span style="color: #000000">'</span><span style="color: #000000">Image</span><span style="color: #000000">'</span><span style="color: #000000">,</span><span style="color: #000000">'</span><span style="color: #000000">Flash</span><span style="color: #000000">'</span><span style="color: #000000">,</span><span style="color: #000000">'</span><span style="color: #000000">Table</span><span style="color: #000000">'</span><span style="color: #000000">,</span><span style="color: #000000">'</span><span style="color: #000000">Rule</span><span style="color: #000000">'</span><span style="color: #000000">,</span><span style="color: #000000">'</span><span style="color: #000000">Smiley</span><span style="color: #000000">'</span><span style="color: #000000">,</span><span style="color: #000000">'</span><span style="color: #000000">SpecialChar</span><span style="color: #000000">'</span><span style="color: #000000">,</span><span style="color: #000000">'</span><span style="color: #000000">PageBreak</span><span style="color: #000000">'</span><span style="color: #000000">],<br />
&nbsp;&nbsp;&nbsp;&nbsp;[</span><span style="color: #000000">'</span><span style="color: #000000">Style</span><span style="color: #000000">'</span><span style="color: #000000">,</span><span style="color: #000000">'</span><span style="color: #000000">FontFormat</span><span style="color: #000000">'</span><span style="color: #000000">],[</span><span style="color: #000000">'</span><span style="color: #000000">FontName</span><span style="color: #000000">'</span><span style="color: #000000">,</span><span style="color: #000000">'</span><span style="color: #000000">FontSize</span><span style="color: #000000">'</span><span style="color: #000000">],<br />
&nbsp;&nbsp;&nbsp;&nbsp;[</span><span style="color: #000000">'</span><span style="color: #000000">TextColor</span><span style="color: #000000">'</span><span style="color: #000000">,</span><span style="color: #000000">'</span><span style="color: #000000">BGColor</span><span style="color: #000000">'</span><span style="color: #000000">],<br />
&nbsp;&nbsp;&nbsp;&nbsp;[</span><span style="color: #000000">'</span><span style="color: #000000">FitWindow</span><span style="color: #000000">'</span><span style="color: #000000">,</span><span style="color: #000000">'</span><span style="color: #000000">-</span><span style="color: #000000">'</span><span style="color: #000000">,</span><span style="color: #000000">'</span><span style="color: #000000">About</span><span style="color: #000000">'</span><span style="color: #000000">]<br />
]&nbsp;;<br />
</span></div>
</font>&nbsp;&nbsp;&nbsp;&nbsp;更多信息... ( <font face="Verdana"><a href="http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/EntryID/32/Default.aspx">http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/EntryID/32/Default.aspx</a></font> )
<img src ="http://www.cnblogs.com/sunwangji/aggbug/1170348.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42133/" target="_blank">[新闻]没有谷歌就活不下去的四个网站</a>]]></description></item><item><title>Blog已迁移到dnnsun.com(最新DotNetNuke咨询平台)</title><link>http://www.cnblogs.com/sunwangji/archive/2008/04/08/1143107.html</link><dc:creator>Baldwin</dc:creator><author>Baldwin</author><pubDate>Tue, 08 Apr 2008 15:18:00 GMT</pubDate><guid>http://www.cnblogs.com/sunwangji/archive/2008/04/08/1143107.html</guid><wfw:comment>http://www.cnblogs.com/sunwangji/comments/1143107.html</wfw:comment><comments>http://www.cnblogs.com/sunwangji/archive/2008/04/08/1143107.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/sunwangji/comments/commentRss/1143107.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/sunwangji/services/trackbacks/1143107.html</trackback:ping><description><![CDATA[<span style="font-family: Tahoma">本blog已经好久没有更新了，但作者对dnn的热情仍然在，而且已有一定的成绩，那就是属于我们团队的站点<a style="font-family: " href="http://www.dnnsun.com">www.dnnsun.com</a> 的诞生 <br style="font-family: " />
<img style="font-family: " alt="" src="http://www.dnnsun.com/DesktopModules/SimpleRegister/images/dnnsun_Moving.gif" border="0" /><br style="font-family: " />
下边就是我最新的一些Blog文章，dnn爱好者不妨看看，一起分享:<br style="font-family: " />
<span style="color: #ff0000">1) <a style="font-family: " href="http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/EntryID/29/Default.aspx">你的dnn站点慢了么?</a> <br style="font-family: " />
2) <a style="font-family: " href="http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/EntryID/28/Default.aspx">如何定制dnn站点的网站管理和主机管理</a> <br style="font-family: " />
3) <a style="font-family: " href="http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/EntryID/27/Default.aspx">如何关联dnn脚本文件SqlDataProvider文件</a> <br style="font-family: " />
4) <a style="font-family: " href="http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/EntryID/26/Default.aspx">如何定制安装dnn</a> <br style="font-family: " />
5) <a style="font-family: " href="http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/EntryID/25/Default.aspx">再谈dnn的物尽所用(三)</a> <br style="font-family: " />
6) <a style="font-family: " href="http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/EntryID/24/Default.aspx">浅谈如何做到dnn物尽所用(二)</a> <br style="font-family: " />
7) <a style="font-family: " href="http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/EntryID/22/Default.aspx">浅谈如何做到dnn物尽所用</a> <br style="font-family: " />
8) <a style="font-family: " href="http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/EntryID/21/Default.aspx">一些值得推荐的dnn资源</a> <br style="font-family: " />
9) <a style="font-family: " href="http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/EntryID/20/Default.aspx">开发DNN模块之Utility <span style="font-family: ">* Update * </span></a><br style="font-family: " />
10) <a style="font-family: " href="http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/EntryID/19/Default.aspx">DNN模块开发应用Ajax之Utility</a> <br style="font-family: " />
11) <a id="dnn_ctr398_MainView_ViewBlog_lstBlogView_ctl01_lnkEntry" style="font-family: " href="http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/EntryID/5/Default.aspx">对DNN在国内的影响及其弊端的思考</a><br style="font-family: " />
12) <a id="dnn_ctr398_MainView_ViewBlog_lstBlogView_ctl03_lnkEntry" style="font-family: " href="http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/EntryID/2/Default.aspx">如何定制登陆页面</a> <br style="font-family: " />
13) <a id="dnn_ctr398_MainView_ViewBlog_lstBlogView_ctl00_lnkEntry" style="font-family: " href="http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/EntryID/6/Default.aspx">HTML模版显示DNN模块标题</a> <br style="font-family: " />
14) <a id="dnn_ctr398_MainView_ViewBlog_lstBlogView_ctl00_lnkEntry" style="font-family: " href="http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/EntryID/15/Default.aspx">解析DNN皮肤级别的doctype声明</a> <br style="font-family: " />
15) <span class="DNNAlignleft" id="dnn_ctr398_ContentPane" style="font-family: ; background-color: rgb(255,255,255)"><a id="dnn_ctr398_MainView_ViewBlog_lstBlogView_ctl03_lnkEntry" style="font-family: " href="http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/EntryID/17/Default.aspx">王者归来—再谈CBO</a><br style="font-family: " />
16) <span class="DNNAlignleft" id="dnn_ctr398_ContentPane" style="font-family: ; background-color: rgb(255,255,255)"><a id="dnn_ctr398_MainView_ViewBlog_lstBlogView_ctl02_lnkEntry" style="font-family: " href="http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/EntryID/18/Default.aspx">DNN特性之IMC</a><br style="font-family: " />
17) <span class="DNNAlignleft" id="dnn_ctr398_ContentPane" style="font-family: ; background-color: rgb(255,255,255)"><a id="dnn_ctr398_MainView_ViewBlog_lstBlogView_ctl00_lnkEntry" style="font-family: " href="http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/EntryID/16/Default.aspx">加速DNN的新举措</a><br style="font-family: " />
18) <span class="DNNAlignleft" id="dnn_ctr398_ContentPane" style="font-family: ; background-color: rgb(255,255,255)"><a id="dnn_ctr398_MainView_ViewBlog_lstBlogView_ctl05_lnkEntry" style="font-family: " href="http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/EntryID/11/Default.aspx">DNN Object Hydrator -- CBO解析</a><br style="font-family: " />
19) <span id="dnn_ctr398_ContentPane" style="font-family: ; background-color: rgb(255,255,255)"><a id="dnn_ctr398_MainView_ViewBlog_lstBlogView_ctl04_lnkEntry" style="font-family: " href="http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/EntryID/12/Default.aspx">一些DNN须知的技巧</a><br style="font-family: " />
20) <span class="DNNAlignleft" id="dnn_ctr398_ContentPane" style="font-family: ; background-color: rgb(255,255,255)"><a id="dnn_ctr398_MainView_ViewBlog_lstBlogView_ctl01_lnkEntry" style="font-family: " href="http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/EntryID/13/Default.aspx">DNN Blog修改日志(优化及扩展)</a></span></span></span></span></span></span></span><span class="DNNAlignleft" id="dnn_ctr398_ContentPane" style="font-family: ; background-color: rgb(255,255,255)"><span class="DNNAlignleft" id="dnn_ctr398_ContentPane" style="font-family: ; background-color: rgb(255,255,255)"><span class="DNNAlignleft" id="dnn_ctr398_ContentPane" style="font-family: ; background-color: rgb(255,255,255)"><span class="DNNAlignleft" id="dnn_ctr398_ContentPane" style="font-family: ; background-color: rgb(255,255,255)"><span id="dnn_ctr398_ContentPane" style="font-family: ; background-color: rgb(255,255,255)"><span class="DNNAlignleft" id="dnn_ctr398_ContentPane" style="font-family: ; background-color: rgb(255,255,255)"><br style="font-family: " />
<br style="font-family: " />
等等...<br style="font-family: " />
</span></span><br style="font-family: " />
</span><br style="font-family: " />
</span><br style="font-family: " />
</span><br style="font-family: " />
</span></span>
<img src ="http://www.cnblogs.com/sunwangji/aggbug/1143107.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42132/" target="_blank">[新闻]Google 10周岁生日</a>]]></description></item><item><title>再论call和apply</title><link>http://www.cnblogs.com/sunwangji/archive/2007/06/26/791428.html</link><dc:creator>Baldwin</dc:creator><author>Baldwin</author><pubDate>Tue, 26 Jun 2007 11:31:00 GMT</pubDate><guid>http://www.cnblogs.com/sunwangji/archive/2007/06/26/791428.html</guid><wfw:comment>http://www.cnblogs.com/sunwangji/comments/791428.html</wfw:comment><comments>http://www.cnblogs.com/sunwangji/archive/2007/06/26/791428.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.cnblogs.com/sunwangji/comments/commentRss/791428.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/sunwangji/services/trackbacks/791428.html</trackback:ping><description><![CDATA[<div style="font-family: 微软雅黑">
<p style="color: #000000">因为继续研究Ajax Framework的原因，更多的接触了call和apply。<br />
故再次论述call和apply，<br />
1)无疑关于call，最简单的解释就是：把隐藏的第一个参数显示化。因为通常一个函数(Function)的调用，会有一个额外的隐藏参数，就是函数(Function)所属的对象(如果没有所特指，则为global（如window）对象)，在函数内你可用this关键字访问之。<br />
从call的构造式 -- call(thisArg[,arg1,arg2&#8230;] ]);可看出<br />
call(apply)方法可将一个函数的对象上下文(Function Context)从初始的上下文改变为由 thisObj 指定的新对象,这就是利用call(apply)的最大优势。说到此，我们不妨提提所谓的Function Context到底是为何物。先看看下面FunctionContextDemo:</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; margin-left: 10px; border-left: #cccccc 1px solid; width: 73.6%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; height: 220px"><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;changed</span><span style="color: #000000">=</span><span style="color: #000000">{&nbsp;item:</span><span style="color: #000000">"</span><span style="color: #000000">banana</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;act:&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">eating</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;};<br />
</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;original</span><span style="color: #000000">=</span><span style="color: #000000">{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;item:&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">chair</span><span style="color: #000000">"</span><span style="color: #000000">,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;act:&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">sitting&nbsp;in</span><span style="color: #000000">"</span><span style="color: #000000">,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ask:&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">(){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">who's&nbsp;been&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">+</span><span style="color: #0000ff">this</span><span style="color: #000000">.act</span><span style="color: #000000">+</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;my&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">+</span><span style="color: #0000ff">this</span><span style="color: #000000">.item;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
};<br />
alert(</span><span style="color: #000000">"</span><span style="color: #000000">Original&nbsp;:&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;original.ask());<br />
alert(</span><span style="color: #000000">"</span><span style="color: #000000">Not&nbsp;so&nbsp;simple,that&nbsp;have&nbsp;been&nbsp;changed&nbsp;to:&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;original.ask.call(changed));</span></div>
<p style="color: #000000">解析上述代码：<br />
最初存在2个对象changed和original，changed即就是一个数组，分别有item和act属性，而original除了具有和changed一样的item和act属性，还具有一个ask函数（询问到底是谁坐在椅子上）,故当调用original.ask()时，可以看到意料中的结果:<span style="color: red">who's been sitting in my chair</span>.而仔细往下看，当我们调用original.ask.call(changed)时，你觉得会出现什么的结果呢？在此，是利用了call把original的方法（函数)ask给与changed对象来执行，原来changed是没有ask方法（函数),如此绑定之后，函数的对象上下文(Function Context)即就是changed对象，故在方法（函数)ask里所调用的this就应该是changed对象，则可推知original.ask.call(changed)的结果应该是：<span style="color: red">who's been eating my banana</span>.</p>
<p style="color: #000000">通过FunctionContextdemo例子可看出如果我们需要在编程过程中需要替换函数的对象上下文(Function Context)，call就是不错的选择。<br />
你可以试着把FunctionContextdemo例子修改如下,再看看是什么结果:<br />
var changed={ item:"banana", act: "eating" };<br />
var original={item: "chair",act: "sitting in"};<br />
function ask(){<br />
&nbsp;&nbsp; return "who's been "+this.act+" my "+this.item;<br />
}<br />
alert("Original : " + ask.call(original));<br />
alert("changed: " + ask.call(changed));</p>
<p style="color: #000000">2)javascript如何利用call来模拟面向对象中的继承的，而且可以实现多重继承<br />
</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; margin-left: 10px; border-left: #cccccc 1px solid; width: 41.24%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; height: 483px"><span style="color: #008000">//</span><span style="color: #008000">&nbsp;多重继承</span><span style="color: #008000"><br />
</span><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;base1()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.member&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;base1_Member</span><span style="color: #000000">"</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.showSelf&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;window.alert(</span><span style="color: #0000ff">this</span><span style="color: #000000">.member);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
}<br />
</span><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;base2()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.person&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;base2_Member</span><span style="color: #000000">"</span><span style="color: #000000">;<br />
&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.act&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;is&nbsp;dancing&nbsp;happily</span><span style="color: #000000">"</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.showAction&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;window.alert(</span><span style="color: #0000ff">this</span><span style="color: #000000">.person&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.act);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
}<br />
</span><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;extend()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;base1.call(</span><span style="color: #0000ff">this</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;base2.call(</span><span style="color: #0000ff">this</span><span style="color: #000000">);<br />
}<br />
window.onload</span><span style="color: #000000">=</span><span style="color: #0000ff">function</span><span style="color: #000000">(){<br />
&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;demo&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;extend();<br />
&nbsp;&nbsp;&nbsp;demo.showSelf();<br />
&nbsp;&nbsp;&nbsp;demo.showAction();<br />
}</span></div>
<p style="color: #000000">但仔细深入看看，这样的继承是有问题的，直接在类函数体里面定义成员方法，将导致每个实例都有副本，重复占用了内存。 <br />
最为优雅简洁的方式应该算是基于原型（prototype）继承。<br />
3)接下来我们再次来看看javascript框架prototype里是如何利用apply来创建一个定义类的模式：<br />
var Class = {<br />
&nbsp; create: function() {<br />
&nbsp;&nbsp;&nbsp; return function() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.initialize.apply(this, arguments);<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp; }<br />
};<br />
解析：<br />
从代码看,该对象仅包含一个方法：Create，其返回一个函数，即类。但这也同时是类的构造函数，其中调用initialize，而这个方法是在类创建时定义的初始化函数,如此就可以实现prototype中的类创建模式.目的是规定如此一个类创建模式，让类的初始化函数名一定是initialize（），而this.initialize.apply(this, arguments);（令人有些费解）则是保证initialize一定会在类的实例创建后调用，既方便管理又体现Object-Oriented的思想。</p>
<p style="color: #000000">注意: 里边的this其实是同一对象,即相当于类本身调用自己的构造函数来创建Class对象! 因为apply方法的第二个参数本身要求是一个数组,所以传递给该函数的参数也传递给类的initialize方法,如果直接写为 this.initialize(arguments); 则所有的参数是作为一个数组传递给了initialize构造函数。</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; margin-left: 10px; border-left: #cccccc 1px solid; width: 32.67%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; height: 253px"><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;vehicle</span><span style="color: #000000">=</span><span style="color: #000000">Class.create();<br />
vehicle.prototype</span><span style="color: #000000">=</span><span style="color: #000000">{<br />
&nbsp;&nbsp;&nbsp;&nbsp;initialize:</span><span style="color: #0000ff">function</span><span style="color: #000000">(type){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.type</span><span style="color: #000000">=</span><span style="color: #000000">type;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;showSelf:</span><span style="color: #0000ff">function</span><span style="color: #000000">(){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert(</span><span style="color: #000000">"</span><span style="color: #000000">this&nbsp;vehicle&nbsp;is&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.type);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
}<br />
<br />
</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;moto</span><span style="color: #000000">=</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;vehicle(</span><span style="color: #000000">"</span><span style="color: #000000">Moto</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
moto.showSelf(); </span></div>
<p style="color: #000000">4) 活用apply（javascript框架prototype的事件绑定）:<br />
Function.prototype.bind = function() {<br />
&nbsp; var __method = this;&nbsp; <br />
&nbsp; var args = $A(arguments);&nbsp; <br />
&nbsp; var object = args.shift();<br />
&nbsp; return function() {&nbsp; <br />
&nbsp;&nbsp;&nbsp; // 调用函数的apply方法执行函数, 其中的object为目标对象, args为bind方法中的参数列表(除了第一个参数以外的参数构成的数组)<br />
&nbsp;&nbsp;&nbsp; return __method.apply(object, args.concat($A(arguments)));// 事实上, 这里的$A(arguments)一定是一个空数组<br />
&nbsp; }<br />
}<br />
代码解析:<br />
该bind用途在于将某个函数绑定到特定的函数去执行，<br />
a) var __method = this;这首先把Function Context重新赋值到一个本地变量，使得在Closure（这是一个javascript的特性,可解释为"闭包")中都能访问到，如此在下边就可以方便获取了。它实质就是bind方法的调用者, 是一个函数对象。<br />
b) var args = $A(arguments);这里因为arguments本就是一个类数组的对象，通过$A(arguments)将传入到bind方法的参数都转化为array.<br />
c) var object = args.shift();通过截取args的第一个参数获取Target Object(目标对象),此时args为除了第一个参数以外的参数构成的数组（array）<br />
d) 这是最关键的一步，返回一个新的函数对象（不带有任何的参数的函数），在此通过apply把__method（bind方法的调用者）绑定到Target Object(目标对象)，并给与除了Target Object(目标对象)之外的所有参数构成的数组args.concat($A(arguments))，最终Target Object(目标对象)就可执行__method了。<br />
如此费劲周折的绑定某一个函数所换来的优势是，从此你不需要顾及Function Context的混乱所带来的额外顾虑。</p>
</div>
<img src ="http://www.cnblogs.com/sunwangji/aggbug/791428.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42131/" target="_blank">[新闻]祝Google 10周岁生日快乐</a>]]></description></item><item><title>MarqueeNews2.2发布</title><link>http://www.cnblogs.com/sunwangji/archive/2007/06/21/790939.html</link><dc:creator>Baldwin</dc:creator><author>Baldwin</author><pubDate>Thu, 21 Jun 2007 01:47:00 GMT</pubDate><guid>http://www.cnblogs.com/sunwangji/archive/2007/06/21/790939.html</guid><wfw:comment>http://www.cnblogs.com/sunwangji/comments/790939.html</wfw:comment><comments>http://www.cnblogs.com/sunwangji/archive/2007/06/21/790939.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.cnblogs.com/sunwangji/comments/commentRss/790939.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/sunwangji/services/trackbacks/790939.html</trackback:ping><description><![CDATA[摘要: DNN Extendable Module....&nbsp;&nbsp;<a href='http://www.cnblogs.com/sunwangji/archive/2007/06/21/790939.html'>阅读全文</a><img src ="http://www.cnblogs.com/sunwangji/aggbug/790939.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42130/" target="_blank">[新闻]Google十年市值达1500亿美元 创造奇迹</a>]]></description></item><item><title>ControlPanel研究系列二：简单Ajax模式的ControlPanel(SimplAjax)</title><link>http://www.cnblogs.com/sunwangji/archive/2007/01/17/622067.html</link><dc:creator>Baldwin</dc:creator><author>Baldwin</author><pubDate>Wed, 17 Jan 2007 14:25:00 GMT</pubDate><guid>http://www.cnblogs.com/sunwangji/archive/2007/01/17/622067.html</guid><wfw:comment>http://www.cnblogs.com/sunwangji/comments/622067.html</wfw:comment><comments>http://www.cnblogs.com/sunwangji/archive/2007/01/17/622067.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnblogs.com/sunwangji/comments/commentRss/622067.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/sunwangji/services/trackbacks/622067.html</trackback:ping><description><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;自从上次写了点关于ControlPanel的一些简单介绍后，由于懒惰的原因，一直没有在提笔写ControlPanel的研究心得了，惭愧啊！<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;请参看ControlPanel研究系列一：<a href="http://www.cnblogs.com/sunwangji/archive/2005/08/13/213786.html" target=_blank>简单引入控制窗格(ControlPanel)<br></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;现在DNN已经升级到了4.4.0版本了，我只能奋起直追了，大家都知道，DNN在引入了asp.net 2.0框架后已经优化了很多，自然<br>功能及其相关的业务更是有所完善了，ClientAPI的重写更是可以让DNN注入了最热火的Ajax技术的应用。经过对ClientAPI的略为研究，我也不免手痒痒了，于是我最先入手就是尝试ControlPanel的修改，使其支持Ajax的应用。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;我把原先的classic.ascx进行修改，现把其文件名改为SimplAjax，这是必然的， ：）<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="COLOR: red">首先声明，此版本只针对4.3.5以上的DNN框架。当然你也可以修改符合你的DNN版本，下载中含有源代码。<img src="http://www.cnblogs.com/CuteSoft_Client/CuteEditor/images/emgift.gif" align=absMiddle border=0></span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;为了支持dnn的Ajax应用，必须实现接口IClientAPICallbackEventHandler，该接口需要实现函数</p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; HEIGHT: 70px; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #0000ff">Public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">Function</span><span style="COLOR: #000000">&nbsp;RaiseClientAPICallbackEvent(</span><span style="COLOR: #0000ff">ByVal</span><span style="COLOR: #000000">&nbsp;eventArgument&nbsp;</span><span style="COLOR: #0000ff">As</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">String</span><span style="COLOR: #000000">)&nbsp;</span><span style="COLOR: #0000ff">As</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">String</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">Implements</span><span style="COLOR: #000000">&nbsp;DotNetNuke.UI.Utilities.IClientAPICallbackEventHandler.RaiseClientAPICallbackEvent<br>&nbsp;</span><span style="COLOR: #008000">'</span><span style="COLOR: #008000">TO&nbsp;DO&nbsp;Somthings</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">End&nbsp;Function</span></div>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;接下来，就是考虑你需要实现怎样的功能了，在此因为classic.ascx就是一个DNN自带最为简单方便的ControlPanel，所具有的功能就是添加模块，编辑页面等相关操作，其中具有当你在下拉框选中需要模块时，你可查看该模块的一些描述信息以便知道其具体功能应用。只是每次你查看时都需要刷新页面一次，而现在我就想把这次页面刷新页面给免了，让DNN的Ajax来实现。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;好，现在开始来实现我们需要的业务代码。主要有注册脚本和激发回传信息事件，具体代码如下：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">'</span><span style="COLOR: #008000">''&nbsp;&lt;summary&gt;</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">'</span><span style="COLOR: #008000">''&nbsp;注册脚本</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">'</span><span style="COLOR: #008000">''&nbsp;&lt;/summary&gt;</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">'</span><span style="COLOR: #008000">''&nbsp;&lt;remarks&gt;&lt;/remarks&gt;</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">Private</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">Sub</span><span style="COLOR: #000000">&nbsp;RegisterScript()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">'</span><span style="COLOR: #008000">these&nbsp;won't&nbsp;be&nbsp;necessary&nbsp;in&nbsp;next&nbsp;release&nbsp;after&nbsp;3.2.0</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">If</span><span style="COLOR: #000000">&nbsp;ClientAPI.BrowserSupportsFunctionality(ClientAPI.ClientFunctionality.XMLHTTP)&nbsp;_<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">AndAlso</span><span style="COLOR: #000000">&nbsp;ClientAPI.BrowserSupportsFunctionality(ClientAPI.ClientFunctionality.XML)&nbsp;</span><span style="COLOR: #0000ff">Then</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ClientAPI.RegisterClientReference(</span><span style="COLOR: #0000ff">Me</span><span style="COLOR: #000000">.Page,&nbsp;ClientAPI.ClientNamespaceReferences.dnn_xml)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ClientAPI.RegisterClientReference(</span><span style="COLOR: #0000ff">Me</span><span style="COLOR: #000000">.Page,&nbsp;ClientAPI.ClientNamespaceReferences.dnn_xmlhttp)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">'</span><span style="COLOR: #008000">Only&nbsp;this&nbsp;line&nbsp;will&nbsp;be&nbsp;necessary&nbsp;after&nbsp;3.2</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">Dim</span><span style="COLOR: #000000">&nbsp;cbReference&nbsp;</span><span style="COLOR: #0000ff">As</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">String</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;ClientAPI.GetCallbackEventReference(</span><span style="COLOR: #0000ff">Me</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">arg</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">successFunc</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">ctx</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">errorFunc</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">Dim</span><span style="COLOR: #000000">&nbsp;callbackScript&nbsp;</span><span style="COLOR: #0000ff">As</span><span style="COLOR: #000000">&nbsp;StringBuilder&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">New</span><span style="COLOR: #000000">&nbsp;StringBuilder<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;callbackScript.Append(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;function&nbsp;StartAsynCall(arg,ctx)&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;callbackScript.Append(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;{&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;callbackScript.Append(cbReference)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;callbackScript.Append(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;}&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Page.ClientScript.RegisterClientScriptBlock(</span><span style="COLOR: #0000ff">Me</span><span style="COLOR: #000000">.GetType(),&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">CallServer</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;callbackScript.ToString,&nbsp;</span><span style="COLOR: #0000ff">True</span><span style="COLOR: #000000">)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">Me</span><span style="COLOR: #000000">.imgHelpShow.Attributes.Add(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">onclick</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">AsynCallProcess('</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">Me</span><span style="COLOR: #000000">.ClientID&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">')</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">Me</span><span style="COLOR: #000000">.cboDesktopModules.Attributes.Add(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">onchange</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">javascript:toggleInfos();</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ClientAPI.RegisterClientVariable(Page,&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">ctx</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #0000ff">Me</span><span style="COLOR: #000000">.ClientID,&nbsp;</span><span style="COLOR: #0000ff">True</span><span style="COLOR: #000000">)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ClientAPI.RegisterClientVariable(Page,&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">appPath</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #0000ff">Me</span><span style="COLOR: #000000">.ClientID,&nbsp;</span><span style="COLOR: #0000ff">True</span><span style="COLOR: #000000">)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">End</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">If</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">End&nbsp;Sub</span><span style="COLOR: #000000"><br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">'</span><span style="COLOR: #008000">''&nbsp;&lt;summary&gt;</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">'</span><span style="COLOR: #008000">''&nbsp;激发回传信息事件</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">'</span><span style="COLOR: #008000">''&nbsp;&lt;/summary&gt;</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">'</span><span style="COLOR: #008000">''&nbsp;&lt;param&nbsp;name="eventArgument"&gt;&lt;/param&gt;</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">'</span><span style="COLOR: #008000">''&nbsp;&lt;returns&gt;&lt;/returns&gt;</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">'</span><span style="COLOR: #008000">''&nbsp;&lt;remarks&gt;&lt;/remarks&gt;</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">Public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">Function</span><span style="COLOR: #000000">&nbsp;RaiseClientAPICallbackEvent(</span><span style="COLOR: #0000ff">ByVal</span><span style="COLOR: #000000">&nbsp;eventArgument&nbsp;</span><span style="COLOR: #0000ff">As</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">String</span><span style="COLOR: #000000">)&nbsp;</span><span style="COLOR: #0000ff">As</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">String</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">Implements</span><span style="COLOR: #000000">&nbsp;DotNetNuke.UI.Utilities.IClientAPICallbackEventHandler.RaiseClientAPICallbackEvent<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">Return</span><span style="COLOR: #000000">&nbsp;GetModuleInfos(eventArgument)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">End&nbsp;Function</span></div>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 不知你是否注意到在实现接口函数RaiseClientAPICallbackEvent时调用的GetModuleInfos(eventArgument)？该函数就是进行回传服务器信息（即获取的模块信息）到客户端，而在客户端，通过已注册的脚本函数successFunc进行处理所回传的信息。<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #008000">'</span><span style="COLOR: #008000">''&nbsp;&lt;summary&gt;</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">'</span><span style="COLOR: #008000">''&nbsp;获取模块的简单描述信息</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">'</span><span style="COLOR: #008000">''&nbsp;&lt;/summary&gt;</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">'</span><span style="COLOR: #008000">''&nbsp;&lt;param&nbsp;name="sModuleId"&gt;模块Id&lt;/param&gt;</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">'</span><span style="COLOR: #008000">''&nbsp;&lt;returns&gt;&lt;/returns&gt;</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">'</span><span style="COLOR: #008000">''&nbsp;&lt;remarks&gt;&lt;/remarks&gt;</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">Private</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">Function</span><span style="COLOR: #000000">&nbsp;GetModuleInfos(</span><span style="COLOR: #0000ff">ByVal</span><span style="COLOR: #000000">&nbsp;sModuleId&nbsp;</span><span style="COLOR: #0000ff">As</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">String</span><span style="COLOR: #000000">)&nbsp;</span><span style="COLOR: #0000ff">As</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">String</span><span style="COLOR: #000000"><br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">Dim</span><span style="COLOR: #000000">&nbsp;modulesInfo&nbsp;</span><span style="COLOR: #0000ff">As</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">String</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">""</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">Try</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">Dim</span><span style="COLOR: #000000">&nbsp;objDesktopModules&nbsp;</span><span style="COLOR: #0000ff">As</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">New</span><span style="COLOR: #000000">&nbsp;DesktopModuleController<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">Dim</span><span style="COLOR: #000000">&nbsp;objDesktopModule&nbsp;</span><span style="COLOR: #0000ff">As</span><span style="COLOR: #000000">&nbsp;DesktopModuleInfo<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;objDesktopModule&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;objDesktopModules.GetDesktopModule(Int32.Parse(sModuleId))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">If</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">Not</span><span style="COLOR: #000000">&nbsp;objDesktopModule&nbsp;</span><span style="COLOR: #0000ff">Is</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">Nothing</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">Then</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;modulesInfo&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;objDesktopModule.Description<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">End</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">If</span><span style="COLOR: #000000"><br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">Catch</span><span style="COLOR: #000000">&nbsp;exc&nbsp;</span><span style="COLOR: #0000ff">As</span><span style="COLOR: #000000">&nbsp;Exception&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">'</span><span style="COLOR: #008000">Module&nbsp;failed&nbsp;to&nbsp;load</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ProcessModuleLoadException(</span><span style="COLOR: #0000ff">Me</span><span style="COLOR: #000000">,&nbsp;exc)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">End</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">Try</span><span style="COLOR: #000000"><br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">Return</span><span style="COLOR: #000000">&nbsp;modulesInfo<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">End&nbsp;Function</span></div>
<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000">&nbsp;successFunc(result,&nbsp;ctx)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000">&nbsp;oDiv&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;dnn.dom.getById('divDescription');<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(oDiv.style.display&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;'none')&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;oDiv.style.display&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;'block';<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000">&nbsp;oInfo&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;dnn.dom.getById(ctx&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;'_lblDescription');&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;oInfo.innerHTML&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;result;<br>&nbsp;&nbsp;&nbsp;&nbsp;dnn.dom.getById(ctx&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;'_imgHelpShow').src&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">/dnndev/images/reset.gif</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br>}</span></div>
&nbsp;&nbsp;&nbsp; 到此，整个回调过程就算结束了。<br>&nbsp;&nbsp;&nbsp; demo:<br>&nbsp;&nbsp;&nbsp; 回调前：<br>&nbsp;&nbsp;&nbsp; <img src="http://www.cnblogs.com/images/cnblogs_com/sunwangji/Snap2.gif" border=0><br>&nbsp;&nbsp;&nbsp;后调后：<br>&nbsp;&nbsp;&nbsp;<img src="http://www.cnblogs.com/images/cnblogs_com/sunwangji/Snap1.gif" border=0><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;当然，这只是我的一个简单在DNN使用ClientAPI的尝试。我还将开发出全新的ControlPanel，现在还在测试中，demo:<br><img src="http://www.cnblogs.com/images/cnblogs_com/sunwangji/Snap3.gif" border=0><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;下载地址：<a href="http://www.dnnsun.com/FreeDownload/tabid/59/Default.aspx">http://www.dnnsun.com/FreeDownload/tabid/59/Default.aspx</a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;这是简单的安装步骤：<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1 把SimpleAjax.ascx.vb&nbsp; SimpleAjax.ascx&nbsp; SimpleAjax.js SimpleAjax.css四个文件拷贝到$yourDNNRoot\Website\admin\ControlPanel文件下<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2 把SimpleAjax.ascx.resx SimpleAjax.ascx.zh-CN.resx拷贝到$yourDNNRoot\Website\admin\ControlPanel、App_LocalResources文件下<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3&nbsp; 以host用户登录，在主机管理（Host）下选择SQL服务（SQL），将下边代码拷贝并粘贴到框内，把当作脚本运行选项打勾，点击执行。&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; INSERT {databaseOwner}{objectQualifier}ModuleControls<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(ControlKey,&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ControlSrc,&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ControlType)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;VALUES<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;('CONTROLPANEL:BaldwiBar',&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'Admin/ControlPanel/BaldwiBar.ascx',<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-3)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 如图：<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="http://www.cnblogs.com/images/cnblogs_com/sunwangji/Snap4.gif" border=0><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;注意：把当作脚本运行选项打勾。 ：）<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4 在主机管理（Host）下选择主机管理，再选择高级设置下的其他设置，其中有控制窗格选项，在其下拉菜单下选择SimpleAjax，最后更新即可<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="http://www.cnblogs.com/images/cnblogs_com/sunwangji/Snap5.gif" border=0><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;如有不清楚之处，请告知.....&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><br>
 <img src ="http://www.cnblogs.com/sunwangji/aggbug/622067.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42129/" target="_blank">[新闻]GMail:回过头来支持IE6</a>]]></description></item><item><title>动态显示更多信息(toggle_visible函数的运用)</title><link>http://www.cnblogs.com/sunwangji/archive/2006/09/01/492425.html</link><dc:creator>Baldwin</dc:creator><author>Baldwin</author><pubDate>Fri, 01 Sep 2006 09:04:00 GMT</pubDate><guid>http://www.cnblogs.com/sunwangji/archive/2006/09/01/492425.html</guid><wfw:comment>http://www.cnblogs.com/sunwangji/comments/492425.html</wfw:comment><comments>http://www.cnblogs.com/sunwangji/archive/2006/09/01/492425.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://www.cnblogs.com/sunwangji/comments/commentRss/492425.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/sunwangji/services/trackbacks/492425.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span>&nbsp;当你需要显示很多信息</span><span>,</span><span>可页面却再没有足够的空间可以容纳的时候</span><span>,</span><span>你一般会如何解决类似问题呢</span><span>?</span><span>或硬塞进页面而不管是否美观简洁么</span><span>?</span><span>还是就让用户不断拉动滚动栏而不管用户是否觉得麻烦</span><span>?</span><span>还是增建新页面而迫使用户去不耐烦在不同页面之间跳转呢</span><span>?</span><span>我想如果你使真的想作一个美观而简洁的</span><span>Web</span><span>网站的话</span><span>,</span><span>上述提到的想法应该在你脑海中一闪而过时就应该被否定的</span><span>!</span><span>而在同一个页面动态的显示信息的想法无疑是一个不错的主意</span><span>,</span><span>在此我提供两种实现类似效果的代码</span><span>:
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #008000">&lt;!--</span><span style="COLOR: #008000">简单的动态显示<br>SimpleToggleVisibleElement.html<br></span><span style="COLOR: #008000">--&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">html</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">head</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">script&nbsp;</span><span style="COLOR: #ff0000">type</span><span style="COLOR: #0000ff">='text/javascript'</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">function</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;toggle_visible&nbsp;(elName)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">var</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;el&nbsp;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">=</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;document.getElementById&nbsp;(elName);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">var</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;isVisible&nbsp;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">=</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;(el.style.visibility&nbsp;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">==</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">hidden</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">)&nbsp;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">?</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;</span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">true</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;:&nbsp;</span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">false</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;el.style.visibility&nbsp;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">=</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;isVisible&nbsp;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">?</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">visible</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;:&nbsp;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">hidden</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;el.style.display&nbsp;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">=</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;isVisible&nbsp;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">?</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">inline</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;:&nbsp;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">none</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">script</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">head</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">body</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">table&nbsp;</span><span style="COLOR: #ff0000">border</span><span style="COLOR: #0000ff">=0&nbsp;</span><span style="COLOR: #ff0000">width</span><span style="COLOR: #0000ff">="35%"</span><span style="COLOR: #ff0000">&nbsp;cellpadding</span><span style="COLOR: #0000ff">="3"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">tr</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">td&nbsp;</span><span style="COLOR: #ff0000">bgcolor</span><span style="COLOR: #0000ff">="#404080"</span><span style="COLOR: #ff0000">&nbsp;onclick</span><span style="COLOR: #0000ff">="toggle_visible('divQOTD');"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">font&nbsp;</span><span style="COLOR: #ff0000">color</span><span style="COLOR: #0000ff">="#FFFFFF"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Quote&nbsp;of&nbsp;the&nbsp;Day<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">font</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">td</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">tr</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">tr</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">td&nbsp;</span><span style="COLOR: #ff0000">bgcolor</span><span style="COLOR: #0000ff">="#E0E0E0"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">div&nbsp;</span><span style="COLOR: #ff0000">id</span><span style="COLOR: #0000ff">="divQOTD"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">em</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">"Outside&nbsp;of&nbsp;a&nbsp;dog,&nbsp;a&nbsp;book&nbsp;is&nbsp;man's&nbsp;best&nbsp;friend.&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Inside&nbsp;of&nbsp;a&nbsp;dog&nbsp;it's&nbsp;too&nbsp;dark&nbsp;to&nbsp;read."</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">em</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--&nbsp;Groucho&nbsp;Marx</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">br</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">div</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">td</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">tr</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">table</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">body</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">html</span><span style="COLOR: #0000ff">&gt;</span></div>
注意:上边代码el.style.display必须设置,不然即使你设置了el.style.visibility属性,那原先该块状元素所占有的区域并未释放,虽然它已不可见!而设置了el.style.display则可空出了需要的空间,如此才达到我们的目的! ^_^<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #008000">&lt;!--</span><span style="COLOR: #008000">利用dl&nbsp;dt&nbsp;dd&nbsp;及image动态显示信息<br>ImageToggleVisibleElement.html<br></span><span style="COLOR: #008000">--&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">html</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">head</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">style</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #800000; BACKGROUND-COLOR: #f5f5f5"><br>dl</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">{</span><span style="COLOR: #ff0000; BACKGROUND-COLOR: #f5f5f5">margin-top</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">:</span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">0px</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">;</span><span style="COLOR: #ff0000; BACKGROUND-COLOR: #f5f5f5">margin-bottom</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">:</span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">0px</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">}</span><span style="COLOR: #800000; BACKGROUND-COLOR: #f5f5f5"><br>ul</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">{</span><span style="COLOR: #ff0000; BACKGROUND-COLOR: #f5f5f5">&nbsp;margin-left</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">:</span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">-12px</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">}</span><span style="COLOR: #800000; BACKGROUND-COLOR: #f5f5f5"><br>li</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">{</span><span style="COLOR: #ff0000; BACKGROUND-COLOR: #f5f5f5">&nbsp;list-style</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">:</span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">&nbsp;url("arrow.gif")</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">}</span><span style="COLOR: #800000; BACKGROUND-COLOR: #f5f5f5">&nbsp;<br>dt</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">{</span><span style="COLOR: #ff0000; BACKGROUND-COLOR: #f5f5f5">&nbsp;background-color</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">:</span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">&nbsp;#000000</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">;</span><span style="COLOR: #ff0000; BACKGROUND-COLOR: #f5f5f5">padding-left</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">:</span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">5px</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">;</span><span style="COLOR: #ff0000; BACKGROUND-COLOR: #f5f5f5">padding-top</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">:</span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">2px</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">;</span><span style="COLOR: #ff0000; BACKGROUND-COLOR: #f5f5f5">padding-bottom</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">:</span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">2px</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">;</span><span style="COLOR: #ff0000; BACKGROUND-COLOR: #f5f5f5">color</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">:</span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">#ff9900</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">}</span><span style="COLOR: #800000; BACKGROUND-COLOR: #f5f5f5"><br></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">style</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">script&nbsp;</span><span style="COLOR: #ff0000">type</span><span style="COLOR: #0000ff">='text/javascript'</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000; BACKGROUND-COLOR: #f5f5f5">//</span><span style="COLOR: #008000; BACKGROUND-COLOR: #f5f5f5">折叠标题</span><span style="COLOR: #008000; BACKGROUND-COLOR: #f5f5f5"><br></span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">function</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;toggleTitle(oTitle,oImage,me){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">if</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">(&nbsp;oTitle.style.display&nbsp;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">==</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">none</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000; BACKGROUND-COLOR: #f5f5f5">//</span><span style="COLOR: #008000; BACKGROUND-COLOR: #f5f5f5">oTitle.style.display="inline";</span><span style="COLOR: #008000; BACKGROUND-COLOR: #f5f5f5"><br></span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;oTitle.style.display</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">=</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">""</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;oImage.src&nbsp;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">=</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">blueup.gif</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;me.title&nbsp;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">=</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">单击此处可以折叠显示信息</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">else</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;oTitle.style.display&nbsp;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">=</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">none</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;oImage.src&nbsp;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">=</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">bluedrop.gif</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;me.title&nbsp;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">=</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">单击此处可以展开显示信息</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">script</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">head</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">body</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">table&nbsp;</span><span style="COLOR: #ff0000">width</span><span style="COLOR: #0000ff">="35%"</span><span style="COLOR: #ff0000">&nbsp;bgcolor</span><span style="COLOR: #0000ff">="#E0E0E0"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">tr</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">td</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">dl</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">dt&nbsp;</span><span style="COLOR: #ff0000">onclick</span><span style="COLOR: #0000ff">="toggleTitle(content_01,img_01,this);"</span><span style="COLOR: #ff0000">&nbsp;title</span><span style="COLOR: #0000ff">="单击此处可以折叠显示信息"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">img&nbsp;</span><span style="COLOR: #ff0000">src</span><span style="COLOR: #0000ff">="blueup.gif"</span><span style="COLOR: #ff0000">&nbsp;id</span><span style="COLOR: #0000ff">="img_01"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">最新书籍<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">dt</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">dd&nbsp;</span><span style="COLOR: #ff0000">id</span><span style="COLOR: #0000ff">="content_01"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">ul</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">li</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">Ajax&nbsp;Hacks(Ajax解密)</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">li</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">li</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">Ajax&nbsp;in&nbsp;Action(Ajax实战)</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">li</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">li</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">Javascript的早餐(英文版)</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">li</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">li</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">Pragmatic&nbsp;Ajax(Ajax之道)</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">li</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">ul</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">dd</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">dl</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">td</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">tr</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">table</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">body</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">html</span><span style="COLOR: #0000ff">&gt;</span></div>
代码下载(完整文件):<a href="/Files/sunwangji/js.zip">/Files/sunwangji/js.zip</a></span>
<img src ="http://www.cnblogs.com/sunwangji/aggbug/492425.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42128/" target="_blank">[新闻]Google十年大变样</a>]]></description></item><item><title>全面理解javascript的caller,callee,call,apply概念(修改版)</title><link>http://www.cnblogs.com/sunwangji/archive/2006/08/21/482341.html</link><dc:creator>Baldwin</dc:creator><author>Baldwin</author><pubDate>Mon, 21 Aug 2006 05:36:00 GMT</pubDate><guid>http://www.cnblogs.com/sunwangji/archive/2006/08/21/482341.html</guid><wfw:comment>http://www.cnblogs.com/sunwangji/comments/482341.html</wfw:comment><comments>http://www.cnblogs.com/sunwangji/archive/2006/08/21/482341.html#Feedback</comments><slash:comments>20</slash:comments><wfw:commentRss>http://www.cnblogs.com/sunwangji/comments/commentRss/482341.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/sunwangji/services/trackbacks/482341.html</trackback:ping><description><![CDATA[<p style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%"><font face=宋体>(<em><strong>注</strong></em>：<em><strong>在看到大家如此关注JS里头的这几个对象，我试着把原文再修改一下，力求能再详细的阐明个中意义&nbsp; 2007-05-21</strong></em>）<br>在提到上述的概念之前，首先想说说<span lang=EN-US>javascript</span>中函数的隐含参数：<strong style="mso-bidi-font-weight: normal"><span lang=EN-US>arguments</span></strong></font></p>
<p style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%"><font face=宋体><strong style="mso-bidi-font-weight: normal"><span lang=EN-US></span></strong></font><strong style="mso-bidi-font-weight: normal"><span lang=EN-US><font face=宋体>Arguments<o:p></o:p></font></span></strong></p>
<p style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%"><font face=宋体>该对象代表正在执行的函数和调用它的函数的参数。<strong style="mso-bidi-font-weight: normal"><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%"><o:p></o:p></span></strong></font></p>
<pre style="LINE-HEIGHT: 150%"><span lang=EN-US><font face=宋体>[<span style="mso-field-code: ' HYPERLINK '''"><span class=MsoHyperlink><em><u><font color=#0000ff>function</font></u></em></span></span><strong>.</strong>]<strong>arguments[</strong><span style="mso-field-code: ' HYPERLINK '''"><span class=MsoHyperlink><em><u><font color=#0000ff>n</font></u></em></span></span><strong>]</strong></font></span></pre>
<pre style="LINE-HEIGHT: 150%"><strong style="mso-bidi-font-weight: normal"><font face=宋体><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">参数</span><br></font></strong><em><span lang=EN-US>function</span></em><span lang=EN-US> </span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：选项。当前正在执行的</span> <strong><span lang=EN-US>Function</span></strong><span lang=EN-US> </span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">对象的名字。</span><span lang=EN-US> <br></span><em><span lang=EN-US>n</span></em><span lang=EN-US> </span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：选项。要传递给</span> <strong><span lang=EN-US>Function</span></strong><span lang=EN-US> </span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">对象的从</span><span lang=EN-US>0</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">开始的参数值索引。</span> </pre>
<p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%"><strong style="mso-bidi-font-weight: normal"><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">说明</span></strong><strong style="mso-bidi-font-weight: normal"><span lang=EN-US style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%"><o:p></o:p></span></strong></p>
<p style="MARGIN: 0cm 112.45pt 0pt 0cm; LINE-HEIGHT: 150%; mso-para-margin-top: 0cm; mso-para-margin-right: 10.71gd; mso-para-margin-bottom: .0001pt; mso-para-margin-left: 0cm"><font face=宋体><strong><span lang=EN-US>Arguments</span></strong><span style="mso-bidi-font-weight: bold">是进行函数调用时，除了指定的参数外，还另外创建的一个隐藏对象。<strong><span lang=EN-US>Arguments</span></strong>是一个类似数组但不是数组的对象，说它类似数组是因为其具有数组一样的访问性质及方式，可以由<strong><span lang=EN-US>arguments[</span></strong></span><span lang=EN-US><span style="mso-field-code: ' HYPERLINK '''"><span class=MsoHyperlink><em><u><font color=#0000ff>n</font></u></em></span></span><strong>]</strong></span><span style="mso-bidi-font-weight: bold">来访问对应的单个参数的值，并拥有数组长度属性</span><span lang=EN-US>length</span>。还有就是<strong><span lang=EN-US>arguments</span></strong><span style="mso-bidi-font-weight: bold">对象存储的是实际传递给函数的参数，而不局限于函数声明所定义的参数列表，而且</span>不能显式创建 <strong><span lang=EN-US>arguments</span></strong><span lang=EN-US> </span>对象。<strong><span lang=EN-US>arguments</span></strong><span lang=EN-US> </span>对象只有函数开始时才可用。下边例子详细说明了这些性质</font><span lang=EN-US><font face=宋体>:<br></font></p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 87.72%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; HEIGHT: 267px; BACKGROUND-COLOR: #eeeeee"><font face=宋体><span style="COLOR: #008000">//</span><span style="COLOR: #008000">arguments&nbsp;对象的用法。</span></font><span style="COLOR: #008000"><br></span><span style="COLOR: #0000ff"><font face=宋体>function</font></span><font face=宋体><span style="COLOR: #000000">&nbsp;ArgTest(a,&nbsp;b){<br>&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000">&nbsp;i,&nbsp;s&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">The&nbsp;ArgTest&nbsp;function&nbsp;expected&nbsp;</span><span style="COLOR: #000000">"</span></font><font face=宋体><span style="COLOR: #000000">;<br>&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000">&nbsp;numargs&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;arguments.length;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;获取被传递参数的数值。</span></font><span style="COLOR: #008000"><br></span><font face=宋体><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000">&nbsp;expargs&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;ArgTest.length;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;获取期望参数的数值。</span></font><span style="COLOR: #008000"><br></span><font face=宋体><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(expargs&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">2</span></font><font face=宋体><span style="COLOR: #000000">)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s&nbsp;</span><span style="COLOR: #000000">+=</span><span style="COLOR: #000000">&nbsp;expargs&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;argument.&nbsp;</span><span style="COLOR: #000000">"</span></font><font face=宋体><span style="COLOR: #000000">;<br>&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">else</span></font><span style="COLOR: #000000"><br><font face=宋体>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s&nbsp;</font></span><font face=宋体><span style="COLOR: #000000">+=</span><span style="COLOR: #000000">&nbsp;expargs&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;arguments.&nbsp;</span><span style="COLOR: #000000">"</span></font><font face=宋体><span style="COLOR: #000000">;<br>&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(numargs&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">2</span></font><font face=宋体><span style="COLOR: #000000">)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s&nbsp;</span><span style="COLOR: #000000">+=</span><span style="COLOR: #000000">&nbsp;numargs&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;was&nbsp;passed.</span><span style="COLOR: #000000">"</span></font><font face=宋体><span style="COLOR: #000000">;<br>&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">else</span></font><span style="COLOR: #000000"><br><font face=宋体>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s&nbsp;</font></span><font face=宋体><span style="COLOR: #000000">+=</span><span style="COLOR: #000000">&nbsp;numargs&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;were&nbsp;passed.</span><span style="COLOR: #000000">"</span></font><font face=宋体><span style="COLOR: #000000">;<br>&nbsp;&nbsp;&nbsp;s&nbsp;</span><span style="COLOR: #000000">+=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">\n\n</span><span style="COLOR: #000000">"</span></font><span style="COLOR: #000000"><br><font face=宋体>&nbsp;&nbsp;&nbsp;</font></span><font face=宋体><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(i&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">&nbsp;;&nbsp;i&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">&nbsp;numargs;&nbsp;i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;获取参数内容。</span></font><span style="COLOR: #008000"><br></span><font face=宋体><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;s&nbsp;</span><span style="COLOR: #000000">+=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;&nbsp;Arg&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;i&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;=&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;arguments[i]&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">\n</span><span style="COLOR: #000000">"</span></font><font face=宋体><span style="COLOR: #000000">;<br>&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">(s);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;返回参数列表。</span></font><span style="COLOR: #008000"><br></span><span style="COLOR: #000000"><font face=宋体>}</font></span></div>
<p style="MARGIN: 0cm 112.45pt 0pt 0cm; LINE-HEIGHT: 150%; mso-para-margin-top: 0cm; mso-para-margin-right: 10.71gd; mso-para-margin-bottom: .0001pt; mso-para-margin-left: 0cm"><br><font face=宋体>在此添加了一个说明arguments不是数组(Array类)的代码:<br></font></p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 88.6%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; HEIGHT: 75px; BACKGROUND-COLOR: #eeeeee"><font face=宋体><span style="COLOR: #000000">Array.prototype.selfvalue&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span></font><font face=宋体><span style="COLOR: #000000">;<br>alert(</span><span style="COLOR: #0000ff">new</span></font><font face=宋体><span style="COLOR: #000000">&nbsp;Array().selfvalue);<br></span><span style="COLOR: #0000ff">function</span></font><span style="COLOR: #000000"><font face=宋体>&nbsp;testAguments(){<br>&nbsp;&nbsp;&nbsp;&nbsp;alert(arguments.selfvalue);<br>}</font></span></div>
<p style="MARGIN: 0cm 112.45pt 0pt 0cm; LINE-HEIGHT: 150%; mso-para-margin-top: 0cm; mso-para-margin-right: 10.71gd; mso-para-margin-bottom: .0001pt; mso-para-margin-left: 0cm"><br><font face=宋体>运行代码你会发现第一个alert显示1，这表示数组对象拥有selfvalue属性，值为1，而当你调用函数testAguments时，你会发现显示的是&#8220;undefined&#8221;，说明了不是arguments的属性，即arguments并不是一个数组对象。<br><span style="COLOR: red"><strong>在此附加上大家推荐的一个简单方法</strong></span>：</p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">alert(arguments&nbsp;</span><span style="COLOR: #0000ff">instanceof</span><span style="COLOR: #000000">&nbsp;Array);<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>alert(arguments&nbsp;</span><span style="COLOR: #0000ff">instanceof</span><span style="COLOR: #000000">&nbsp;Object);</span></div>
<p style="MARGIN: 0cm 112.45pt 0pt 0cm; LINE-HEIGHT: 150%; mso-para-margin-top: 0cm; mso-para-margin-right: 10.71gd; mso-para-margin-bottom: .0001pt; mso-para-margin-left: 0cm"><br><br></font><code><strong><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%"><font face=宋体><span lang=EN-US style="FONT-SIZE: 13.5pt; LINE-HEIGHT: 150%; FONT-FAMILY: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">&nbsp;caller</span><br></font></span></strong></code><span style="mso-bidi-font-weight: bold"><font face=宋体>&nbsp; 返回一个对函数的引用，该函数调用了当前函数。<br></font></span><strong><span lang=EN-US><font face=宋体>&nbsp; functionName.caller <br></font></span></strong><font face=宋体><span lang=EN-US style="mso-bidi-font-weight: bold">&nbsp; functionName </span><span style="mso-bidi-font-weight: bold">对象是所执行函数的名称。<br></span></font><strong><font face=宋体>说明<br></font></strong><span style="mso-bidi-font-weight: bold"><font face=宋体>对于函数来说，<strong><span lang=EN-US>caller</span></strong><span lang=EN-US> </span>属性只有在函数执行时才有定义。如果函数是由顶层调用的，那么 <strong><span lang=EN-US>caller</span></strong><span lang=EN-US> </span>包含的就是<span lang=EN-US> null </span>。如果在字符串上下文中使用 <strong><span lang=EN-US>caller</span></strong><span lang=EN-US> </span>属性，那么结果和<span lang=EN-US> functionName.toString </span>一样，也就是说，显示的是函数的反编译文本。<br></font></span><span style="mso-bidi-font-weight: bold"><font face=宋体>下面的例子说明了<span lang=EN-US> caller </span>属性的用法：</p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 84.29%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; HEIGHT: 166px; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;caller&nbsp;demo&nbsp;{</span><span style="COLOR: #008000"><br></span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000">&nbsp;callerDemo()&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(callerDemo.caller)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000">&nbsp;a</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;callerDemo.caller.toString();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert(a);<br>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000">&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">this&nbsp;is&nbsp;a&nbsp;top&nbsp;function</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>}<br></span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000">&nbsp;handleCaller()&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;callerDemo();<br>}</span></div>
<p style="MARGIN: 0cm 112.45pt 0pt 0cm; LINE-HEIGHT: 150%; mso-para-margin-top: 0cm; mso-para-margin-right: 10.71gd; mso-para-margin-bottom: .0001pt; mso-para-margin-left: 0cm"></font></span><br></span><strong><span lang=EN-US style="FONT-SIZE: 13.5pt; LINE-HEIGHT: 150%; FONT-FAMILY: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">callee<o:p></o:p></span></strong></p>
<p style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%"><font face=宋体>&nbsp;&nbsp;&nbsp; 返回正被执行的 <strong><span lang=EN-US>Function </span></strong>对象，也就是所指定的 <strong><span lang=EN-US>Function </span></strong>对象的正文。</font></p>
<pre style="LINE-HEIGHT: 150%; mso-outline-level: 1"><span lang=EN-US><font face=宋体>[<strong><em>function</em>.</strong>]<strong>arguments.</strong><strong style="mso-bidi-font-weight: normal">callee</strong></font></span></pre>
<p style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%"><font face=宋体>可选项 <em><span lang=EN-US>function</span></em><span lang=EN-US> </span>参数是当前正在执行的<strong><span lang=EN-US> Function</span></strong><span lang=EN-US> </span>对象的名称。</font></p>
<p style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%"><strong style="mso-bidi-font-weight: normal"><font face=宋体>说明<span lang=EN-US><o:p></o:p></span></font></strong></p>
<p style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%"><font face=宋体><strong style="mso-bidi-font-weight: normal"><span lang=EN-US>callee</span></strong><span lang=EN-US> </span>属性的初始值就是正被执行的 <strong><span lang=EN-US>Function </span></strong>对象。</font></p>
<p style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%"><font face=宋体><strong style="mso-bidi-font-weight: normal"><span lang=EN-US>callee</span></strong><span lang=EN-US> </span>属性是 <strong><span lang=EN-US>arguments </span></strong>对象的一个成员，<span style="COLOR: red"><strong>它表示对函数对象本身的引用，这有利于匿名<br>函数的递归或者保证函数的封装性</strong></span>，例如下边示例的递归计算<span lang=EN-US>1</span>到<span lang=EN-US>n</span>的自然数之和。而该属性<br>仅当相关函数正在执行时才可用。还有需要注意的是<strong style="mso-bidi-font-weight: normal"><span lang=EN-US>callee</span></strong>拥有<span lang=EN-US>length</span>属性，这个属性有时候<br>用于验证还是比较好的。<strong style="mso-bidi-font-weight: normal"><span lang=EN-US>arguments.length</span></strong>是实参长度，<strong style="mso-bidi-font-weight: normal"><span lang=EN-US>arguments.callee.length</span></strong>是<br>形参长度，由此可以判断调用时形参长度是否和实参长度一致。</font></p>
<p style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%"><strong style="mso-bidi-font-weight: normal"><font face=宋体>示例<br></p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 89.75%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; HEIGHT: 297px; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #008000">//</span><span style="COLOR: #008000">callee可以打印其本身</span><span style="COLOR: #008000"><br></span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000">&nbsp;calleeDemo()&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;alert(arguments.callee);<br>}<br></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">用于验证参数</span><span style="COLOR: #008000"><br></span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000">&nbsp;calleeLengthDemo(arg1,&nbsp;arg2)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(arguments.length</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">arguments.callee.length)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;window.alert(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">验证形参和实参长度正确！</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">;<br>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000">&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">实参长度：</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">arguments.length);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">形参长度：&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">arguments.callee.length);<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>}<br></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">递归计算</span><span style="COLOR: #008000"><br></span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000">&nbsp;sum&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000">(n){<br>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(n&nbsp;</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;n&nbsp;＋arguments.callee(n&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)<br>}</span></div>
<p style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%"></font></strong><font face=宋体>比较一般的递归函数：</p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 91.21%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; HEIGHT: 62px; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000">&nbsp;sum&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000">(n){<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">n)&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;n&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;sum&nbsp;(n</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">);<br></span></div>
<p style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%"></font><font face=宋体>调用时：<span lang=EN-US>alert(sum(100));<br></span></font><font face=宋体>其中函数内部包含了对<span lang=EN-US>sum</span>自身的引用，函数名仅仅是一个变量名，在函数内部调用<span lang=EN-US>sum</span>即相当于调用<br>一个全局变量，不能很好的体现出是调用自身，这时使用<strong style="mso-bidi-font-weight: normal"><span lang=EN-US>callee</span></strong>会是一个比较好的方法。<br></font></p>
<p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%"><strong style="mso-bidi-font-weight: normal"><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%">apply and call<o:p></o:p></span></strong></p>
<p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%"><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">&nbsp;&nbsp; 它们的作用都是将函数绑定到另外一个对象上去运行，两者仅在定义参数方式有所区别：</span><span lang=EN-US style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%"><o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%"><strong style="mso-bidi-font-weight: normal"><span lang=EN-US style="FONT-FAMILY: Verdana">&nbsp;&nbsp;&nbsp; apply</span></strong><span lang=EN-US style="FONT-FAMILY: Verdana">(thisArg,argArray);</span><span lang=EN-US style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%"><o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%"><strong style="mso-bidi-font-weight: normal"><span lang=EN-US style="FONT-FAMILY: Verdana">&nbsp;&nbsp;&nbsp; call</span></strong><span lang=EN-US style="FONT-FAMILY: Verdana">(thisArg[,arg1,arg2&#8230;] ]);<o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">即所有函数内部的</span><span lang=EN-US>this</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">指针都会被赋值为</span><span lang=EN-US>thisArg</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，这可实现将函数作为另外一个对象的方法运行的目的</span></p>
<p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%"><strong style="mso-bidi-font-weight: normal"><span lang=EN-US style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: Verdana">apply</span></strong><strong style="mso-bidi-font-weight: normal"><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">的说明</span></strong><strong style="mso-bidi-font-weight: normal"><span lang=EN-US style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: Verdana"><o:p></o:p></span></strong></p>
<p style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%"><font face=宋体>如果 <em><span lang=EN-US>argArray</span></em><span lang=EN-US> </span>不是一个有效的数组或者不是 <strong><span lang=EN-US>arguments</span></strong><span lang=EN-US> </span>对象，那么将导致一个<span lang=EN-US> TypeError</span>。<br>如果没有提供 <em><span lang=EN-US>argArray</span></em><span lang=EN-US> </span>和 </font><span lang=EN-US style="FONT-FAMILY: Verdana">thisArg</span><font face=宋体>任何一个参数，那么 <strong><span lang=EN-US>Global </span></strong>对象将被用作 </font><span lang=EN-US style="FONT-FAMILY: Verdana">thisArg</span><font face=宋体><em>，</em> <br>并且无法被传递任何参数。</font></p>
<p style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%"><strong style="mso-bidi-font-weight: normal"><font face=宋体><span lang=EN-US>call</span>的说明<span lang=EN-US><o:p></o:p></span></font></strong></p>
<p style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%"><font face=宋体><strong style="mso-bidi-font-weight: normal"><span lang=EN-US>call</span></strong><span lang=EN-US> </span>方法可将一个函数的对象上下文从初始的上下文改变为由 </font><span lang=EN-US style="FONT-FAMILY: Verdana">thisArg</span><font face=宋体>指定的新对象。<br>如果没有提供 </font><span lang=EN-US style="FONT-FAMILY: Verdana">thisArg</span><font face=宋体>参数，那么<span lang=EN-US> Global </span>对象被用作 </font><span lang=EN-US style="FONT-FAMILY: Verdana">thisArg</span></p>
<p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%"><strong style="mso-bidi-font-weight: normal"><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">相关技巧</span></strong><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：</span></p>
<p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">应用</span><strong style="mso-bidi-font-weight: normal"><span lang=EN-US>call</span></strong><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和</span><strong style="mso-bidi-font-weight: normal"><span lang=EN-US>apply</span></strong><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">还有一个技巧在里面，就是用</span><strong style="mso-bidi-font-weight: normal"><span lang=EN-US>call</span></strong><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和</span><strong style="mso-bidi-font-weight: normal"><span lang=EN-US>apply</span></strong><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">应用另一个函数（类）以后，当前的<br>函数（类）就具备了另一个函数（类）的方法或者是属性，这也可以称之为&#8220;继承&#8221;。看下面示例:</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"></p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 90.3%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; HEIGHT: 168px; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;继承的演示</span><span style="COLOR: #008000"><br></span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000">&nbsp;base()&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.member&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;dnnsun_Member</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.method&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000">()&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;window.alert(</span><span style="COLOR: #000