﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-☆-文章分类-DOJO学习篇</title><link>http://www.blogjava.net/lizhuxin/category/36665.html</link><description>☆</description><language>zh-cn</language><lastBuildDate>Fri, 12 Dec 2008 09:25:34 GMT</lastBuildDate><pubDate>Fri, 12 Dec 2008 09:25:34 GMT</pubDate><ttl>60</ttl><item><title>Dojo的基础对象和方法</title><link>http://www.blogjava.net/lizhuxin/articles/245883.html</link><dc:creator>☆</dc:creator><author>☆</author><pubDate>Fri, 12 Dec 2008 03:24:00 GMT</pubDate><guid>http://www.blogjava.net/lizhuxin/articles/245883.html</guid><wfw:comment>http://www.blogjava.net/lizhuxin/comments/245883.html</wfw:comment><comments>http://www.blogjava.net/lizhuxin/articles/245883.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lizhuxin/comments/commentRss/245883.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lizhuxin/services/trackbacks/245883.html</trackback:ping><description><![CDATA[<p>这里所说的基础对象和方法是指的不Require任何包就能够调用的对象和方法</p>
<p><strong>匿名函数</strong></p>
<p>在开始前，我想介绍一下js里的匿名函数，这个在阅读dojo的源代码的时候，会发现到处都有匿名函数</p>
<p>&nbsp;</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img id="Codehighlighter1_12_26_Open_Image" onclick="this.style.display='none'; Codehighlighter1_12_26_Open_Text.style.display='none'; Codehighlighter1_12_26_Closed_Image.style.display='inline'; Codehighlighter1_12_26_Closed_Text.style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_12_26_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_12_26_Closed_Text.style.display='none'; Codehighlighter1_12_26_Open_Image.style.display='inline'; Codehighlighter1_12_26_Open_Text.style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top" /><span style="color: #000000">;(</span><span style="color: #0000ff">function</span><span style="color: #000000">()</span><span id="Codehighlighter1_12_26_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_12_26_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />alert(</span><span style="color: #000000">123</span><span style="color: #000000">);<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="color: #000000">)();<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #008000">//</span><span style="color: #008000">前面的分号是一个空语句，是可以不要的</span></div>
<p>&nbsp;</p>
<p>匿名函数。一个匿名函数就是一个没有名字的函数。</p>
<p>你可以认为他们是一次性函数。当你只需要用一次某个函数时，他们就特别有用。通过使用匿名函数，没有必要把函数一直放在内存中，所以使用匿名函数更加有效率。</p>
<p>当然你也可以根本不定义函数，但是使用匿名函数可以把你的代码分段，就像C#中的#region一样</p>
<p><strong>dojo.byId</strong></p>
<p>非常有用的一个方法，与prototype.js的著名的$一样</p>
<p>似乎以前的版本还有dojo.byIdArray, 不过最新的版本已经找不到这个函数了(除了src\compat\0.2.2.js)</p>
<p>如果有多个元素具有指定的id，则返回的是一个集合</p>
<p>Usage Example:</p>
<p>&nbsp;</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><span style="color: #000000">&nbsp;dojo.byId(</span><span style="color: #000000">"</span><span style="color: #000000">divTest</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;dojo.byId(</span><span style="color: #000000">"</span><span style="color: #000000">divTest</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;document);<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;dojo.byId(document.getElementById(</span><span style="color: #000000">"</span><span style="color: #000000">divTest</span><span style="color: #000000">"</span><span style="color: #000000">));</span></div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong>dojo.version</strong></p>
<p>dojo的版本，可以取得major, minor, patch, flag和revision</p>
<p>这个对象没什么太大用处，除非你要根据dojo的版本选择执行你的代码</p>
<p><strong>dojo.raise</strong></p>
<p>抛出一个异常</p>
<p><strong>dojo.errorToString</strong></p>
<p>将异常转换为字符串</p>
<p>Usage Example:</p>
<p>&nbsp;</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">try</span><span style="color: #000000"><br />
<img id="Codehighlighter1_6_53_Open_Image" style="display: inline" onclick="this.style.display='none'; Codehighlighter1_6_53_Open_Text.style.display='none'; Codehighlighter1_6_53_Closed_Image.style.display='inline'; Codehighlighter1_6_53_Closed_Text.style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_6_53_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_6_53_Closed_Text.style.display='none'; Codehighlighter1_6_53_Open_Image.style.display='inline'; Codehighlighter1_6_53_Open_Text.style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top" />&nbsp;</span><span id="Codehighlighter1_6_53_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_6_53_Open_Text" style="display: inline"><span style="color: #000000">{<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;dojo.raise(</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: #0000ff">new</span><span style="color: #000000">&nbsp;Error(</span><span style="color: #000000">"</span><span style="color: #000000">文件不存在</span><span style="color: #000000">"</span><span style="color: #000000">));<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;</span><span style="color: #0000ff">catch</span><span style="color: #000000">(e)<br />
<img id="Codehighlighter1_66_103_Open_Image" onclick="this.style.display='none'; Codehighlighter1_66_103_Open_Text.style.display='none'; Codehighlighter1_66_103_Closed_Image.style.display='inline'; Codehighlighter1_66_103_Closed_Text.style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_66_103_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_66_103_Closed_Text.style.display='none'; Codehighlighter1_66_103_Open_Image.style.display='inline'; Codehighlighter1_66_103_Open_Text.style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top" />&nbsp;</span><span id="Codehighlighter1_66_103_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_66_103_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;alert(dojo.errorToString(e));<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />&nbsp;}</span></span></div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong>dojo.render</strong></p>
<p>系统环境对象</p>
<p>&nbsp;</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #000000">dojo.render.name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;返回&nbsp;browser&nbsp;，说明是工作在浏览器下<br />
dojo.render.ver&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;返回&nbsp;4</span><span style="color: #000000">&nbsp;，似乎没什么用<br />
dojo.os.win&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;返回true说明操作系统是Windows<br />
dojo.os.linux&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;返回true说明操作系统是Linux<br />
dojo.os.osx&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;返回true说明操作系统是MacOS<br />
dojo.html.ie&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;返回true说明浏览器是Internet&nbsp;Explorer<br />
dojo.html.opera&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;返回true说明浏览器是Opera<br />
dojo.html.khtml&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;返回true说明浏览器是Konqueror<br />
dojo.html.safari&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;返回true说明浏览器是Safari<br />
dojo.html.moz&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;返回true说明浏览器是Mozilla&nbsp;FireFox<br />
dojo.svg.capable&nbsp;&nbsp;&nbsp;&nbsp; 返回true说明浏览器支持svg<br />
dojo.vml.capable&nbsp;&nbsp;&nbsp;&nbsp; 返回true说明浏览器支持vml<br />
dojo.swf.capable&nbsp;&nbsp;&nbsp; 返回true说明浏览器支持swf<br />
dojo.swt.capable&nbsp;&nbsp;&nbsp;&nbsp; 返回true说明浏览器支持swt (IBM开发的Standard Widget Toolkit)</span></div>
<p>&nbsp;</p>
<p>如果dojo.html.ie为true的话</p>
<p>&nbsp;</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><span style="color: #000000">dojo.html.ie50&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;返回true说明浏览器是IE&nbsp;</span><span style="color: #000000">5.0</span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />dojo.html.ie55&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;返回true说明浏览器是IE&nbsp;</span><span style="color: #000000">5.5</span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />dojo.html.ie60&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;返回true说明浏览器是IE&nbsp;</span><span style="color: #000000">6.0</span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />dojo.html.ie70&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;返回true说明浏览器是IE&nbsp;</span><span style="color: #000000">7.0</span></div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong>dojo.addOnLoad</strong></p>
<p>可以加载指定函数到window.load时执行，好处就是可以很方便的在window.load时执行多个函数</p>
<p>Usage Example:</p>
<p>&nbsp;</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><span style="color: #000000">&nbsp;dojo.addOnLoad(init);&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">init是一个函数</span><span style="color: #008000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #000000">&nbsp;dojo.addOnLoad(myObject,&nbsp;init);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">init是myObject对象的一个方法</span></div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong>dojo.require</strong></p>
<p>如果你想调用一个模块的对象的时候，你应该首先用dojo.require来请求这个模块，dojo会根据你的请求自动取得相应的js文件，并加载到内存中，这样你才能调用或创建其中的对象</p>
<p>dojo会自动维护已加载的模块列表，所以是不会重复加载模块的</p>
<p>Usage Example:</p>
<p>&nbsp;</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><span style="color: #000000">&nbsp;dojo.require(</span><span style="color: #000000">"</span><span style="color: #000000">dojo.event</span><span style="color: #000000">"</span><span style="color: #000000">);</span></div>
<p>&nbsp;</p>
<p><strong>dojo.requireIf=dojo.requireAfterIf</strong></p>
<p>可以根据指定的条件来决定是否加载指定的模块</p>
<p>Usage Example:</p>
<p>&nbsp;</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><span style="color: #000000">&nbsp;dojo.requireIf(dojo.html.ie,&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">dojo.html</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">如果dojo.html.ie为true，才会加载dojo.html模块</span></div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong>dojo.provide</strong></p>
<p>除非你要开发自己的模块，不然是用不到这个方法的，你可以这句看成是向系统注册这个模块名称</p>
<p>Usage Example:</p>
<p>&nbsp;</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><span style="color: #000000">&nbsp;dojo.provide(</span><span style="color: #000000">"</span><span style="color: #000000">dojo.custom</span><span style="color: #000000">"</span><span style="color: #000000">);</span></div>
<p>&nbsp;</p>
<p><strong>dojo.exists</strong></p>
<p>判断指定对象是否具有指定名称的方法</p>
<p>Usage Example:</p>
<p>&nbsp;</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><span style="color: #000000">&nbsp;dojo.exists(dojo,&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">exists</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">will&nbsp;return&nbsp;true</span></div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong>dojo.hostenv.getText</strong></p>
<p>返回指定url的内容</p>
<p>PS: 由于浏览器的安全限制，因此只能用于取得同域名的url的内容，否则会报告权限不够</p>
<p>Usage Example:</p>
<p>&nbsp;</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><span style="color: #000000">&nbsp;aSync&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">false</span><span style="color: #000000">;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">同步，确保返回内容不为null</span><span style="color: #008000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #000000">&nbsp;silent&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">true</span><span style="color: #000000">;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">不抛出错误</span><span style="color: #008000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #000000">&nbsp;s&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;dojo.hostenv.getText(</span><span style="color: #000000">"</span><span style="color: #000000">http://www.google.com/</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;aSync,&nbsp;silent);&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">返回Google的首页的HTML</span><span style="color: #008000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #000000">&nbsp;alert(s);</span></div>
<p>&nbsp;</p>
<p><strong>dojo.debug</strong></p>
<p>输出调试信息，如果在djConfig中指定了debugContainerId，则输出到指定的console容器中，否则直接document.write</p>
<p>所有的调试信息均以 DEBUG: 开头</p>
<p>Usage Example:</p>
<p>&nbsp;</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><span style="color: #000000">&nbsp;dojo.debug(</span><span style="color: #000000">"</span><span style="color: #000000">这是调试信息</span><span style="color: #000000">"</span><span style="color: #000000">);</span></div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong>dojo.hostenv.println</strong></p>
<p>与dojo.debug类似，不同的是，输出内容没有 DEBUG:</p>
<p>Usage Example:</p>
<p>&nbsp;</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><span style="color: #000000">&nbsp;dojo.hostenv.println(</span><span style="color: #000000">"</span><span style="color: #000000">这是一般的输出信息</span><span style="color: #000000">"</span><span style="color: #000000">);</span></div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong>dojo.debugShallow</strong></p>
<p>输出指定对象的全部信息(Shallow说明并不会遍历到下一级别的对象属性)以供调试</p>
<p>Usage Example:</p>
<p>&nbsp;</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><span style="color: #000000">&nbsp;dojo.debugShallow(dojo.render.html);</span></div>
<img src ="http://www.blogjava.net/lizhuxin/aggbug/245883.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lizhuxin/" target="_blank">☆</a> 2008-12-12 11:24 <a href="http://www.blogjava.net/lizhuxin/articles/245883.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>dojo之日历控件</title><link>http://www.blogjava.net/lizhuxin/articles/245881.html</link><dc:creator>☆</dc:creator><author>☆</author><pubDate>Fri, 12 Dec 2008 03:22:00 GMT</pubDate><guid>http://www.blogjava.net/lizhuxin/articles/245881.html</guid><wfw:comment>http://www.blogjava.net/lizhuxin/comments/245881.html</wfw:comment><comments>http://www.blogjava.net/lizhuxin/articles/245881.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lizhuxin/comments/commentRss/245881.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lizhuxin/services/trackbacks/245881.html</trackback:ping><description><![CDATA[<p>这是两个封装良好的日历组件，用来给用户提供方便的日历选择方式。</p>
<p>以较为复杂的DropdownDatePicker为例，首先在页面中require进来这个组件：<br />
&lt;script type="text/javascript"&gt;<br />
&lt;!--<br />
dojo.require("dojo.widget.DropdownDatePicker");<br />
//--&gt;<br />
&lt;/script&gt;<br />
然后在页面中加入：<br />
&lt;div inputName="startDate" dojoType="dropdowndatepicker" dateFormat="%Y-%m-%d" weekStartsOn="1" adjustWeeks="true"/&gt;<br />
或<br />
&lt;div inputName="endDate" dojoType="dropdowndatepicker" dateFormat="%Y-%m-%d" weekStartsOn="1" adjustWeeks="true"/&gt;<br />
Dojo就会自动生成两个日历组件，一个用来选择开始日期，一个用来选择结束日期。</p>
<p>其 中的属性dojoType指明widget的类型（全部小写就可以了）。inputName就是生成的input字段的name，提交时候作为表单的一个 参数。dateFormat是日期的格式。weekStartsOn是日历中显示的一周以哪一天开始，这里是以周一开始（0-6，0代表周日）。 adjustWeeks指明是否需要根据每个月的实际天数来调整日历中每月显示的天数（如果不调整，每个月除了自己的天数，还会多出一些相邻月份的天数， 总的天数固定为42天）。<br />
如果需要给日期设置一个初始值，可以添加value属性，例如value="2006-10-25"。</p>
<p>以下的例子将组件的setDate事件（就是组件的setDate方法被调用）与外部某个回调函数关联起来：<br />
html这样声明：<br />
&lt;div id="foo" inputName="startDate" dojoType="dropdowndatepicker" dateFormat="%Y-%m-%d" weekStartsOn="1" adjustWeeks="true"/&gt;</p>
<p>Javas cript这样写：<br />
&lt;script type="text/javas cript"&gt;<br />
&lt;!--<br />
function test(rfcDate){<br />
&nbsp; alert(rfcDate);<br />
}<br />
dojo.event.connect( dojo.widget.byId("foo").datePicker, "setDate", test);<br />
//--&gt;<br />
&lt;/script&gt;<br />
当选择了日期，要将日期设置到input字段中时，会调用test回调函数。</p>
<p>DatePicker组件的用法类似，DropdownDatePicker实际上是对DatePicker组件所做的一个封装，更适合使用在表单输入的环境中。</p>
<img src ="http://www.blogjava.net/lizhuxin/aggbug/245881.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lizhuxin/" target="_blank">☆</a> 2008-12-12 11:22 <a href="http://www.blogjava.net/lizhuxin/articles/245881.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>DOJO之dom学习</title><link>http://www.blogjava.net/lizhuxin/articles/245879.html</link><dc:creator>☆</dc:creator><author>☆</author><pubDate>Fri, 12 Dec 2008 03:20:00 GMT</pubDate><guid>http://www.blogjava.net/lizhuxin/articles/245879.html</guid><wfw:comment>http://www.blogjava.net/lizhuxin/comments/245879.html</wfw:comment><comments>http://www.blogjava.net/lizhuxin/articles/245879.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lizhuxin/comments/commentRss/245879.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lizhuxin/services/trackbacks/245879.html</trackback:ping><description><![CDATA[<p>模块：dojo.dom</p>
<p>dojo.dom.isNode</p>
<p>测试指定对象是否为节点</p>
<p>Usage Example:</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">
<p>dojo.dom.isNode(dojo.byId('edtTitle'));</p>
<p>dojo.dom.getUniqueId</p>
</div>
<p>dojo.dom.getUniqueId</p>
<p>取得唯一id</p>
<p>Usage Example:</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">
<p>dojo.dom.getUniqueId();&nbsp;&nbsp;//will return dj_unique_#</p>
</div>
<p>dojo.dom.firstElement = dojo.dom.getFirstChildElement</p>
<p>取得指定节点下的第一个满足指定Tag条件的子节点</p>
<p>Usage Example:</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">
<p>dojo.dom.firstElement(parentNode, 'SPAN');</p>
</div>
<p>dojo.dom.lastElement = dojo.dom.getLastChildElement</p>
<p>取得指定节点下的最后一个满足指定Tag条件的子节点</p>
<p>Usage Example:</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">
<p>dojo.dom.lastElement(parentNode, 'SPAN');</p>
</div>
<p>dojo.dom.nextElement = dojo.dom.getNextSiblingElement</p>
<p>取得指定节点的下一个满足指定Tag条件的子节点</p>
<p>Usage Example:</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">
<p>dojo.dom.nextElement(node, 'SPAN');</p>
</div>
<p>dojo.dom.prevElement = dojo.dom.getPreviousSiblingElement</p>
<p>取得指定节点的前一个满足指定Tag条件的子节点</p>
<p>Usage Example:</p>
<p>dojo.dom.moveChildren</p>
<p>把指定节点下的所有子节点移动到目标节点下，并返回移动的节点数</p>
<p>Usage Example:</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">
<p>dojo.dom.moveChildren(srcNode, destNode, true);&nbsp;//仅移动子节点，srcNode中的文字将被丢弃<br />
dojo.dom.moveChildren(srcNode, destNode, false);//包括文字和子节点都将被移动到目标节点下</p>
</div>
<p>dojo.dom.copyChildren</p>
<p>dojo.dom.prevElement(node, 'SPAN');</p>
<p>把指定节点下的所有子节点复制到目标节点下，并返回复制的节点数</p>
<p>Usage Example:</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">
<p>dojo.dom.nextElement(node, 'SPAN');</p>
</div>
<p>dojo.dom.prevElement = dojo.dom.getPreviousSiblingElement</p>
<p>取得指定节点的前一个满足指定Tag条件的子节点</p>
<p>Usage Example:</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">
<p>dojo.dom.moveChildren(srcNode, destNode, true);&nbsp;//仅复制子节点，srcNode中的文字将被忽略<br />
dojo.dom.moveChildren(srcNode, destNode, false);//包括文字和子节点都将被复制到目标节点下</p>
</div>
<p>dojo.dom.removeChildren</p>
<p>删除指定节点下的所有子节点，并返回删除的节点数</p>
<p>Usage Example:</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">
<p>dojo.dom.moveChildren(node);</p>
</div>
<p>dojo.dom.replaceChildren</p>
<p>用指定的新节点替换父节点下的所有子节点</p>
<p>Usage Example:</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">
<p>dojo.dom.replaceChildren(node, newChild); //目前还不支持newChild为数组形式</p>
</div>
<p>dojo.dom.removeNode</p>
<p>删除指定的节点</p>
<p>Usage Example:</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">
<p>dojo.dom.removeNode(node);</p>
</div>
<p>dojo.dom.getAncestors</p>
<p>返回指定节点的父节点集合</p>
<p>Usage Example:</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">
<p>dojo.dom.getAncestors(node, null, false);&nbsp;//返回所有的父节点集合（包括指定的节点node）<br />
dojo.dom.getAncestors(node, null, true);&nbsp;//返回最近的一个父节点<br />
dojo.dom.getAncestors(node, function(el){/* 此处增加过滤条件 */return true}, false);&nbsp;//返回所有满足条件的父节点集合</p>
</div>
<p>&nbsp;</p>
<p>dojo.dom.getAncestorsByTag</p>
<p>返回所有符合指定Tag的指定节点的父节点集合</p>
<p>Usage Example:</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">
<p>dojo.dom.getAncestorsByTag(node, 'span', false);&nbsp;//返回所有的类型为SPAN的父节点集合<br />
dojo.dom.getAncestorsByTag(node, 'span', true);&nbsp;&nbsp;//返回最近的一个类型为SPAN的父节点</p>
<p>dojo.dom.getFirstAncestorByTag</p>
</div>
<p>返回最近的一个符合指定Tag的指定节点的父节点</p>
<p>Usage Example:</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">
<p>dojo.dom.getFirstAncestorByTag(node, 'span');&nbsp;//返回最近的一个类型为SPAN的父节点</p>
<p>dojo.dom.isDescendantOf</p>
</div>
<p>判断指定的节点是否为另一个节点的子孙</p>
<p>Usage Example:</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">
<p>dojo.dom.isDescendantOf(node, ancestor, true);&nbsp;//判断node是否为ancestor的子孙<br />
dojo.dom.isDescendantOf(node, node, false);&nbsp;//will return true<br />
dojo.dom.isDescendantOf(node, node, true);&nbsp;//will return false</p>
<p>dojo.dom.innerXML</p>
</div>
<p>返回指定节点的XML</p>
<p>Usage Example:</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">
<p>dojo.dom.innerXML(node);</p>
<p>dojo.dom.createDocument</p>
</div>
<p>创建一个空的文档对象</p>
<p>Usage Example:</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">
<p>dojo.dom.createDocument();</p>
<p>dojo.dom.createDocumentFromText</p>
</div>
<p>根据文字创建一个文档对象</p>
<p>Usage Example:</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">
<p>dojo.dom.createDocumentFromText('&lt;?xml version="1.0" encoding="gb2312" ?&gt;&lt;a&gt;1&lt;/a&gt;','text/xml');</p>
<p>dojo.dom.prependChild</p>
</div>
<p>将指定的节点插入到父节点的最前面</p>
<p>Usage Example:</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">
<p>dojo.dom.prependChild(node, parent);</p>
<p>dojo.dom.insertBefore</p>
</div>
<p>将指定的节点插入到参考节点的前面</p>
<p>Usage Example:</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">
<p>dojo.dom.insertBefore(node, ref, false); //如果满足要求的话就直接退出<br />
dojo.dom.insertBefore(node, ref, true);</p>
<p>dojo.dom.insertAfter</p>
</div>
<p>将指定的节点插入到参考节点的后面</p>
<p>Usage Example:</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">
<p>dojo.dom.insertAfter(node, ref, false); //如果满足要求的话就直接退出<br />
dojo.dom.insertAfter(node, ref, true);</p>
<p>dojo.dom.insertAtPosition</p>
</div>
<p>将指定的节点插入到参考节点的指定位置</p>
<p>Usage Example:</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">
<p>dojo.dom.insertAtPosition(node, ref, "before");//参考节点之前<br />
dojo.dom.insertAtPosition(node, ref, "after"); //参考节点之后<br />
dojo.dom.insertAtPosition(node, ref, "first"); //参考节点的第一个子节点<br />
dojo.dom.insertAtPosition(node, ref, "last");&nbsp; //参考节点的最后一个子节点<br />
dojo.dom.insertAtPosition(node, ref);&nbsp;//默认位置为"last"</p>
<p>&nbsp;</p>
</div>
<p>dojo.dom.insertAtIndex</p>
<p>将指定的节点插入到参考节点的子节点中的指定索引的位置</p>
<p>Usage Example:</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">
<p>dojo.dom.insertAtIndex(node, containingNode, 3);&nbsp; //把node插入到containingNode的子节点中，使其成为第3个子节点</p>
</div>
<p>dojo.dom.textContent设置或获取指定节点的文本</p>
<p>Usage Example:</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">
<p>dojo.dom.textContent(node, 'text');&nbsp;//设置node的文本为'text'<br />
dojo.dom.textContent(node);&nbsp;//返回node的文本</p>
<p>&nbsp;</p>
</div>
<p>dojo.dom.hasParent</p>
<p>判断指定节点是否有父节点</p>
<p>Usage Example:</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">
<p>dojo.dom.hasParent(node);</p>
</div>
<p>dojo.dom.isTag</p>
<p>判断节点是否具有指定的tag</p>
<p>Usage Example:</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">
<p>var el = document.createElement("SPAN");<br />
dojo.dom.isTag(el, "SPAN");&nbsp;//will return "SPAN"<br />
dojo.dom.isTag(el, "span");&nbsp;//will return ""<br />
dojo.dom.isTag(el, "INPUT", "SPAN", "IMG");&nbsp;//will return "SPAN"</p>
</div>
<img src ="http://www.blogjava.net/lizhuxin/aggbug/245879.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lizhuxin/" target="_blank">☆</a> 2008-12-12 11:20 <a href="http://www.blogjava.net/lizhuxin/articles/245879.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>