﻿<?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-TNT blog-文章分类-ajax</title><link>http://www.blogjava.net/terrywu/category/22528.html</link><description /><language>zh-cn</language><lastBuildDate>Sun, 27 May 2007 10:02:19 GMT</lastBuildDate><pubDate>Sun, 27 May 2007 10:02:19 GMT</pubDate><ttl>60</ttl><item><title>Dojo学习笔记(9. dojo.graphics.color &amp; dojo.uri.Uri)</title><link>http://www.blogjava.net/terrywu/articles/119994.html</link><dc:creator>TNT</dc:creator><author>TNT</author><pubDate>Fri, 25 May 2007 06:07:00 GMT</pubDate><guid>http://www.blogjava.net/terrywu/articles/119994.html</guid><wfw:comment>http://www.blogjava.net/terrywu/comments/119994.html</wfw:comment><comments>http://www.blogjava.net/terrywu/articles/119994.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/terrywu/comments/commentRss/119994.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/terrywu/services/trackbacks/119994.html</trackback:ping><description><![CDATA[<h2><a id=viewpost1_TitleUrl href="http://www.cnblogs.com/Icebird/archive/2006/09/14/dojo_study_9.html"><u><font color=#0000ff>Dojo学习笔记(9. dojo.graphics.color &amp; dojo.uri.Uri)</font></u></a> </h2>
<p>Dojo学习笔记(9. dojo.graphics.color &amp; dojo.uri.Uri)</p>
<p><br>模块：dojo.graphics.color</p>
<p><br>下面是dojo里定义的颜色名称<br>dojo.graphics.color.named.white&nbsp;//白色<br>dojo.graphics.color.named.black&nbsp;//黑色<br>dojo.graphics.color.named.red&nbsp;//红色<br>dojo.graphics.color.named.green&nbsp;//绿色<br>dojo.graphics.color.named.blue&nbsp;//蓝色<br>dojo.graphics.color.named.navy&nbsp;//海军蓝<br>dojo.graphics.color.named.gray&nbsp;//灰色<br>dojo.graphics.color.named.silver//银色</p>
<p><br>dojo.graphics.color.Color</p>
<p>颜色类</p>
<p><br>Usage Example:</p>
<p><br>var color = new dojo.graphics.color.Color(dojo.graphics.color.named.black); //定义一个黑色的颜色对象<br>var color = new dojo.graphics.color.Color(0,0,0); //定义一个黑色的颜色对象<br>var color = new dojo.graphics.color.Color(0,0,0,1.0); //定义一个黑色的颜色对象<br>var color = new dojo.graphics.color.Color([0,0,0,1.0]); //定义一个黑色的颜色对象<br>var color = new dojo.graphics.color.Color('rgb(0,0,0)'); //定义一个黑色的颜色对象<br>var color = new dojo.graphics.color.Color('#000000'); //定义一个黑色的颜色对象</p>
<p><br><br>dojo.graphics.color.Color.toRgb</p>
<p><br>Usage Example:</p>
<p><br>color.toRgb();&nbsp;&nbsp;//返回一个[0,0,0]的数组<br>color.toRgb(true);&nbsp;//返回一个[0,0,0,1.0]的数组</p>
<p><br><br>dojo.graphics.color.Color.toRgba</p>
<p><br>Usage Example:</p>
<p><br>color.toRgba();&nbsp;&nbsp;//返回一个[0,0,0,1.0]的数组</p>
<p><br><br>dojo.graphics.color.Color.toHex<br>dojo.graphics.color.Color.toString</p>
<p><br>Usage Example:</p>
<p><br>color.toHex();&nbsp;&nbsp;//返回"#000000"<br>color.toString();&nbsp;//返回"#000000"</p>
<p><br><br>dojo.graphics.color.Color.toCss</p>
<p><br>Usage Example:</p>
<p><br>color.toCss();&nbsp;&nbsp;//返回"rgb(0,0,0)"</p>
<p><br><br>dojo.graphics.color.Color.blend</p>
<p><br>混合另一个颜色得到一个新颜色</p>
<p><br>Usage Example:<br><br>color.blend('#ffffff', 1);&nbsp;//返回[255,255,255]<br>color.blend('#ffffff', -1);&nbsp;//返回[0,0,0]<br>color.blend('#ffffff', 0);&nbsp;//按1比1混合黑色和白色，返回[127,127,127]<br>颜色参数可以为颜色的任意形式，比如数组，字符串等</p>
<p><br>or</p>
<p><br>dojo.graphics.color.blend([0,0,0], [255,255,255], 0);&nbsp;//will return [127,127,127]<br>dojo.graphics.color.blend("#000000", "#ffffff", 0);&nbsp;//will return "#7f7f7f"<br>若第一个参数为字符串，则返回值也会返回字符串</p>
<p><br><br>dojo.graphics.color.Color.blendHex</p>
<p><br>Usage Example:</p>
<p><br>dojo.graphics.color.blendHex("#000000", "#ffffff", 0);&nbsp;//will return "#7f7f7f"</p>
<p><br><br>dojo.graphics.color.extractRGB</p>
<p><br>将输入转换为RGB数组</p>
<p><br>dojo.graphics.color.hex2rgb</p>
<p><br>将输入的字符串转换为RGB数组</p>
<p><br>dojo.graphics.color.rgb2hex</p>
<p><br>将输入的RGB数组转换为字符串</p>
<p><br><br>dojo.graphics.color.Color.fromArray</p>
<p><br>Usage Example:</p>
<p><br>var color = dojo.graphics.color.Color.fromArray([0,0,0,1.0]);</p>
<p><br><br>模块：dojo.uri.Uri</p>
<p><br>dojo.uri.Uri</p>
<p><br>专门用来处理URI(统一资源标识符)的类</p>
<p><br>Usage Example:</p>
<p><br>uri = (new dojo.uri.Uri("<a href="http://myserver/dojo/"><font color=#003366><u>http://myserver/dojo/</u></font></a>", "guide.html")).toString();&nbsp;//uri will be "<a href="http://myserver/dojo/guide.html"><font color=#003366><u>http://myserver/dojo/guide.html</u></font></a>"<br>uri = (new dojo.uri.Uri("<a href="http://myserver/dojo/"><font color=#003366><u>http://myserver/dojo/</u></font></a>", "../guide.html")).toString();&nbsp;//uri will be "<a href="http://myserver/guide.html"><font color=#003366><u>http://myserver/guide.html</u></font></a>"</p>
<p><br>RFC规定的URI语法：[scheme:][//authority][path][?query][#fragment]<br>authority语法：[user-info@]host[:port]</p>
<p><br>比如我们定义一个uri<br><br>var uri = new dojo.uri.Uri("<a href="http://user:password@myserver/dojo/"><font color=#003366><u>http://user:password@myserver:80/dojo/</u></font></a>", "guide.html?page=1#top");</p>
<p><br>则uri的属性如下：</p>
<p><br>authority: 服务器名 "user:password@myserver:80"<br>fragment:&nbsp;片断名 "top"<br>host: 主机名 "myserver"<br>password: 密码 "password"<br>path: 路径 "/dojo/guide.html"<br>port: 端口 80<br>query: 参数 "page=1"<br>scheme: 模式 "http"<br>uri: 完整的地址 "<a href="http://user:password@myserver/dojo/guide.html?page=1"><font color=#003366><u>http://user:password@myserver:80/dojo/guide.html?page=1</u></font></a>"<br>user: 用户名 "user:" 似乎有点问题，多了一个冒号</p>
<img src ="http://www.blogjava.net/terrywu/aggbug/119994.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/terrywu/" target="_blank">TNT</a> 2007-05-25 14:07 <a href="http://www.blogjava.net/terrywu/articles/119994.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Dojo学习笔记(8. dojo.event &amp; dojo.event.topic &amp; dojo.event.browser)</title><link>http://www.blogjava.net/terrywu/articles/119993.html</link><dc:creator>TNT</dc:creator><author>TNT</author><pubDate>Fri, 25 May 2007 06:06:00 GMT</pubDate><guid>http://www.blogjava.net/terrywu/articles/119993.html</guid><wfw:comment>http://www.blogjava.net/terrywu/comments/119993.html</wfw:comment><comments>http://www.blogjava.net/terrywu/articles/119993.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/terrywu/comments/commentRss/119993.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/terrywu/services/trackbacks/119993.html</trackback:ping><description><![CDATA[<h2><a id=viewpost1_TitleUrl href="http://www.cnblogs.com/Icebird/archive/2006/08/30/dojo_study_8.html"><u><font color=#0000ff>Dojo学习笔记(8. dojo.event &amp; dojo.event.topic &amp; dojo.event.browser)</font></u></a> </h2>
<p>Dojo学习笔记(8. dojo.event &amp; dojo.event.topic &amp; dojo.event.browser)</p>
<p>模块：dojo.event</p>
<p>终于进入有名的dojo事件处理系统的学习了，学习前建议读者先去补习一下AOP的相关知识</p>
<p>dojo.event.connect</p>
<p>绑定指定的方法到指定的对象的方法上</p>
<p>Usage Example:</p>
<p>简单绑定1</p>
<p>function doOnClick1()<br>{<br>&nbsp;alert("Clicked!");<br>}<br>dojo.event.connect(dojo.byId("inputTest"),"onclick","doOnClick1");</p>
<p>简单绑定2</p>
<p>obj = { doOnClick2: function(){ alert("Clicked!");}}<br>dojo.event.connect(dojo.byId("inputTest"),"onclick",obj,"doOnClick2");</p>
<p>如果存在需要进行多个事件的绑定的时候，你就会看到dojo的方便之处了</p>
<p>obj2 = { doOnClick2: function(){alert("Clicked!");}}<br>dojo.event.connect(dojo.byId("inputTest"),"onclick",obj,"doOnClick2");<br>dojo.event.connect(dojo.byId("inputTest"),"onclick",obj2,"doOnClick2");</p>
<p>connect可以对任何对象的方法进行绑定，而不是只能针对DOM对象</p>
<p>dojo.event.connect(obj,"doOnclick2","doOnClick1"); //在调用obj.doOnclick2()后调用doOnClick1()</p>
<p><br>dojo.event.connectBefore</p>
<p>dojo.event.connect默认是后绑定，connectBefore则是早绑定，绑定的方法将在指定方法前执行，用法与connect一致</p>
<p><br>dojo.event.connectAround</p>
<p>Usage Example:</p>
<p>function aroundTest(invocation){<br>&nbsp; //此处可以增加代码，比如检查参数(invocation.args)<br>&nbsp; var result = invocation.proceed();<br>&nbsp; //此处可以增加代码，比如修改结果(result)<br>&nbsp; return result;<br>}<br>dojo.event.connectAround(dojo.byId("inputTest"),"onclick","aroundTest");</p>
<p><br>dojo.event.connectOnce<br>说起这个函数，还真的是让我想了半天，直觉上我就把它想象成executeOnce，结果测试的结果让我差点想不通<br>connectOnce就是指保证只绑定一次，来避免重复绑定会导致的重复执行的问题</p>
<p><br>dojo.event.disconnect</p>
<p>解除绑定，调用参数与connect一致，即可解除之前的绑定操作</p>
<p><br>dojo.event.log</p>
<p>在执行指定对象的指定方法后自动记录日志</p>
<p>Usage Example:</p>
<p>dojo.event.log(obj, "doOnClick");&nbsp;//当调用obj.doOnClick时记录下日志"DEBUG:&nbsp; ([object Object]).doOnClick : "</p>
<p>你也可以这样写：</p>
<p>dojo.event.log({srcObj: obj, srcFunc: "doOnClick"});</p>
<p><br>dojo.event.kwConnect</p>
<p>kwConnect可以做到更加灵活的绑定，比如可以设置延迟执行绑定</p>
<p>Usage Example:</p>
<p>dojo.event.kwConnect({<br>&nbsp; srcObj: dojo.byId("inputTest"),<br>&nbsp; srcFunc: "onclick",<br>&nbsp; adviceObj: obj,<br>&nbsp; adviceFunc: "doOnclick2",</p>
<p>&nbsp; type: "before", //默认为"after"，可选: "before", "around"，注意：type是用来决定adviceFunc的行为的，如果为"around"，则aroundFunc将失效<br>&nbsp; aroundObj: null,<br>&nbsp; aroundFunc: null, //如果指定了aroundFunc，则其将对adviceFunc进行拦截，但是当type为"around"时，则aroundFunc将不会执行<br>&nbsp; once: false, //默认为false，允许重复绑定<br>&nbsp; delay: 3000, //延时3秒后执行adviceFunc<br>&nbsp; rate: 0, //这个从源代码没有看懂起什么作用<br>&nbsp; adviceMsg: false //这个从源代码没有看懂起什么作用<br>});</p>
<p><br>dojo.event.kwDisconnect</p>
<p>用来解除使用kwConnect指定的绑定</p>
<p><br>模块：dojo.event.topic</p>
<p>Topic机制与Advice机制都能够实现事件的绑定，但是显然,Topic更适合处理多重绑定。<br>发布主题，然后由用户订阅的机制就是一个典型的观察者模式</p>
<p>dojo.event.topic.registerPublisher</p>
<p>注册主题发布器</p>
<p>Usage Example:</p>
<p>dojo.event.topic.registerPublisher("myTopic", obj, "doOnClick2");</p>
<p><br>dojo.event.topic.subscribe</p>
<p>订阅主题</p>
<p>Usage Example:</p>
<p>dojo.event.topic.subscribe("myTopic", "test"); //执行obj.doOnClick2()以后会自动执行test()</p>
<p><br>dojo.event.topic.unsubscribe</p>
<p>取消订阅主题</p>
<p>Usage Example:</p>
<p>dojo.event.topic.unsubscribe("myTopic", "test");</p>
<p><br>dojo.event.topic.destroy</p>
<p>删除主题，此主题所有的订阅都将失效</p>
<p>Usage Example:</p>
<p>dojo.event.topic.destroy("myTopic");</p>
<p><br>模块：dojo.event.browser</p>
<p>dojo.event.browser.addListener</p>
<p>增加监听器</p>
<p>Usage Example:</p>
<p>function listener()<br>{<br>&nbsp; alert("ok");<br>}<br>dojo.event.browser.addListener(document, 'mousedown', listener); //事件名称可以加上"on"，也可以没有"on"<br>dojo.event.browser.addListener(document, 'onmousedown', listener, true); //capture为真表示不受上层元素的事件控制</p>
<p><br>dojo.event.browser.removeListener</p>
<p>清除监听器(这个方法似乎是无效的)</p>
<p><br>dojo.event.browser.callListener</p>
<p>调用监听器</p>
<p>Usage Example:</p>
<p>dojo.event.browser.callListener(listener, document);</p>
<p><br>dojo.event.browser.stopPropagation</p>
<p>阻止Event传播</p>
<p>Usage Example:</p>
<p>dojo.event.browser.stopPropagation();</p>
<p><br>dojo.event.browser.preventDefault</p>
<p>将当前事件的返回值设置为false</p>
<p>Usage Example:</p>
<p>dojo.event.browser.preventDefault();</p>
<p><br>dojo.event.browser.keys</p>
<p>键定义:<br>&nbsp;&nbsp;KEY_BACKSPACE: 8,<br>&nbsp;&nbsp;KEY_TAB: 9,<br>&nbsp;&nbsp;KEY_ENTER: 13,<br>&nbsp;&nbsp;KEY_SHIFT: 16,<br>&nbsp;&nbsp;KEY_CTRL: 17,<br>&nbsp;&nbsp;KEY_ALT: 18,<br>&nbsp;&nbsp;KEY_PAUSE: 19,<br>&nbsp;&nbsp;KEY_CAPS_LOCK: 20,<br>&nbsp;&nbsp;KEY_ESCAPE: 27,<br>&nbsp;&nbsp;KEY_SPACE: 32,<br>&nbsp;&nbsp;KEY_PAGE_UP: 33,<br>&nbsp;&nbsp;KEY_PAGE_DOWN: 34,<br>&nbsp;&nbsp;KEY_END: 35,<br>&nbsp;&nbsp;KEY_HOME: 36,<br>&nbsp;&nbsp;KEY_LEFT_ARROW: 37,<br>&nbsp;&nbsp;KEY_UP_ARROW: 38,<br>&nbsp;&nbsp;KEY_RIGHT_ARROW: 39,<br>&nbsp;&nbsp;KEY_DOWN_ARROW: 40,<br>&nbsp;&nbsp;KEY_INSERT: 45,<br>&nbsp;&nbsp;KEY_DELETE: 46,<br>&nbsp;&nbsp;KEY_LEFT_WINDOW: 91,<br>&nbsp;&nbsp;KEY_RIGHT_WINDOW: 92,<br>&nbsp;&nbsp;KEY_SELECT: 93,<br>&nbsp;&nbsp;KEY_F1: 112,<br>&nbsp;&nbsp;KEY_F2: 113,<br>&nbsp;&nbsp;KEY_F3: 114,<br>&nbsp;&nbsp;KEY_F4: 115,<br>&nbsp;&nbsp;KEY_F5: 116,<br>&nbsp;&nbsp;KEY_F6: 117,<br>&nbsp;&nbsp;KEY_F7: 118,<br>&nbsp;&nbsp;KEY_F8: 119,<br>&nbsp;&nbsp;KEY_F9: 120,<br>&nbsp;&nbsp;KEY_F10: 121,<br>&nbsp;&nbsp;KEY_F11: 122,<br>&nbsp;&nbsp;KEY_F12: 123,<br>&nbsp;&nbsp;KEY_NUM_LOCK: 144,<br>&nbsp;&nbsp;KEY_SCROLL_LOCK: 145</p>
<p><br>dojo.event.browser.currentEvent</p>
<p>最近一次的Event，其属性包括：</p>
<p>altKey&nbsp;&nbsp;//检查alt键的状态，当alt键按下时，值为 true<br>button&nbsp;&nbsp;//检查按下的鼠标键，0 没按键，1 按左键，2 按右键，3 按左右键，4 按中间键，5 按左键和中间键，6 按右键和中间键，7 按所有的键<br>&nbsp;&nbsp;//这个属性仅用于onmousedown, onmouseup, 和 onmousemove 事件。对其他事件，不管鼠标状态如何，都返回 0（比如onclick）<br>clientX&nbsp;&nbsp;//返回鼠标在窗口客户区域中的X坐标<br>clientY&nbsp;&nbsp;//返回鼠标在窗口客户区域中的Y坐标<br>ctrlKey&nbsp;&nbsp;//检查ctrl键的状态，当ctrl键按下时，值为 true <br>fromElement&nbsp;//检测 onmouseover 和 onmouseout 事件发生时，鼠标所离开的元素<br>keyCode&nbsp;&nbsp;//检测键盘事件相对应的内码，仅当type为keydown,keyup,keypress时才有效<br>offsetX&nbsp;&nbsp;//检查相对于触发事件的对象，鼠标位置的水平坐标<br>offsetY&nbsp;&nbsp;//检查相对于触发事件的对象，鼠标位置的垂直坐标<br>propertyName&nbsp;//设置或返回元素的变化了的属性的名称，你可以通过使用 onpropertychange 事件，得到 propertyName 的值<br>screenX&nbsp;&nbsp;//检测鼠标相对于用户屏幕的水平位置<br>screenY&nbsp;&nbsp;//检测鼠标相对于用户屏幕的垂直位置<br>shiftKey&nbsp;//检查shift键的状态，当shift键按下时，值为true<br>srcElement&nbsp;//返回触发事件的元素<br>srcFilter&nbsp;//返回触发 onfilterchange 事件的滤镜<br>toElement&nbsp;//检测 onmouseover 和 onmouseout 事件发生时，鼠标所进入的元素<br>type&nbsp;&nbsp;//返回没有&#8220;on&#8221;作为前缀的事件名，比如click, mousedown<br>x&nbsp;&nbsp;//返回鼠标相对于css属性中有position属性的上级元素的x轴坐标。如果没有css属性中有position属性的上级元素，默认以BODY元素作为参考对象<br>y&nbsp;&nbsp;//返回鼠标相对于css属性中有position属性的上级元素的y轴坐标。如果没有css属性中有position属性的上级元素，默认以BODY元素作为参考对象<br>target&nbsp;&nbsp;//同srcElement<br>currentTarget<br>layerX&nbsp;&nbsp;//同offsetX<br>layerY&nbsp;&nbsp;//同offsetY<br>pageX&nbsp;&nbsp;//无水平滚动条的情况下与clientX同<br>pageY&nbsp;&nbsp;//无水平滚动条的情况下与clientY同<br>relatedTarget&nbsp;// 仅当type为mouseover,mouseout时才有效<br>keys&nbsp;&nbsp;//与dojo.event.browser.keys相同，仅当type为keydown,keyup,keypress时才有效<br>charCode&nbsp;//键值，仅当type为keypress时才有效</p>
<p><br>dojo.event.browser.isEvent</p>
<p>判断指定对象是否为event对象</p>
<p>Usage Example:</p>
<p>dojo.event.browser.isEvent(dojo.event.browser.currentEvent); //当dojo.event.browser.currentEvent不为null时返回true</p>
<img src ="http://www.blogjava.net/terrywu/aggbug/119993.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/terrywu/" target="_blank">TNT</a> 2007-05-25 14:06 <a href="http://www.blogjava.net/terrywu/articles/119993.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Dojo学习笔记(7. dojo.dom)</title><link>http://www.blogjava.net/terrywu/articles/119984.html</link><dc:creator>TNT</dc:creator><author>TNT</author><pubDate>Fri, 25 May 2007 05:41:00 GMT</pubDate><guid>http://www.blogjava.net/terrywu/articles/119984.html</guid><wfw:comment>http://www.blogjava.net/terrywu/comments/119984.html</wfw:comment><comments>http://www.blogjava.net/terrywu/articles/119984.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/terrywu/comments/commentRss/119984.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/terrywu/services/trackbacks/119984.html</trackback:ping><description><![CDATA[<p align=center><strong>Dojo学习笔记(7. dojo.dom)</strong></p>
<p>模块：dojo.dom</p>
<p>dojo.dom.isNode</p>
<p>测试指定对象是否为节点</p>
<p>Usage Example:</p>
<p>dojo.dom.isNode(dojo.byId('edtTitle'));</p>
<p><br>dojo.dom.getUniqueId</p>
<p>取得唯一id</p>
<p>Usage Example:</p>
<p>dojo.dom.getUniqueId();&nbsp;&nbsp;//will return dj_unique_#</p>
<p><br>dojo.dom.firstElement = dojo.dom.getFirstChildElement</p>
<p>取得指定节点下的第一个满足指定Tag条件的子节点</p>
<p>Usage Example:</p>
<p>dojo.dom.firstElement(parentNode, 'SPAN');</p>
<p><br>dojo.dom.lastElement = dojo.dom.getLastChildElement</p>
<p>取得指定节点下的最后一个满足指定Tag条件的子节点</p>
<p>Usage Example:</p>
<p>dojo.dom.lastElement(parentNode, 'SPAN');</p>
<p><br>dojo.dom.nextElement = dojo.dom.getNextSiblingElement</p>
<p>取得指定节点的下一个满足指定Tag条件的子节点</p>
<p>Usage Example:</p>
<p>dojo.dom.nextElement(node, 'SPAN');</p>
<p><br>dojo.dom.prevElement = dojo.dom.getPreviousSiblingElement</p>
<p>取得指定节点的前一个满足指定Tag条件的子节点</p>
<p>Usage Example:</p>
<p>dojo.dom.prevElement(node, 'SPAN');</p>
<p><br>dojo.dom.moveChildren</p>
<p>把指定节点下的所有子节点移动到目标节点下，并返回移动的节点数</p>
<p>Usage Example:</p>
<p>dojo.dom.moveChildren(srcNode, destNode, true);&nbsp;//仅移动子节点，srcNode中的文字将被丢弃<br>dojo.dom.moveChildren(srcNode, destNode, false);//包括文字和子节点都将被移动到目标节点下</p>
<p><br>dojo.dom.copyChildren</p>
<p>把指定节点下的所有子节点复制到目标节点下，并返回复制的节点数</p>
<p>Usage Example:</p>
<p>dojo.dom.moveChildren(srcNode, destNode, true);&nbsp;//仅复制子节点，srcNode中的文字将被忽略<br>dojo.dom.moveChildren(srcNode, destNode, false);//包括文字和子节点都将被复制到目标节点下</p>
<p><br>dojo.dom.removeChildren</p>
<p>删除指定节点下的所有子节点，并返回删除的节点数</p>
<p>Usage Example:</p>
<p>dojo.dom.moveChildren(node);</p>
<p><br>dojo.dom.replaceChildren</p>
<p>用指定的新节点替换父节点下的所有子节点</p>
<p>Usage Example:</p>
<p>dojo.dom.replaceChildren(node, newChild); //目前还不支持newChild为数组形式</p>
<p><br>dojo.dom.removeNode</p>
<p>删除指定的节点</p>
<p>Usage Example:</p>
<p>dojo.dom.removeNode(node);</p>
<p><br>dojo.dom.getAncestors</p>
<p>返回指定节点的父节点集合</p>
<p>Usage Example:</p>
<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>
<p><br>dojo.dom.getAncestorsByTag</p>
<p>返回所有符合指定Tag的指定节点的父节点集合</p>
<p>Usage Example:</p>
<p>dojo.dom.getAncestorsByTag(node, 'span', false);&nbsp;//返回所有的类型为SPAN的父节点集合<br>dojo.dom.getAncestorsByTag(node, 'span', true);&nbsp;&nbsp;//返回最近的一个类型为SPAN的父节点</p>
<p><br>dojo.dom.getFirstAncestorByTag</p>
<p>返回最近的一个符合指定Tag的指定节点的父节点</p>
<p>Usage Example:</p>
<p>dojo.dom.getFirstAncestorByTag(node, 'span');&nbsp;//返回最近的一个类型为SPAN的父节点</p>
<p><br>dojo.dom.isDescendantOf</p>
<p>判断指定的节点是否为另一个节点的子孙</p>
<p>Usage Example:</p>
<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><br>dojo.dom.innerXML</p>
<p>返回指定节点的XML</p>
<p>Usage Example:</p>
<p>dojo.dom.innerXML(node);</p>
<p><br>dojo.dom.createDocument</p>
<p>创建一个空的文档对象</p>
<p>Usage Example:</p>
<p>dojo.dom.createDocument();</p>
<p><br>dojo.dom.createDocumentFromText</p>
<p>根据文字创建一个文档对象</p>
<p>Usage Example:</p>
<p>dojo.dom.createDocumentFromText('&lt;?xml version="1.0" encoding="gb2312" ?&gt;&lt;a&gt;1&lt;/a&gt;','text/xml');</p>
<p><br>dojo.dom.prependChild</p>
<p>将指定的节点插入到父节点的最前面</p>
<p>Usage Example:</p>
<p>dojo.dom.prependChild(node, parent);</p>
<p><br>dojo.dom.insertBefore</p>
<p>将指定的节点插入到参考节点的前面</p>
<p>Usage Example:</p>
<p>dojo.dom.insertBefore(node, ref, false); //如果满足要求的话就直接退出<br>dojo.dom.insertBefore(node, ref, true);</p>
<p><br>dojo.dom.insertAfter</p>
<p>将指定的节点插入到参考节点的后面</p>
<p>Usage Example:</p>
<p>dojo.dom.insertAfter(node, ref, false); //如果满足要求的话就直接退出<br>dojo.dom.insertAfter(node, ref, true);</p>
<p><br>dojo.dom.insertAtPosition</p>
<p>将指定的节点插入到参考节点的指定位置</p>
<p>Usage Example:</p>
<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><br>dojo.dom.insertAtIndex</p>
<p>将指定的节点插入到参考节点的子节点中的指定索引的位置</p>
<p>Usage Example:</p>
<p>dojo.dom.insertAtIndex(node, containingNode, 3);&nbsp; //把node插入到containingNode的子节点中，使其成为第3个子节点</p>
<p><br>dojo.dom.textContent</p>
<p>设置或获取指定节点的文本</p>
<p>Usage Example:</p>
<p>dojo.dom.textContent(node, 'text');&nbsp;//设置node的文本为'text'<br>dojo.dom.textContent(node);&nbsp;//返回node的文本</p>
<p><br>dojo.dom.hasParent</p>
<p>判断指定节点是否有父节点</p>
<p>Usage Example:</p>
<p>dojo.dom.hasParent(node);</p>
<p><br>dojo.dom.isTag</p>
<p>判断节点是否具有指定的tag</p>
<p>Usage Example:</p>
<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>
<img src ="http://www.blogjava.net/terrywu/aggbug/119984.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/terrywu/" target="_blank">TNT</a> 2007-05-25 13:41 <a href="http://www.blogjava.net/terrywu/articles/119984.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Dojo学习笔记(6. dojo.io.IO &amp; dojo.io.BrowserIO)</title><link>http://www.blogjava.net/terrywu/articles/119983.html</link><dc:creator>TNT</dc:creator><author>TNT</author><pubDate>Fri, 25 May 2007 05:39:00 GMT</pubDate><guid>http://www.blogjava.net/terrywu/articles/119983.html</guid><wfw:comment>http://www.blogjava.net/terrywu/comments/119983.html</wfw:comment><comments>http://www.blogjava.net/terrywu/articles/119983.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/terrywu/comments/commentRss/119983.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/terrywu/services/trackbacks/119983.html</trackback:ping><description><![CDATA[<h2><a id=viewpost1_TitleUrl href="http://www.cnblogs.com/Icebird/archive/2006/08/07/dojo_study_6.html"><u><font color=#0000ff>Dojo学习笔记(6. dojo.io.IO &amp; dojo.io.BrowserIO)</font></u></a> </h2>
<p>模块：dojo.io.IO<br><br>dojo.io.bind</p>
<p><br>处理请求取回需要的数据并处理</p>
<p>&nbsp;</p>
<p>这个函数是AJAX中最为重要和有用的函数，dojo.io.bind这个类是用来处理客户端与服务器间通讯的，需要通讯的参数由对象dojo.io.Request所定义，具体通讯的方法则由另外一个对象Transport所提供。</p>
<p>&nbsp;</p>
<p>因此，我们如果需要与服务器通讯，则应该定义一个Request对象，其中包括服务器地址及回调函数，例子中Requset都是以匿名对象方式定义的</p>
<p><br>虽然我们可以定义一个自己的Transport，但是显然不如直接利用现成的Transport方便。</p>
<p><br>Dojo里提供了一个同时兼容IE和Firefox的dojo.io.XMLHTTPTransport，但是这个对象位于 dojo.io.BrowserIO，因此，一般require dojo.io.IO时，还应该require dojo.io.BrowserIO</p>
<p>&nbsp;</p>
<p>Usage Example:</p>
<p>&nbsp; dojo.io.bind({<br>&nbsp;&nbsp;&nbsp; url: "<a href="http://localhost/test.html"><font color=#003366><u>http://localhost/test.html</u></font></a>", //要请求的页面地址<br>&nbsp;&nbsp;&nbsp; mimetype: "text/html", //请求的页面的类型，应该设置为与你请求页面类型对应的mimetype，默认为 "text/plain"<br>&nbsp;&nbsp;&nbsp; method："GET", //默认为"GET"<br>&nbsp;&nbsp;&nbsp; sync: false, //默认为异步执行<br>&nbsp;&nbsp;&nbsp; useCache: false, //默认为不使用页面缓存，注意这里的缓存并不是浏览器的缓存，而是Dojo自身所维护的页面缓存<br>&nbsp;&nbsp;&nbsp; preventCache: false, //默认为启用浏览器缓存，否则将通过自动增加不同的参数来确保浏览器缓存失效<br>&nbsp;&nbsp;&nbsp; timeoutSeconds: 3000,&nbsp; //3秒后超时，如果为0则永不超时</p>
<p>&nbsp;&nbsp;&nbsp; load: function(type, data, evt) { alert(data); }, //type should be "load", data is that we wanted<br>&nbsp;&nbsp;&nbsp; error: function(type, error) { alert(error.message); }, //error is dojo.io.Error<br>&nbsp;&nbsp;&nbsp; timeout: function(type) { alert("请求超时！"); }<br>&nbsp; });</p>
<p><br>&nbsp; 你也可以用一个handle来处理所有的事件</p>
<p>&nbsp;</p>
<p>&nbsp; dojo.io.bind({<br>&nbsp;&nbsp;&nbsp; url: "<a href="http://localhost/test.html"><font color=#003366><u>http://localhost/test.html</u></font></a>", //要请求的页面地址<br>&nbsp;&nbsp;&nbsp; mimetype: "text/html", //请求的页面的类型，应该设置为与你请求页面类型对应的mimetype<br>&nbsp;&nbsp;&nbsp; timeoutSeconds: 3000,&nbsp; //3秒后超时，如果为0则永不超时<br>&nbsp;&nbsp;&nbsp; handle: function(type, data, evt){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(type == "load") { alert(data); } //data is that we wanted<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else if (type == "error") { alert(data.message); } //data is the error object<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else { ; } //other events maybe need handled<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp; });<br>&nbsp; <br>&nbsp; 如果没有在Request中指定所用的transport，则Dojo会自动的在已注册的transports中寻找能够处理这个Request的transport，如果不能找到，则返回指定的Request。下面是一个指定了transport的例子:</p>
<p><br>&nbsp; dojo.io.bind({<br>&nbsp;&nbsp;&nbsp; url: "<a href="http://localhost/test.html"><font color=#003366><u>http://localhost/test.html</u></font></a>", //要请求的页面地址<br>&nbsp;&nbsp;&nbsp; mimetype: "text/html", //请求的页面的类型，应该设置为与你请求页面类型对应的mimetype<br>&nbsp;&nbsp;&nbsp; timeoutSeconds: 3000,&nbsp; //3秒后超时，如果为0则永不超时<br>&nbsp;&nbsp;&nbsp; transport: "XMLHTTPTransport",</p>
<p>&nbsp;&nbsp;&nbsp; load: function(type, data, evt) { alert(data); }, //type should be "load", data is that we wanted<br>&nbsp;&nbsp;&nbsp; error: function(type, error) { alert(error.message); }, //error is dojo.io.Error<br>&nbsp;&nbsp;&nbsp; timeout: function(type) { alert("请求超时！"); }<br>&nbsp; });</p>
<p><br>&nbsp; 你还可以利用bind来得到一个JavaScript所定义的对象（注意mimetype必须要定义为"text/javascript"）</p>
<p>&nbsp;</p>
<p>&nbsp; testObj = dojo.io.bind({<br>&nbsp;&nbsp;&nbsp; url: "<a href="http://localhost/test.js"><font color=#003366><u>http://localhost/test.js</u></font></a>", //test.js里定义了一个对象<br>&nbsp;&nbsp;&nbsp; mimetype: "text/javascript", //请求的页面的类型，应该设置为与你请求页面类型对应的mimetype<br>&nbsp;&nbsp;&nbsp; timeoutSeconds: 3000,&nbsp; //3秒后超时，如果为0则永不超时<br>&nbsp;&nbsp;&nbsp; handle: function(type, data, evt){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(type == "load") { alert(data); } //data is a object or value<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else if (type == "error") { alert(data.message); } //data is the error object<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else { ; } //other events maybe need handled<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp; });<br>&nbsp; <br>&nbsp; 下面是一个Post的例子:<br>&nbsp; <br>&nbsp; dojo.io.bind({<br>&nbsp;&nbsp;&nbsp; url: "<a href="http://localhost/test.aspx"><font color=#003366><u>http://localhost/test.aspx</u></font></a>", //要提交的页面地址<br>&nbsp;&nbsp;&nbsp; mimetype: "text/html", //请求的页面的类型，应该设置为与你请求页面类型对应的mimetype<br>&nbsp;&nbsp;&nbsp; timeoutSeconds: 3000,&nbsp; //3秒后超时，如果为0则永不超时<br>&nbsp;&nbsp;&nbsp; method: "POST",<br>&nbsp;&nbsp;&nbsp; formNode: dojo.byId("myForm"), //指定提交的Form名称</p>
<p>&nbsp;&nbsp;&nbsp; load: function(type, data, evt) { alert(data); }, //type should be "load", data is that we wanted<br>&nbsp;&nbsp;&nbsp; error: function(type, error) { alert(error.message); }, //error is dojo.io.Error<br>&nbsp;&nbsp;&nbsp; timeout: function(type) { alert("请求超时！"); }<br>&nbsp; });</p>
<p>&nbsp;</p>
<p>&nbsp; 另一个Post的例子(without Form to post):</p>
<p><br>&nbsp; dojo.io.bind({<br>&nbsp;&nbsp;&nbsp; url: "<a href="http://localhost/test.aspx"><font color=#003366><u>http://localhost/test.aspx</u></font></a>", //要提交的页面地址<br>&nbsp;&nbsp;&nbsp; mimetype: "text/html", //请求的页面的类型，应该设置为与你请求页面类型对应的mimetype<br>&nbsp;&nbsp;&nbsp; timeoutSeconds: 3000,&nbsp; //3秒后超时，如果为0则永不超时<br>&nbsp;&nbsp;&nbsp; method: "POST",<br>&nbsp;&nbsp;&nbsp; content: {a: 1, b: 2}, //要提交的数据</p>
<p>&nbsp;&nbsp;&nbsp; load: function(type, data, evt) { alert(data); }, //type should be "load", data is that we wanted<br>&nbsp;&nbsp;&nbsp; error: function(type, error) { alert(error.message); }, //error is dojo.io.Error<br>&nbsp;&nbsp;&nbsp; timeout: function(type) { alert("请求超时！"); }<br>&nbsp; });</p>
<p><br>&nbsp;</p>
<p>dojo.io.queueBind</p>
<p><br>&nbsp; 有时，我们需要一次发出多个网页请求，则应该使用dojo.io.queueBind，因为浏览器可能只允许同时发出有限个数的请求，如果是使用dojo.io.bind的话，则有可能会申请不到新的XMLHttp对象而导致出错。<br><br>&nbsp; 用法与dojo.io.bind是一样的。</p>
<p><br>&nbsp;</p>
<p>dojo.io.argsFromMap</p>
<p><br>&nbsp; 用来把对象转换为URL的参数形式<br>&nbsp; <br>Usage Example:</p>
<p><br>&nbsp; dojo.io.argsFromMap({a:1,b:2,c:3}); //will return "c=3&amp;b=2&amp;a=1"<br>&nbsp; dojo.io.argsFromMap({name:"名称",value:"值"},"utf"); //will return "value=%E5%80%BC&amp;name=%E5%90%8D%E7%A7%B0", 有中文的话应该指定utf格式，否则dojo.string.encodeAscii返回的编码是很怪异的<br>&nbsp; dojo.io.argsFromMap({a:1,b:2,c:3}, "utf", "c"); //will return "b=2&amp;a=1&amp;c=3"，最后一个参数可以控制指定名称的值出现在最后<br>&nbsp; </p>
<p>&nbsp;</p>
<p>dojo.io.setIFrameSrc</p>
<p><br>&nbsp; 设置IFrame的Src<br>&nbsp; <br>Usage Example:</p>
<p>&nbsp;</p>
<p>&nbsp; dojo.io.setIFrameSrc(dojo.byId("myFrame"), "<a href="http://localhost/test.htm"><font color=#003366><u>http://localhost/test.htm</u></font></a>"); //myFrame打开指定的网页<br>&nbsp; dojo.io.setIFrameSrc(dojo.byId("myFrame"), "<a href="http://localhost/test.htm"><font color=#003366><u>http://localhost/test.htm</u></font></a>", true); //myFrame打开指定的网页，并覆盖浏览器的历史记录</p>
<p><br>&nbsp;</p>
<p>TODO: 补充一个kwArgs的例子，我之前在网上看见过，可是现在无论如何也找不到相关的页面了，只好以后在举例了</p>
<p>&nbsp;</p>
<p><br>模块：dojo.io.BrowserIO</p>
<p>&nbsp;</p>
<p>基本上就提供了dojo.io.XMLHTTPTransport这个对象</p>
<p><br>XMLHTTPTransport一般能够满足我们的需求，但是其有几个限制：它不能传输文件，不能够成功执行跨域名的远程请求，并且不支持 file:// 这样的协议</p>
<p><br>因此，根据应用要求，我们可能会需要选用其它的transport: dojo.io.IframeTransport, dojo.io.repubsubTranport, dojo.io.ScriptSrcTransport, ShortBusTransport</p>
<p>&nbsp;</p>
<p>dojo.io.IframeTransport，用法与xmlhttp是一样的，其优点就是可以跨域，不存在任何的安全问题<br>如果 Request指定的mimetype是text或javascript，返回的内容应该是放在第一个textarea里的内容，如果指定的 mimetype是html，则IFrame里的html则是需要的内容。因为浏览器兼容的原因，IframeTransport不能正确处理返回类型为 XML的请求。 </p>
<p>&nbsp;</p>
<p>关于Rpc，这个类似于Remoting的东西，也将在以后对其进行介绍。</p>
<img src ="http://www.blogjava.net/terrywu/aggbug/119983.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/terrywu/" target="_blank">TNT</a> 2007-05-25 13:39 <a href="http://www.blogjava.net/terrywu/articles/119983.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Dojo学习笔记(5. dojo.lang.array &amp; dojo.lang.func &amp; dojo.string.extras)</title><link>http://www.blogjava.net/terrywu/articles/119982.html</link><dc:creator>TNT</dc:creator><author>TNT</author><pubDate>Fri, 25 May 2007 05:38:00 GMT</pubDate><guid>http://www.blogjava.net/terrywu/articles/119982.html</guid><wfw:comment>http://www.blogjava.net/terrywu/comments/119982.html</wfw:comment><comments>http://www.blogjava.net/terrywu/articles/119982.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/terrywu/comments/commentRss/119982.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/terrywu/services/trackbacks/119982.html</trackback:ping><description><![CDATA[<div align=center><strong>Dojo学习笔记(5. dojo.lang.array &amp; dojo.lang.func &amp; dojo.string.extras)</strong></div>
<br><br>模块：dojo.lang.array<br><br>dojo.lang.has<br>判断对象是否具有指定属性，不过这个方法有用吗，不如直接使用 if(name in obj)<br>Usage Example:<br>&nbsp;&nbsp;dojo.lang.has(dojo.lang, "has"); //will return true<br><br>dojo.lang.isEmpty<br>判断对象或数组是否为空<br>Usage Example:<br>&nbsp;&nbsp;dojo.lang.isEmpty({a: 1}); //will return false<br>&nbsp;&nbsp;dojo.lang.isEmpty([]); //will return true<br><br>dojo.lang.map<br>调用指定的方法处理指定的数组或字符串<br>Usage Example:<br>&nbsp;&nbsp;dojo.lang.map([1,2,3,4,5], function(x) { return x * x;}); //will return [1,4,9,16,25]<br><br>dojo.lang.forEach<br>遍历指定的数组或字符串，并对其中的元素调用指定的方法<br>Usage Example:<br>&nbsp;&nbsp;dojo.lang.forEach("abc", function(x) { alert(x); });<br><br>dojo.lang.every<br>检查指定的数组是否全部满足指定方法的条件<br>Usage Example:<br>&nbsp;&nbsp;dojo.lang.every([1,-2,3], function(x) { return x &gt; 0; }); //指定的数组不是全大于0的，因此返回false<br><br>dojo.lang.some<br>检查指定的数组是否部分满足指定方法的条件<br>Usage Example:<br>&nbsp;&nbsp;dojo.lang.some([1,-2,3], function(x) { return x &gt; 0; }); //指定的数组有大于0的元素，因此返回true<br><br>dojo.lang.filter<br>根据指定的方法来过滤指定的数组<br>Usage Example:<br>&nbsp;&nbsp;dojo.lang.filter([1,-2,3], function(x) { return x &gt; 0; }); //will return [1, 3]<br><br>dojo.lang.unnest<br>把指定的参数或数组转换为一维数组<br>Usage Example:<br>&nbsp;&nbsp;dojo.lang.unnest(1, 2, 3);&nbsp;&nbsp;//will return [1, 2, 3]<br>&nbsp;&nbsp;dojo.lang.unnest(1, [2, [3], [{4}]]); //will return [1, 2, 3, 4]<br><br>dojo.lang.toArray<br>将输入转换为数组<br>Usage Example:<br>&nbsp;&nbsp;function test()<br>&nbsp;&nbsp;{<br>&nbsp; &nbsp; return dojo.lang.toArray(arguments, 1);<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;test(1,2,3,4,5); //will return [2,3,4,5]<br><br>模块：dojo.lang.func<br>dojo.lang.hitch<br>将指定的方法挂在指定的对象下并返回该方法<br>Usage Example:<br>&nbsp;&nbsp;func = {test: function(s) {alert(s)}};<br>&nbsp;&nbsp;dojo.lang.mixin(func, {demo: dojo.lang.hitch(func, "test")});<br>&nbsp;&nbsp;func.demo("demo and test are same method");<br><br>dojo.lang.forward<br>返回自身对象的指定名称的方法引用<br>Usage Example:<br>&nbsp;&nbsp;func = {test: function(s) {alert(s)}, demo: dojo.lang.forward("test")};<br>&nbsp;&nbsp;func.demo("demo and test are same method");<br><br>dojo.lang.curry<br>What is curry? 请参阅这篇文章：<a href="http://www.svendtofte.com/code/curried_javascript/" target=_blank><font color=#003366><u>http://www.svendtofte.com/code/curried_javascript/</u></font></a><br>Usage Example:<br>&nbsp;&nbsp;function add(a, b)<br>&nbsp;&nbsp;{<br>&nbsp; &nbsp; return a + b;<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;dojo.lang.curry(null, add, 2, 3); //will return 5<br>&nbsp;&nbsp;dojo.lang.curry(null, add, 2)(3); //will return 5<br>&nbsp;&nbsp;dojo.lang.curry(null, add)(2)(3); //will return 5<br>&nbsp;&nbsp;dojo.lang.curry(null, add)()(2)(3); //will return 5<br><br>dojo.lang.curryArguments<br>与dojo.lang.curry类似，但是可以选择忽略掉前n个参数<br>Usage Example:<br>&nbsp;&nbsp;function add(a, b)<br>&nbsp;&nbsp;{<br>&nbsp; &nbsp; return a + b;<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;dojo.lang.curryArguments(null, add, [1,2,3,4,5], 2); //will return 5 (= 2 + 3)<br>&nbsp;&nbsp;<br>dojo.lang.tryThese<br>测试参数指定所有函数，并返回第一个返回值不为0的函数值<br>from seno:&nbsp;<br>dojo.lang.tryThese方法和prototype中的Try.these()方法是一样的， <br>xmlNode.text在一些浏览器中好用，但是xmlNode.textContent在另一些浏览器中正常工作。 使用Try.these()方法我们可以得到正常工作的那个方法的返回值。 <br>&lt;script&gt; <br>function getXmlNodeValue(xmlNode){ <br>return Try.these( <br>function() {return xmlNode.text;}, <br>function() {return xmlNode.textContent;) <br>); <br>} <br><br>dojo.lang.delayThese<br>没看懂这个函数怎么用<br><br>模块：dojo.string.extras<br><br>dojo.string.substituteParams<br>类似C#中的String.Format函数<br>%{name}要保证与传入的对象的名称大小写一致，否则会出异常<br>Usage Example:<br>&nbsp;&nbsp;dojo.string.substituteParams("%{0} - %{1} - %{2}", "a", "b", "c"); //will return "a - b - c"<br>&nbsp;&nbsp;dojo.string.substituteParams("%{name}: %{value}", {name:"名称",value:"值"}); //will return "名称: 值"<br><br>dojo.string.capitalize<br>把每一个单词的首字母大写<br>Usage Example:<br>&nbsp;&nbsp;dojo.string.capitalize("show me love"); //will return "Show Me Love"<br><br>dojo.string.isBlank<br>判断输入字符串是否为空或全是空白字符，如果传入对象为非字符串则也会返回true<br>Usage Example:<br>&nbsp;&nbsp;dojo.string.isBlank("&nbsp; &nbsp;1&nbsp; &nbsp;"); //will return false<br><br>dojo.string.escape<br>参数1为type，可传值为: xml/html/xhtml, sql, regexp/regex, javascript/jscript/js, ascii<br>将按照所传type对字符串进行编码<br>Usage Example:<br>&nbsp;&nbsp;dojo.string.escape("html", "&lt;input type='text' value='' /&gt;"); //will return "&amp;lt;input <br>type='text' value='' /&amp;gt;"<br><br>dojo.string.encodeAscii<br>dojo.string.escapeXml<br>dojo.string.escapeSql<br>dojo.string.escapeRegExp<br>dojo.string.escapeJavaScript<br>dojo.string.escapeString<br>这些函数也就是 dojo.string.escape 所调用的，这里无需多说<br><br>dojo.string.summary<br>取得输入字符串的缩略版本<br>Usage Example:<br>&nbsp;&nbsp;dojo.string.summary("1234567890", 5); //will return "12345..."<br><br>dojo.string.endsWith<br>判断输入字符串是否以指定的字符串结尾<br>Usage Example:<br>&nbsp;&nbsp;dojo.string.endsWith("abcde", "E");&nbsp;&nbsp;//will return false<br>&nbsp;&nbsp;dojo.string.endsWith("abcde", "E", true); //will return true<br><br>dojo.string.endsWithAny<br>判断输入字符串是否以指定的任意字符串结尾<br>Usage Example:<br>&nbsp;&nbsp;dojo.string.endsWithAny("abcde", "E", "e"); //will return true<br><br>dojo.string.startsWith<br>判断输入字符串是否以指定的字符串开头<br>Usage Example:<br>&nbsp;&nbsp;dojo.string.startsWith("abcde", "A");&nbsp;&nbsp;//will return false<br>&nbsp;&nbsp;dojo.string.startsWith("abcde", "A", true); //will return true<br><br>dojo.string.startsWithAny<br>判断输入字符串是否以指定的任意字符串开头<br>Usage Example:<br>&nbsp;&nbsp;dojo.string.startsWithAny("abcde", "A", "a"); //will return true<br><br>dojo.string.has<br>判断输入字符串是否含有任意指定的字符串<br>Usage Example:<br>&nbsp;&nbsp;dojo.string.has("abcde", "1", "23", "abc"); //will return true<br><br>dojo.string.normalizeNewlines<br>按要求转换回车换行的格式<br>Usage Example:<br>&nbsp;&nbsp;dojo.string.normalizeNewlines("a\r\nb\r\n", "\r"); //will return "a\rb\r"<br><br>dojo.string.splitEscaped<br>将字符串按分隔符转换为数组<br>Usage Example:<br>&nbsp;&nbsp;dojo.string.splitEscaped("a\\_b_c", '_'); //will return ["a\\_b", "c"]
<img src ="http://www.blogjava.net/terrywu/aggbug/119982.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/terrywu/" target="_blank">TNT</a> 2007-05-25 13:38 <a href="http://www.blogjava.net/terrywu/articles/119982.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Dojo学习笔记(4. dojo.string &amp; dojo.lang)</title><link>http://www.blogjava.net/terrywu/articles/119979.html</link><dc:creator>TNT</dc:creator><author>TNT</author><pubDate>Fri, 25 May 2007 05:35:00 GMT</pubDate><guid>http://www.blogjava.net/terrywu/articles/119979.html</guid><wfw:comment>http://www.blogjava.net/terrywu/comments/119979.html</wfw:comment><comments>http://www.blogjava.net/terrywu/articles/119979.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/terrywu/comments/commentRss/119979.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/terrywu/services/trackbacks/119979.html</trackback:ping><description><![CDATA[<p align=center><strong>Dojo学习笔记(4. dojo.string &amp; dojo.lang) </strong></p>
<pre><strong>模块：dojo.string.common / dojo.string</strong>
dojo.string.common 和 dojo.string 是一样的，只要require其中一个就可以使用以下方法
<strong>dojo.string.trim</strong>
去掉字符串的空白
Usage Example:
<div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: rgb(0,0,0)">s&nbsp;</span><span style="COLOR: rgb(0,0,0)">=</span><span style="COLOR: rgb(0,0,0)">&nbsp;</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">&nbsp;abc&nbsp;</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>dojo.string.trim(s);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: rgb(0,128,0)">//</span><span style="COLOR: rgb(0,128,0)">will&nbsp;return&nbsp;"abc"</span><span style="COLOR: rgb(0,128,0)"><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: rgb(0,0,0)">dojo.string.trim(s,&nbsp;</span><span style="COLOR: rgb(0,0,0)">0</span><span style="COLOR: rgb(0,0,0)">);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: rgb(0,128,0)">//</span><span style="COLOR: rgb(0,128,0)">will&nbsp;return&nbsp;"abc"</span><span style="COLOR: rgb(0,128,0)"><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: rgb(0,0,0)">dojo.string.trim(s,&nbsp;</span><span style="COLOR: rgb(0,0,0)">1</span><span style="COLOR: rgb(0,0,0)">);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: rgb(0,128,0)">//</span><span style="COLOR: rgb(0,128,0)">will&nbsp;return&nbsp;"abc&nbsp;"</span><span style="COLOR: rgb(0,128,0)"><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: rgb(0,0,0)">dojo.string.trim(s,&nbsp;</span><span style="COLOR: rgb(0,0,0)">-</span><span style="COLOR: rgb(0,0,0)">1</span><span style="COLOR: rgb(0,0,0)">);</span><span style="COLOR: rgb(0,128,0)">//</span><span style="COLOR: rgb(0,128,0)">will&nbsp;return&nbsp;"&nbsp;abc"</span></div>
</pre>
<pre><strong>dojo.string.trimStart</strong>
去掉字符串开头的空白
Usage Example:
<div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: rgb(0,0,0)">s&nbsp;</span><span style="COLOR: rgb(0,0,0)">=</span><span style="COLOR: rgb(0,0,0)">&nbsp;</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">&nbsp;abc&nbsp;</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>dojo.string.trimStart(s);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: rgb(0,128,0)">//</span><span style="COLOR: rgb(0,128,0)">will&nbsp;return&nbsp;"abc&nbsp;"</span></div>
<strong>dojo.string.trimEnd</strong>
去掉字符串结尾的空白
Usage Example:
<div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: rgb(0,0,0)">s&nbsp;</span><span style="COLOR: rgb(0,0,0)">=</span><span style="COLOR: rgb(0,0,0)">&nbsp;</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">&nbsp;abc&nbsp;</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>dojo.string.trimEnd(s);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: rgb(0,128,0)">//</span><span style="COLOR: rgb(0,128,0)">will&nbsp;return&nbsp;"&nbsp;abc"</span></div>
<strong>dojo.string.repeat</strong>
生成由同一字符(串)重复组成的字符串
Usage Example:
<div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: rgb(0,0,0)">dojo.string.repeat(</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">a</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">,&nbsp;</span><span style="COLOR: rgb(0,0,0)">4</span><span style="COLOR: rgb(0,0,0)">);&nbsp;</span><span style="COLOR: rgb(0,128,0)">//</span><span style="COLOR: rgb(0,128,0)">will&nbsp;return&nbsp;"aaaa"</span><span style="COLOR: rgb(0,128,0)"><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: rgb(0,0,0)">dojo.string.repeat(</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">1234</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">,&nbsp;</span><span style="COLOR: rgb(0,0,0)">3</span><span style="COLOR: rgb(0,0,0)">,&nbsp;</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">-</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">);&nbsp;</span><span style="COLOR: rgb(0,128,0)">//</span><span style="COLOR: rgb(0,128,0)">will&nbsp;return&nbsp;"1234-1234-1234"</span></div>
<strong>dojo.string.pad</strong>
使用字符补齐字符串
Usage Example:
<div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: rgb(0,0,0)">dojo.string.pad(</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">100</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">,&nbsp;</span><span style="COLOR: rgb(0,0,0)">6</span><span style="COLOR: rgb(0,0,0)">);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: rgb(0,128,0)">//</span><span style="COLOR: rgb(0,128,0)">will&nbsp;return&nbsp;"000100"</span><span style="COLOR: rgb(0,128,0)"><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: rgb(0,0,0)">dojo.string.pad(</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">100</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">,&nbsp;</span><span style="COLOR: rgb(0,0,0)">6</span><span style="COLOR: rgb(0,0,0)">,&nbsp;</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">0</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">,&nbsp;</span><span style="COLOR: rgb(0,0,0)">1</span><span style="COLOR: rgb(0,0,0)">);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: rgb(0,128,0)">//</span><span style="COLOR: rgb(0,128,0)">will&nbsp;return&nbsp;"000100"</span><span style="COLOR: rgb(0,128,0)"><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: rgb(0,0,0)">dojo.string.pad(</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">100</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">,&nbsp;</span><span style="COLOR: rgb(0,0,0)">6</span><span style="COLOR: rgb(0,0,0)">,&nbsp;</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">0</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">,&nbsp;</span><span style="COLOR: rgb(0,0,0)">-</span><span style="COLOR: rgb(0,0,0)">1</span><span style="COLOR: rgb(0,0,0)">);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: rgb(0,128,0)">//</span><span style="COLOR: rgb(0,128,0)">will&nbsp;return&nbsp;"100000"</span></div>
<strong>dojo.string.padLeft</strong>
使用字符补齐字符串开头
Usage Example:
<div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: rgb(0,0,0)">dojo.string.padLeft(</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">100</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">,&nbsp;</span><span style="COLOR: rgb(0,0,0)">6</span><span style="COLOR: rgb(0,0,0)">);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: rgb(0,128,0)">//</span><span style="COLOR: rgb(0,128,0)">will&nbsp;return&nbsp;"000100"</span></div>
<strong>dojo.string.padRight</strong>
使用字符补齐字符串结尾
Usage Example:
<div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: rgb(0,0,0)">dojo.string.padRight(</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">100</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">,&nbsp;</span><span style="COLOR: rgb(0,0,0)">6</span><span style="COLOR: rgb(0,0,0)">);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: rgb(0,128,0)">//</span><span style="COLOR: rgb(0,128,0)">will&nbsp;return&nbsp;"100000"</span></div>
<br><br><br></pre>
<pre><strong>模块：dojo.lang.common / dojo.lang</strong>
dojo.lang.common 和 dojo.lang 是一样的，只要require其中一个就可以使用以下方法</pre>
<pre><strong>dojo.lang.mixin</strong>
将一个对象的方法和属性增加到另一个对象上
Usage Example:
<div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"><img id=Codehighlighter1_9_70_Open_Image onclick="this.style.display='none'; Codehighlighter1_9_70_Open_Text.style.display='none'; Codehighlighter1_9_70_Closed_Image.style.display='inline'; Codehighlighter1_9_70_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_9_70_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_9_70_Closed_Text.style.display='none'; Codehighlighter1_9_70_Open_Image.style.display='inline'; Codehighlighter1_9_70_Open_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align=top><span style="COLOR: rgb(0,0,255)">var</span><span style="COLOR: rgb(0,0,0)">&nbsp;s1&nbsp;</span><span style="COLOR: rgb(0,0,0)">=</span><span style="COLOR: rgb(0,0,0)">&nbsp;</span><span id=Codehighlighter1_9_70_Closed_Text style="BORDER-RIGHT: rgb(128,128,128) 1px solid; BORDER-TOP: rgb(128,128,128) 1px solid; DISPLAY: none; BORDER-LEFT: rgb(128,128,128) 1px solid; BORDER-BOTTOM: rgb(128,128,128) 1px solid; BACKGROUND-COLOR: rgb(255,255,255)"><img src="http://www.cnblogs.com/Images/dot.gif"></span><span><span style="COLOR: rgb(0,0,0)">{name:&nbsp;</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">TestObj</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">,&nbsp;test1:&nbsp;</span><span style="COLOR: rgb(0,0,255)">function</span><span style="COLOR: rgb(0,0,0)">()</span><span id=Codehighlighter1_44_69_Closed_Text style="BORDER-RIGHT: rgb(128,128,128) 1px solid; BORDER-TOP: rgb(128,128,128) 1px solid; DISPLAY: none; BORDER-LEFT: rgb(128,128,128) 1px solid; BORDER-BOTTOM: rgb(128,128,128) 1px solid; BACKGROUND-COLOR: rgb(255,255,255)"><img src="http://www.cnblogs.com/Images/dot.gif"></span><span id=Codehighlighter1_44_69_Open_Text><span style="COLOR: rgb(0,0,0)">{alert(</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">this&nbsp;is&nbsp;test1!</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">);}</span></span><span style="COLOR: rgb(0,0,0)">}</span><br><img id=Codehighlighter1_81_138_Open_Image onclick="this.style.display='none'; Codehighlighter1_81_138_Open_Text.style.display='none'; Codehighlighter1_81_138_Closed_Image.style.display='inline'; Codehighlighter1_81_138_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_81_138_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_81_138_Closed_Text.style.display='none'; Codehighlighter1_81_138_Open_Image.style.display='inline'; Codehighlighter1_81_138_Open_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span style="COLOR: rgb(0,0,255)">var</span><span style="COLOR: rgb(0,0,0)">&nbsp;s2&nbsp;</span><span style="COLOR: rgb(0,0,0)">=</span><span style="COLOR: rgb(0,0,0)">&nbsp;</span><span id=Codehighlighter1_81_138_Closed_Text style="BORDER-RIGHT: rgb(128,128,128) 1px solid; BORDER-TOP: rgb(128,128,128) 1px solid; DISPLAY: none; BORDER-LEFT: rgb(128,128,128) 1px solid; BORDER-BOTTOM: rgb(128,128,128) 1px solid; BACKGROUND-COLOR: rgb(255,255,255)"><img src="http://www.cnblogs.com/Images/dot.gif"></span><span id=Codehighlighter1_81_138_Open_Text><span style="COLOR: rgb(0,0,0)">{value:&nbsp;</span><span style="COLOR: rgb(0,0,0)">1000</span><span style="COLOR: rgb(0,0,0)">,&nbsp;test2:&nbsp;</span><span style="COLOR: rgb(0,0,255)">function</span><span style="COLOR: rgb(0,0,0)">()</span><span id=Codehighlighter1_112_137_Closed_Text style="BORDER-RIGHT: rgb(128,128,128) 1px solid; BORDER-TOP: rgb(128,128,128) 1px solid; DISPLAY: none; BORDER-LEFT: rgb(128,128,128) 1px solid; BORDER-BOTTOM: rgb(128,128,128) 1px solid; BACKGROUND-COLOR: rgb(255,255,255)"><img src="http://www.cnblogs.com/Images/dot.gif"></span><span id=Codehighlighter1_112_137_Open_Text><span style="COLOR: rgb(0,0,0)">{alert(</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">this&nbsp;is&nbsp;test2!</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">);}</span></span><span style="COLOR: rgb(0,0,0)">}</span></span><span style="COLOR: rgb(0,0,0)"><br><img id=Codehighlighter1_148_149_Open_Image onclick="this.style.display='none'; Codehighlighter1_148_149_Open_Text.style.display='none'; Codehighlighter1_148_149_Closed_Image.style.display='inline'; Codehighlighter1_148_149_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_148_149_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_148_149_Closed_Text.style.display='none'; Codehighlighter1_148_149_Open_Image.style.display='inline'; Codehighlighter1_148_149_Open_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span style="COLOR: rgb(0,0,255)">var</span><span style="COLOR: rgb(0,0,0)">&nbsp;d&nbsp;</span><span style="COLOR: rgb(0,0,0)">=</span><span style="COLOR: rgb(0,0,0)">&nbsp;</span><span id=Codehighlighter1_148_149_Closed_Text style="BORDER-RIGHT: rgb(128,128,128) 1px solid; BORDER-TOP: rgb(128,128,128) 1px solid; DISPLAY: none; BORDER-LEFT: rgb(128,128,128) 1px solid; BORDER-BOTTOM: rgb(128,128,128) 1px solid; BACKGROUND-COLOR: rgb(255,255,255)"><img src="http://www.cnblogs.com/Images/dot.gif"></span><span id=Codehighlighter1_148_149_Open_Text><span style="COLOR: rgb(0,0,0)">{}</span></span><span style="COLOR: rgb(0,0,0)">;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>dojo.lang.mixin(d,&nbsp;s1,&nbsp;s2);&nbsp;</span><span style="COLOR: rgb(0,128,0)">//</span><span style="COLOR: rgb(0,128,0)">执行后d就具备了s1和s2的所有属性和方法</span><span style="COLOR: rgb(0,128,0)"><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: rgb(0,0,0)">d.test1();</span></div>
<strong>dojo.lang.extend</strong>
为指定类的原型扩展方法与属性
Usage Example:
<div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"><strong><img id=Codehighlighter1_23_24_Open_Image onclick="this.style.display='none'; Codehighlighter1_23_24_Open_Text.style.display='none'; Codehighlighter1_23_24_Closed_Image.style.display='inline'; Codehighlighter1_23_24_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_23_24_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_23_24_Closed_Text.style.display='none'; Codehighlighter1_23_24_Open_Image.style.display='inline'; Codehighlighter1_23_24_Open_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></strong><span style="COLOR: rgb(0,0,0)">TestClass&nbsp;</span><span style="COLOR: rgb(0,0,0)">=</span><span style="COLOR: rgb(0,0,0)">&nbsp;</span><span style="COLOR: rgb(0,0,255)">function</span><span style="COLOR: rgb(0,0,0)">()&nbsp;</span><span id=Codehighlighter1_23_24_Closed_Text style="BORDER-RIGHT: rgb(128,128,128) 1px solid; BORDER-TOP: rgb(128,128,128) 1px solid; DISPLAY: none; BORDER-LEFT: rgb(128,128,128) 1px solid; BORDER-BOTTOM: rgb(128,128,128) 1px solid; BACKGROUND-COLOR: rgb(255,255,255)"><img src="http://www.cnblogs.com/Images/dot.gif"></span><span id=Codehighlighter1_23_24_Open_Text><span style="COLOR: rgb(0,0,0)">{}</span></span><span style="COLOR: rgb(0,0,0)">;<br><img id=Codehighlighter1_55_103_Open_Image onclick="this.style.display='none'; Codehighlighter1_55_103_Open_Text.style.display='none'; Codehighlighter1_55_103_Closed_Image.style.display='inline'; Codehighlighter1_55_103_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_55_103_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_55_103_Closed_Text.style.display='none'; Codehighlighter1_55_103_Open_Image.style.display='inline'; Codehighlighter1_55_103_Open_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align=top>dojo.lang.extend(TestClass,&nbsp;</span><span id=Codehighlighter1_55_103_Closed_Text style="BORDER-RIGHT: rgb(128,128,128) 1px solid; BORDER-TOP: rgb(128,128,128) 1px solid; DISPLAY: none; BORDER-LEFT: rgb(128,128,128) 1px solid; BORDER-BOTTOM: rgb(128,128,128) 1px solid; BACKGROUND-COLOR: rgb(255,255,255)"><img src="http://www.cnblogs.com/Images/dot.gif"></span><span id=Codehighlighter1_55_103_Open_Text><span style="COLOR: rgb(0,0,0)">{name:&nbsp;</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">demo</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">,&nbsp;test:&nbsp;</span><span style="COLOR: rgb(0,0,255)">function</span><span style="COLOR: rgb(0,0,0)">()</span><span id=Codehighlighter1_86_102_Closed_Text style="BORDER-RIGHT: rgb(128,128,128) 1px solid; BORDER-TOP: rgb(128,128,128) 1px solid; DISPLAY: none; BORDER-LEFT: rgb(128,128,128) 1px solid; BORDER-BOTTOM: rgb(128,128,128) 1px solid; BACKGROUND-COLOR: rgb(255,255,255)"><img src="http://www.cnblogs.com/Images/dot.gif"></span><span id=Codehighlighter1_86_102_Open_Text><span style="COLOR: rgb(0,0,0)">{alert(</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">Test!</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">);}</span></span><span style="COLOR: rgb(0,0,0)">}</span></span><span style="COLOR: rgb(0,0,0)">);<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: rgb(0,0,255)">var</span><span style="COLOR: rgb(0,0,0)">&nbsp;o&nbsp;</span><span style="COLOR: rgb(0,0,0)">=</span><span style="COLOR: rgb(0,0,0)">&nbsp;</span><span style="COLOR: rgb(0,0,255)">new</span><span style="COLOR: rgb(0,0,0)">&nbsp;TestClass();&nbsp;&nbsp;</span><span style="COLOR: rgb(0,128,0)">//</span><span style="COLOR: rgb(0,128,0)">TestClass本来是没有test方法的，但是extend以后就有test方法了</span><span style="COLOR: rgb(0,128,0)"><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: rgb(0,0,0)">o.test();</span></div>
<strong>dojo.lang.find=dojo.lang.indexOf</strong>
查找指定对象在指定数组中的位置
Usage Example:
<div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: rgb(0,0,255)">var</span><span style="COLOR: rgb(0,0,0)">&nbsp;arr&nbsp;</span><span style="COLOR: rgb(0,0,0)">=</span><span style="COLOR: rgb(0,0,0)">&nbsp;[</span><span style="COLOR: rgb(0,0,0)">1</span><span style="COLOR: rgb(0,0,0)">,</span><span style="COLOR: rgb(0,0,0)">2</span><span style="COLOR: rgb(0,0,0)">,</span><span style="COLOR: rgb(0,0,0)">3</span><span style="COLOR: rgb(0,0,0)">,</span><span style="COLOR: rgb(0,0,0)">3</span><span style="COLOR: rgb(0,0,0)">,</span><span style="COLOR: rgb(0,0,0)">2</span><span style="COLOR: rgb(0,0,0)">,</span><span style="COLOR: rgb(0,0,0)">1</span><span style="COLOR: rgb(0,0,0)">];<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>dojo.lang.find(arr,&nbsp;</span><span style="COLOR: rgb(0,0,0)">2</span><span style="COLOR: rgb(0,0,0)">);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: rgb(0,128,0)">//</span><span style="COLOR: rgb(0,128,0)">will&nbsp;return&nbsp;1</span><span style="COLOR: rgb(0,128,0)"><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: rgb(0,0,0)">dojo.lang.find(arr,&nbsp;</span><span style="COLOR: rgb(0,0,0)">2</span><span style="COLOR: rgb(0,0,0)">,&nbsp;</span><span style="COLOR: rgb(0,0,255)">true</span><span style="COLOR: rgb(0,0,0)">);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: rgb(0,128,0)">//</span><span style="COLOR: rgb(0,128,0)">will&nbsp;return&nbsp;1</span><span style="COLOR: rgb(0,128,0)"><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: rgb(0,0,0)">dojo.lang.find(arr,&nbsp;</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">2</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">,&nbsp;</span><span style="COLOR: rgb(0,0,255)">true</span><span style="COLOR: rgb(0,0,0)">);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: rgb(0,128,0)">//</span><span style="COLOR: rgb(0,128,0)">will&nbsp;return&nbsp;-1</span><span style="COLOR: rgb(0,128,0)"><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: rgb(0,0,0)">dojo.lang.find(arr,&nbsp;</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">2</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">,&nbsp;</span><span style="COLOR: rgb(0,0,255)">false</span><span style="COLOR: rgb(0,0,0)">);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: rgb(0,128,0)">//</span><span style="COLOR: rgb(0,128,0)">will&nbsp;return&nbsp;1</span><span style="COLOR: rgb(0,128,0)"><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: rgb(0,0,0)">dojo.lang.find(arr,&nbsp;</span><span style="COLOR: rgb(0,0,0)">2</span><span style="COLOR: rgb(0,0,0)">,&nbsp;</span><span style="COLOR: rgb(0,0,255)">true</span><span style="COLOR: rgb(0,0,0)">,&nbsp;</span><span style="COLOR: rgb(0,0,255)">true</span><span style="COLOR: rgb(0,0,0)">);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: rgb(0,128,0)">//</span><span style="COLOR: rgb(0,128,0)">will&nbsp;return&nbsp;4</span></div>
<strong>dojo.lang.findLast=dojo.lang.lastIndexOf
</strong>查找指定对象在指定数组中的位置，从后往前查
Usage Example:
<div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: rgb(0,0,255)">var</span><span style="COLOR: rgb(0,0,0)">&nbsp;arr&nbsp;</span><span style="COLOR: rgb(0,0,0)">=</span><span style="COLOR: rgb(0,0,0)">&nbsp;[</span><span style="COLOR: rgb(0,0,0)">1</span><span style="COLOR: rgb(0,0,0)">,</span><span style="COLOR: rgb(0,0,0)">2</span><span style="COLOR: rgb(0,0,0)">,</span><span style="COLOR: rgb(0,0,0)">3</span><span style="COLOR: rgb(0,0,0)">,</span><span style="COLOR: rgb(0,0,0)">3</span><span style="COLOR: rgb(0,0,0)">,</span><span style="COLOR: rgb(0,0,0)">2</span><span style="COLOR: rgb(0,0,0)">,</span><span style="COLOR: rgb(0,0,0)">1</span><span style="COLOR: rgb(0,0,0)">];<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>dojo.lang.findLast(arr,&nbsp;</span><span style="COLOR: rgb(0,0,0)">2</span><span style="COLOR: rgb(0,0,0)">);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: rgb(0,128,0)">//</span><span style="COLOR: rgb(0,128,0)">will&nbsp;return&nbsp;4</span><span style="COLOR: rgb(0,128,0)"><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: rgb(0,0,0)">dojo.lang.findLast(arr,&nbsp;</span><span style="COLOR: rgb(0,0,0)">2</span><span style="COLOR: rgb(0,0,0)">,&nbsp;</span><span style="COLOR: rgb(0,0,255)">true</span><span style="COLOR: rgb(0,0,0)">);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: rgb(0,128,0)">//</span><span style="COLOR: rgb(0,128,0)">will&nbsp;return&nbsp;4</span><span style="COLOR: rgb(0,128,0)"><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: rgb(0,0,0)">dojo.lang.findLast(arr,&nbsp;</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">2</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">,&nbsp;</span><span style="COLOR: rgb(0,0,255)">true</span><span style="COLOR: rgb(0,0,0)">);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: rgb(0,128,0)">//</span><span style="COLOR: rgb(0,128,0)">will&nbsp;return&nbsp;-1</span><span style="COLOR: rgb(0,128,0)"><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: rgb(0,0,0)">dojo.lang.findLast(arr,&nbsp;</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">2</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">,&nbsp;</span><span style="COLOR: rgb(0,0,255)">false</span><span style="COLOR: rgb(0,0,0)">);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: rgb(0,128,0)">//</span><span style="COLOR: rgb(0,128,0)">will&nbsp;return&nbsp;4</span></div>
<strong>dojo.lang.inArray</strong>
查找指定对象是否在指定数组中
Usage Example:
<div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: rgb(0,0,255)">var</span><span style="COLOR: rgb(0,0,0)">&nbsp;arr&nbsp;</span><span style="COLOR: rgb(0,0,0)">=</span><span style="COLOR: rgb(0,0,0)">&nbsp;[</span><span style="COLOR: rgb(0,0,0)">1</span><span style="COLOR: rgb(0,0,0)">,</span><span style="COLOR: rgb(0,0,0)">2</span><span style="COLOR: rgb(0,0,0)">,</span><span style="COLOR: rgb(0,0,0)">3</span><span style="COLOR: rgb(0,0,0)">];<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>dojo.lang.inArray(arr,&nbsp;</span><span style="COLOR: rgb(0,0,0)">1</span><span style="COLOR: rgb(0,0,0)">);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: rgb(0,128,0)">//</span><span style="COLOR: rgb(0,128,0)">will&nbsp;return&nbsp;true</span><span style="COLOR: rgb(0,128,0)"><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: rgb(0,0,0)">dojo.lang.inArray(arr,&nbsp;</span><span style="COLOR: rgb(0,0,0)">4</span><span style="COLOR: rgb(0,0,0)">);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: rgb(0,128,0)">//</span><span style="COLOR: rgb(0,128,0)">will&nbsp;return&nbsp;false</span></div>
<strong>dojo.lang.isObject</strong>
判断输入的类型是否为对象
Usage Example:
<div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: rgb(0,0,0)">dojo.lang.isObject(</span><span style="COLOR: rgb(0,0,255)">new</span><span style="COLOR: rgb(0,0,0)">&nbsp;String());&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: rgb(0,128,0)">//</span><span style="COLOR: rgb(0,128,0)">will&nbsp;return&nbsp;true</span><span style="COLOR: rgb(0,128,0)"><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: rgb(0,0,0)">dojo.lang.isObject(</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">123</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">));&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: rgb(0,128,0)">//</span><span style="COLOR: rgb(0,128,0)">will&nbsp;return&nbsp;false</span></div>
<strong>dojo.lang.isArray</strong>
判断输入的类型是否为数组
Usage Example:
<div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"><img id=Codehighlighter1_18_26_Open_Image onclick="this.style.display='none'; Codehighlighter1_18_26_Open_Text.style.display='none'; Codehighlighter1_18_26_Closed_Image.style.display='inline'; Codehighlighter1_18_26_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_18_26_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_18_26_Closed_Text.style.display='none'; Codehighlighter1_18_26_Open_Image.style.display='inline'; Codehighlighter1_18_26_Open_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align=top><span style="COLOR: rgb(0,0,0)">dojo.lang.isArray(</span><span id=Codehighlighter1_18_26_Closed_Text style="BORDER-RIGHT: rgb(128,128,128) 1px solid; BORDER-TOP: rgb(128,128,128) 1px solid; DISPLAY: none; BORDER-LEFT: rgb(128,128,128) 1px solid; BORDER-BOTTOM: rgb(128,128,128) 1px solid; BACKGROUND-COLOR: rgb(255,255,255)"><img src="http://www.cnblogs.com/Images/dot.gif"></span><span id=Codehighlighter1_18_26_Open_Text><span style="COLOR: rgb(0,0,0)">{a:</span><span style="COLOR: rgb(0,0,0)">1</span><span style="COLOR: rgb(0,0,0)">,b:</span><span style="COLOR: rgb(0,0,0)">2</span><span style="COLOR: rgb(0,0,0)">}</span></span><span style="COLOR: rgb(0,0,0)">);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: rgb(0,128,0)">//</span><span style="COLOR: rgb(0,128,0)">will&nbsp;return&nbsp;false</span><span style="COLOR: rgb(0,128,0)"><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: rgb(0,0,0)">dojo.lang.isArray([</span><span style="COLOR: rgb(0,0,0)">1</span><span style="COLOR: rgb(0,0,0)">,</span><span style="COLOR: rgb(0,0,0)">2</span><span style="COLOR: rgb(0,0,0)">,</span><span style="COLOR: rgb(0,0,0)">3</span><span style="COLOR: rgb(0,0,0)">]);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: rgb(0,128,0)">//</span><span style="COLOR: rgb(0,128,0)">will&nbsp;return&nbsp;true</span></div>
<strong>dojo.lang.isFunction</strong>
判断输入的类型是否为函数
Usage Example:
<div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"><img id=Codehighlighter1_32_33_Open_Image onclick="this.style.display='none'; Codehighlighter1_32_33_Open_Text.style.display='none'; Codehighlighter1_32_33_Closed_Image.style.display='inline'; Codehighlighter1_32_33_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_32_33_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_32_33_Closed_Text.style.display='none'; Codehighlighter1_32_33_Open_Image.style.display='inline'; Codehighlighter1_32_33_Open_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align=top><span style="COLOR: rgb(0,0,0)">dojo.lang.isFunction(</span><span style="COLOR: rgb(0,0,255)">function</span><span style="COLOR: rgb(0,0,0)">()&nbsp;</span><span id=Codehighlighter1_32_33_Closed_Text style="BORDER-RIGHT: rgb(128,128,128) 1px solid; BORDER-TOP: rgb(128,128,128) 1px solid; DISPLAY: none; BORDER-LEFT: rgb(128,128,128) 1px solid; BORDER-BOTTOM: rgb(128,128,128) 1px solid; BACKGROUND-COLOR: rgb(255,255,255)"><img src="http://www.cnblogs.com/Images/dot.gif"></span><span id=Codehighlighter1_32_33_Open_Text><span style="COLOR: rgb(0,0,0)">{}</span></span><span style="COLOR: rgb(0,0,0)">);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: rgb(0,128,0)">//</span><span style="COLOR: rgb(0,128,0)">will&nbsp;return&nbsp;true</span></div>
<strong>dojo.lang.isString</strong>
判断输入的类型是否为字符串
Usage Example:
<div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: rgb(0,0,0)">dojo.lang.isString(</span><span style="COLOR: rgb(0,0,0)">""</span><span style="COLOR: rgb(0,0,0)">);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: rgb(0,128,0)">//</span><span style="COLOR: rgb(0,128,0)">will&nbsp;return&nbsp;true</span><span style="COLOR: rgb(0,128,0)"><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: rgb(0,0,0)">dojo.lang.isString(</span><span style="COLOR: rgb(0,0,0)">0</span><span style="COLOR: rgb(0,0,0)">);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: rgb(0,128,0)">//</span><span style="COLOR: rgb(0,128,0)">will&nbsp;return&nbsp;false</span></div>
<strong>dojo.lang.isAlien</strong>
判断输入的类型是否为系统函数
Usage Example:
<div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: rgb(0,0,0)">dojo.lang.isAlien(isNaN);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: rgb(0,128,0)">//</span><span style="COLOR: rgb(0,128,0)">will&nbsp;return&nbsp;true</span></div>
<strong>dojo.lang.isBoolean</strong>
判断输入的类型是否为布尔类型
Usage Example:
<div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: rgb(0,0,0)">dojo.lang.isBoolean(</span><span style="COLOR: rgb(0,0,0)">2</span><span style="COLOR: rgb(0,0,0)">&gt;</span><span style="COLOR: rgb(0,0,0)">1</span><span style="COLOR: rgb(0,0,0)">);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: rgb(0,128,0)">//</span><span style="COLOR: rgb(0,128,0)">will&nbsp;return&nbsp;true</span></div>
<strong><br>dojo.lang.isNumber</strong>
判断输入的类型是否为数值，根据注释所说，此函数使用不太可靠，但是可替换使用的系统函数isNaN也不太可靠<br>
<strong><br>dojo.lang.isUndefined</strong>
判断输入是否为未定义，根据注释所说，此函数有可能会导致抛出异常，推荐使用 typeof foo == "undefined" 来判断</pre>
<pre><strong><br>模块：dojo.lang.extras</strong>
<strong>dojo.lang.setTimeout</strong>
延迟指定时间后执行指定方法
Usage Example:
<div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: rgb(0,0,255)">function</span><span style="COLOR: rgb(0,0,0)">&nbsp;onTime(msg)<br><img id=Codehighlighter1_21_39_Open_Image onclick="this.style.display='none'; Codehighlighter1_21_39_Open_Text.style.display='none'; Codehighlighter1_21_39_Closed_Image.style.display='inline'; Codehighlighter1_21_39_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_21_39_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_21_39_Closed_Text.style.display='none'; Codehighlighter1_21_39_Open_Image.style.display='inline'; Codehighlighter1_21_39_Open_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_21_39_Closed_Text style="BORDER-RIGHT: rgb(128,128,128) 1px solid; BORDER-TOP: rgb(128,128,128) 1px solid; DISPLAY: none; BORDER-LEFT: rgb(128,128,128) 1px solid; BORDER-BOTTOM: rgb(128,128,128) 1px solid; BACKGROUND-COLOR: rgb(255,255,255)"><img src="http://www.cnblogs.com/Images/dot.gif"></span><span id=Codehighlighter1_21_39_Open_Text><span style="COLOR: rgb(0,0,0)">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>dojo.debug(msg)<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: rgb(0,0,0)"><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>dojo.lang.setTimeout(onTime,&nbsp;</span><span style="COLOR: rgb(0,0,0)">1000</span><span style="COLOR: rgb(0,0,0)">,&nbsp;</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">test</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">);&nbsp;</span><span style="COLOR: rgb(0,128,0)">//</span><span style="COLOR: rgb(0,128,0)">1秒后会输出调试信息"test"</span><span style="COLOR: rgb(0,128,0)"><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: rgb(0,0,0)">dojo.lang.setTimeout(dojo,&nbsp;</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">debug</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">,&nbsp;</span><span style="COLOR: rgb(0,0,0)">1000</span><span style="COLOR: rgb(0,0,0)">,&nbsp;</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">test</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">);&nbsp;</span><span style="COLOR: rgb(0,128,0)">//</span><span style="COLOR: rgb(0,128,0)">1秒后会输出调试信息"test"</span><span style="COLOR: rgb(0,128,0)"><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></span></div>
<strong>dojo.lang.getNameInObj</strong>
获得指定项目在指定对象中的名称
Usage Example:
<div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: rgb(0,0,0)">dojo.lang.getNameInObj(dojo,&nbsp;dojo.debug);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: rgb(0,128,0)">//</span><span style="COLOR: rgb(0,128,0)">will&nbsp;return&nbsp;"debug"</span></div>
<strong>dojo.lang.shallowCopy</strong>
返回指定对象的浅表复制副本
Usage Example:
<div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"><img id=Codehighlighter1_22_23_Open_Image onclick="this.style.display='none'; Codehighlighter1_22_23_Open_Text.style.display='none'; Codehighlighter1_22_23_Closed_Image.style.display='inline'; Codehighlighter1_22_23_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_22_23_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_22_23_Closed_Text.style.display='none'; Codehighlighter1_22_23_Open_Image.style.display='inline'; Codehighlighter1_22_23_Open_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align=top><span style="COLOR: rgb(0,0,0)">dojo.lang.shallowCopy(</span><span id=Codehighlighter1_22_23_Closed_Text style="BORDER-RIGHT: rgb(128,128,128) 1px solid; BORDER-TOP: rgb(128,128,128) 1px solid; DISPLAY: none; BORDER-LEFT: rgb(128,128,128) 1px solid; BORDER-BOTTOM: rgb(128,128,128) 1px solid; BACKGROUND-COLOR: rgb(255,255,255)"><img src="http://www.cnblogs.com/Images/dot.gif"></span><span id=Codehighlighter1_22_23_Open_Text><span style="COLOR: rgb(0,0,0)">{}</span></span><span style="COLOR: rgb(0,0,0)">);&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: rgb(0,128,0)">//</span><span style="COLOR: rgb(0,128,0)">will&nbsp;return&nbsp;a&nbsp;空对象</span></div>
<strong>dojo.lang.firstValued</strong>
返回第一个存在定义的参数
Usage Example:
<div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: rgb(0,0,255)">var</span><span style="COLOR: rgb(0,0,0)">&nbsp;a;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>dojo.lang.firstValued(a,</span><span style="COLOR: rgb(0,0,0)">2</span><span style="COLOR: rgb(0,0,0)">,</span><span style="COLOR: rgb(0,0,0)">3</span><span style="COLOR: rgb(0,0,0)">);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: rgb(0,128,0)">//</span><span style="COLOR: rgb(0,128,0)">will&nbsp;return&nbsp;2</span></div>
<br>以上全部是自己阅读源代码写的总结，如有错误，还请指明。
</pre>
<img src ="http://www.blogjava.net/terrywu/aggbug/119979.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/terrywu/" target="_blank">TNT</a> 2007-05-25 13:35 <a href="http://www.blogjava.net/terrywu/articles/119979.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Dojo学习笔记(3. Dojo的基础对象和方法)</title><link>http://www.blogjava.net/terrywu/articles/119978.html</link><dc:creator>TNT</dc:creator><author>TNT</author><pubDate>Fri, 25 May 2007 05:34:00 GMT</pubDate><guid>http://www.blogjava.net/terrywu/articles/119978.html</guid><wfw:comment>http://www.blogjava.net/terrywu/comments/119978.html</wfw:comment><comments>http://www.blogjava.net/terrywu/articles/119978.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/terrywu/comments/commentRss/119978.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/terrywu/services/trackbacks/119978.html</trackback:ping><description><![CDATA[<p align=center><strong>Dojo</strong><strong>学习笔记(3. Dojo</strong><strong>的基础对象和方法)</strong></p>
<p>这里所说的基础对象和方法是指的不Require任何包就能够调用的对象和方法</p>
<p><strong>匿名函数</strong></p>
<p>在开始前，我想介绍一下js里的匿名函数，这个在阅读dojo的源代码的时候，会发现到处都有匿名函数</p>
<div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"><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';" 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';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align=top><span style="COLOR: rgb(0,0,0)">;(</span><span style="COLOR: rgb(0,0,255)">function</span><span style="COLOR: rgb(0,0,0)">()</span><span id=Codehighlighter1_12_26_Closed_Text style="BORDER-RIGHT: rgb(128,128,128) 1px solid; BORDER-TOP: rgb(128,128,128) 1px solid; DISPLAY: none; BORDER-LEFT: rgb(128,128,128) 1px solid; BORDER-BOTTOM: rgb(128,128,128) 1px solid; BACKGROUND-COLOR: rgb(255,255,255)"><img src="http://www.cnblogs.com/Images/dot.gif"></span><span id=Codehighlighter1_12_26_Open_Text><span style="COLOR: rgb(0,0,0)">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>alert(</span><span style="COLOR: rgb(0,0,0)">123</span><span style="COLOR: rgb(0,0,0)">);<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: rgb(0,0,0)">)();<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: rgb(0,128,0)">//</span><span style="COLOR: rgb(0,128,0)">前面的分号是一个空语句，是可以不要的</span></div>
<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>
<div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: rgb(0,0,0)">&nbsp;dojo.byId(</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">divTest</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">);<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;dojo.byId(</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">divTest</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">,&nbsp;document);<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;dojo.byId(document.getElementById(</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">divTest</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">));</span></div>
<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>
<div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: rgb(0,0,0)">&nbsp;</span><span style="COLOR: rgb(0,0,255)">try</span><span style="COLOR: rgb(0,0,0)"><br><img id=Codehighlighter1_6_53_Open_Image 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';" 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';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align=top>&nbsp;</span><span id=Codehighlighter1_6_53_Closed_Text style="BORDER-RIGHT: rgb(128,128,128) 1px solid; BORDER-TOP: rgb(128,128,128) 1px solid; DISPLAY: none; BORDER-LEFT: rgb(128,128,128) 1px solid; BORDER-BOTTOM: rgb(128,128,128) 1px solid; BACKGROUND-COLOR: rgb(255,255,255)"><img src="http://www.cnblogs.com/Images/dot.gif"></span><span id=Codehighlighter1_6_53_Open_Text><span style="COLOR: rgb(0,0,0)">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;dojo.raise(</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">打印失败</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">,&nbsp;</span><span style="COLOR: rgb(0,0,255)">new</span><span style="COLOR: rgb(0,0,0)">&nbsp;Error(</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">文件不存在</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">));<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>&nbsp;}</span></span><span style="COLOR: rgb(0,0,0)"><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;</span><span style="COLOR: rgb(0,0,255)">catch</span><span style="COLOR: rgb(0,0,0)">(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';" 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';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align=top>&nbsp;</span><span id=Codehighlighter1_66_103_Closed_Text style="BORDER-RIGHT: rgb(128,128,128) 1px solid; BORDER-TOP: rgb(128,128,128) 1px solid; DISPLAY: none; BORDER-LEFT: rgb(128,128,128) 1px solid; BORDER-BOTTOM: rgb(128,128,128) 1px solid; BACKGROUND-COLOR: rgb(255,255,255)"><img src="http://www.cnblogs.com/Images/dot.gif"></span><span id=Codehighlighter1_66_103_Open_Text><span style="COLOR: rgb(0,0,0)">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;alert(dojo.errorToString(e));<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>&nbsp;}</span></span></div>
<p>&nbsp;</p>
<p><strong>dojo.render</strong></p>
<p>系统环境对象</p>
<div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"><span style="COLOR: rgb(0,0,0)">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: rgb(0,0,0)">&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>如果dojo.html.ie为true的话</p>
<div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: rgb(0,0,0)">dojo.html.ie50&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;返回true说明浏览器是IE&nbsp;</span><span style="COLOR: rgb(0,0,0)">5.0</span><span style="COLOR: rgb(0,0,0)"><br><img 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: rgb(0,0,0)">5.5</span><span style="COLOR: rgb(0,0,0)"><br><img 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: rgb(0,0,0)">6.0</span><span style="COLOR: rgb(0,0,0)"><br><img 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: rgb(0,0,0)">7.0</span></div>
<p>&nbsp;</p>
<p><strong>dojo.addOnLoad</strong></p>
<p>可以加载指定函数到window.load时执行，好处就是可以很方便的在window.load时执行多个函数</p>
<p>Usage Example:</p>
<div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: rgb(0,0,0)">&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: rgb(0,128,0)">//</span><span style="COLOR: rgb(0,128,0)">init是一个函数</span><span style="COLOR: rgb(0,128,0)"><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: rgb(0,0,0)">&nbsp;dojo.addOnLoad(myObject,&nbsp;init);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: rgb(0,128,0)">//</span><span style="COLOR: rgb(0,128,0)">init是myObject对象的一个方法</span></div>
<p>&nbsp;</p>
<p><strong>dojo.require</strong></p>
<p>如果你想调用一个模块的对象的时候，你应该首先用dojo.require来请求这个模块，dojo会根据你的请求自动取得相应的js文件，并加载到内存中，这样你才能调用或创建其中的对象</p>
<p>dojo会自动维护已加载的模块列表，所以是不会重复加载模块的</p>
<p>Usage Example:</p>
<div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: rgb(0,0,0)">&nbsp;dojo.require(</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">dojo.event</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">);</span></div>
<p><strong>dojo.requireIf=dojo.requireAfterIf</strong></p>
<p>可以根据指定的条件来决定是否加载指定的模块</p>
<p>Usage Example:</p>
<div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: rgb(0,0,0)">&nbsp;dojo.requireIf(dojo.html.ie,&nbsp;</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">dojo.html</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">);&nbsp;&nbsp;&nbsp;</span><span style="COLOR: rgb(0,128,0)">//</span><span style="COLOR: rgb(0,128,0)">如果dojo.html.ie为true，才会加载dojo.html模块</span></div>
<p>&nbsp;</p>
<p><strong>dojo.provide</strong></p>
<p>除非你要开发自己的模块，不然是用不到这个方法的，你可以这句看成是向系统注册这个模块名称</p>
<p>Usage Example:</p>
<div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: rgb(0,0,0)">&nbsp;dojo.provide(</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">dojo.custom</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">);</span></div>
<p><strong>dojo.exists</strong></p>
<p>判断指定对象是否具有指定名称的方法</p>
<p>Usage Example:</p>
<div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: rgb(0,0,0)">&nbsp;dojo.exists(dojo,&nbsp;</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">exists</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">);&nbsp;</span><span style="COLOR: rgb(0,128,0)">//</span><span style="COLOR: rgb(0,128,0)">will&nbsp;return&nbsp;true</span></div>
<p>&nbsp;</p>
<p><strong>dojo.hostenv.getText</strong></p>
<p>返回指定url的内容</p>
<p>PS: 由于浏览器的安全限制，因此只能用于取得同域名的url的内容，否则会报告权限不够</p>
<p>Usage Example:</p>
<div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: rgb(0,0,0)">&nbsp;aSync&nbsp;</span><span style="COLOR: rgb(0,0,0)">=</span><span style="COLOR: rgb(0,0,0)">&nbsp;</span><span style="COLOR: rgb(0,0,255)">false</span><span style="COLOR: rgb(0,0,0)">;&nbsp;</span><span style="COLOR: rgb(0,128,0)">//</span><span style="COLOR: rgb(0,128,0)">同步，确保返回内容不为null</span><span style="COLOR: rgb(0,128,0)"><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: rgb(0,0,0)">&nbsp;silent&nbsp;</span><span style="COLOR: rgb(0,0,0)">=</span><span style="COLOR: rgb(0,0,0)">&nbsp;</span><span style="COLOR: rgb(0,0,255)">true</span><span style="COLOR: rgb(0,0,0)">;&nbsp;</span><span style="COLOR: rgb(0,128,0)">//</span><span style="COLOR: rgb(0,128,0)">不抛出错误</span><span style="COLOR: rgb(0,128,0)"><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: rgb(0,0,0)">&nbsp;s&nbsp;</span><span style="COLOR: rgb(0,0,0)">=</span><span style="COLOR: rgb(0,0,0)">&nbsp;dojo.hostenv.getText(</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">http://www.google.com/</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">,&nbsp;aSync,&nbsp;silent);&nbsp;</span><span style="COLOR: rgb(0,128,0)">//</span><span style="COLOR: rgb(0,128,0)">返回Google的首页的HTML</span><span style="COLOR: rgb(0,128,0)"><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: rgb(0,0,0)">&nbsp;alert(s);</span></div>
<p><strong>dojo.debug</strong></p>
<p>输出调试信息，如果在djConfig中指定了debugContainerId，则输出到指定的console容器中，否则直接document.write</p>
<p>所有的调试信息均以 DEBUG: 开头</p>
<p>Usage Example:</p>
<div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: rgb(0,0,0)">&nbsp;dojo.debug(</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">这是调试信息</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">);</span></div>
<p>&nbsp;</p>
<p><strong>dojo.hostenv.println</strong></p>
<p>与dojo.debug类似，不同的是，输出内容没有 DEBUG:</p>
<p>Usage Example:</p>
<div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: rgb(0,0,0)">&nbsp;dojo.hostenv.println(</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">这是一般的输出信息</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">);</span></div>
<p>&nbsp;</p>
<p><strong>dojo.debugShallow</strong></p>
<p>输出指定对象的全部信息(Shallow说明并不会遍历到下一级别的对象属性)以供调试</p>
<p>Usage Example:</p>
<div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: rgb(0,0,0)">&nbsp;dojo.debugShallow(dojo.render.html);</span></div>
<img src ="http://www.blogjava.net/terrywu/aggbug/119978.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/terrywu/" target="_blank">TNT</a> 2007-05-25 13:34 <a href="http://www.blogjava.net/terrywu/articles/119978.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Dojo学习笔记(2. djConfig解说)</title><link>http://www.blogjava.net/terrywu/articles/119974.html</link><dc:creator>TNT</dc:creator><author>TNT</author><pubDate>Fri, 25 May 2007 05:31:00 GMT</pubDate><guid>http://www.blogjava.net/terrywu/articles/119974.html</guid><wfw:comment>http://www.blogjava.net/terrywu/comments/119974.html</wfw:comment><comments>http://www.blogjava.net/terrywu/articles/119974.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/terrywu/comments/commentRss/119974.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/terrywu/services/trackbacks/119974.html</trackback:ping><description><![CDATA[<p align=center><strong>Dojo学习笔记(2. djConfig解说)</strong></p>
<p><br>djConfig是dojo内置的一个全局设置对象，其作用是可以通过其控制dojo的行为<br><br>首先我们需要在引用dojo.js前声明djConfig对象，以便在加载dojo.js的时候才能够取得所设置的值，虽然在0.3版本以后dojo支持在加载后设置，但是强烈建议你把声明djConfig的代码作为第一段script<br><br>一个完整的djConfig对象定义如下（值均为dojo的默认值）</p>
<div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)" twffan="done"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top twffan="done"><span style="COLOR: rgb(0,0,0)" twffan="done">&lt;</span><span style="COLOR: rgb(0,0,0)" twffan="done">script&nbsp;type</span><span style="COLOR: rgb(0,0,0)" twffan="done">=</span><span style="COLOR: rgb(0,0,0)" twffan="done">"</span><span style="COLOR: rgb(0,0,0)" twffan="done">text/javascript</span><span style="COLOR: rgb(0,0,0)" twffan="done">"</span><span style="COLOR: rgb(0,0,0)" twffan="done">&gt;</span><span style="COLOR: rgb(0,0,0)" twffan="done"><br><img id=Codehighlighter1_47_297_Open_Image onclick="this.style.display='none'; Codehighlighter1_47_297_Open_Text.style.display='none'; Codehighlighter1_47_297_Closed_Image.style.display='inline'; Codehighlighter1_47_297_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top twffan="done"><img id=Codehighlighter1_47_297_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_47_297_Closed_Text.style.display='none'; Codehighlighter1_47_297_Open_Image.style.display='inline'; Codehighlighter1_47_297_Open_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align=top twffan="done"></span><span style="COLOR: rgb(0,0,255)" twffan="done">var</span><span style="COLOR: rgb(0,0,0)" twffan="done">&nbsp;djConfig&nbsp;</span><span style="COLOR: rgb(0,0,0)" twffan="done">=</span><span style="COLOR: rgb(0,0,0)" twffan="done">&nbsp;</span><span id=Codehighlighter1_47_297_Closed_Text style="BORDER-RIGHT: rgb(128,128,128) 1px solid; BORDER-TOP: rgb(128,128,128) 1px solid; DISPLAY: none; BORDER-LEFT: rgb(128,128,128) 1px solid; BORDER-BOTTOM: rgb(128,128,128) 1px solid; BACKGROUND-COLOR: rgb(255,255,255)" twffan="done"><img src="http://www.cnblogs.com/Images/dot.gif" twffan="done"></span><span id=Codehighlighter1_47_297_Open_Text twffan="done"><span style="COLOR: rgb(0,0,0)" twffan="done">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;isDebug:&nbsp;</span><span style="COLOR: rgb(0,0,255)" twffan="done">false</span><span style="COLOR: rgb(0,0,0)" twffan="done">,<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;debugContainerId:&nbsp;</span><span style="COLOR: rgb(0,0,0)" twffan="done">""</span><span style="COLOR: rgb(0,0,0)" twffan="done">,<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp; bindEncoding: "",<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;allowQueryConfig:&nbsp;</span><span style="COLOR: rgb(0,0,255)" twffan="done">false</span><span style="COLOR: rgb(0,0,0)" twffan="done">,<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;baseScriptUri:&nbsp;</span><span style="COLOR: rgb(0,0,0)" twffan="done">""</span><span style="COLOR: rgb(0,0,0)" twffan="done">,<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;parseWidgets:&nbsp;</span><span style="COLOR: rgb(0,0,255)" twffan="done">true</span><span style="COLOR: rgb(0,0,0)" twffan="done"><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;searchIds:&nbsp;[],<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;baseRelativePath:&nbsp;</span><span style="COLOR: rgb(0,0,0)" twffan="done">""</span><span style="COLOR: rgb(0,0,0)" twffan="done">,<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;libraryScriptUri:&nbsp;</span><span style="COLOR: rgb(0,0,0)" twffan="done">""</span><span style="COLOR: rgb(0,0,0)" twffan="done">,<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;iePreventClobber:&nbsp;</span><span style="COLOR: rgb(0,0,255)" twffan="done">false</span><span style="COLOR: rgb(0,0,0)" twffan="done">,<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;ieClobberMinimal:&nbsp;</span><span style="COLOR: rgb(0,0,255)" twffan="done">true</span><span style="COLOR: rgb(0,0,0)" twffan="done">,<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;preventBackButtonFix:&nbsp;</span><span style="COLOR: rgb(0,0,255)" twffan="done">true</span><span style="COLOR: rgb(0,0,0)" twffan="done">,<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top twffan="done">}</span></span><span style="COLOR: rgb(0,0,0)" twffan="done">;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top twffan="done"></span><span style="COLOR: rgb(0,0,0)" twffan="done">&lt;/</span><span style="COLOR: rgb(0,0,0)" twffan="done">script</span><span style="COLOR: rgb(0,0,0)" twffan="done">&gt;</span></div>
<p>isDebug是一个很有用的属性，顾名思义，如果设置为真，则所有dojo.Debug的输出有效，开发时应该设置为true，发布时应该设置为false<br><br>debugContainerId同样也是与调试有关的，如果不指定的话，调试信息将会直接利用 document.write输出，这样可能会破坏页面的整体布局，所以你可以指定任何一个可以作为容器的html元素的id作为调试信息输出容器<br><br>allowQueryConfig，这个属性指明 dojo是否允许从页面url的参数中读取djConfig中的相关属性，当值为true时，dojo会优先从url参数中读取djConfig的其他属性，比如: <a href="http://server/dojoDemo.htm?djConfig.debugContainerId=divDebug"><u><font color=#0000ff>http://server/dojoDemo.htm?djConfig.debugContainerId=divDebug</font></u></a><br><br>baseScriptUri，一般不需要设置，dojo会自动根据你引用dojo.js的路径设置这个值，比如，&lt;script type="text/javascript" src="../dojo/dojo.js"&gt;&lt;/script&gt;，自动获取的值便是 ../dojo/<br>ps: 如果你有多个工程需要同时引用dojo.js的话，建议也把dojo当作一个独立的工程，引用的时候采用绝对路径就可以了<br><br>parseWidgets，这个是可以控制dojo是否自动解析具有dojoType的html元素为对应的widget，如果你没有使用任何Widget，建议设置为false以加快dojo的加载速度<br><br>searchIds，这是一个字符串数组，定义了所有需要解析为widget的html元素的ID，如果ID不在其中的html元素是不会被解析的，当数组为空数组时，则所有具有dojoType的元素都会被解析<br><br>还有一个bindEncoding，是用来设置默认的bind请求的编码方式<br><br>至于其它的属性，不是用处不大，就是不知道有什么作用<br><br>在实际开发中，可以把djConfig的定义放在一个js文件里，并将其作为第一个引用的js文件，这样应该是最方便的。</p>
<img src ="http://www.blogjava.net/terrywu/aggbug/119974.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/terrywu/" target="_blank">TNT</a> 2007-05-25 13:31 <a href="http://www.blogjava.net/terrywu/articles/119974.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Dojo学习笔记(1. 模块与包)</title><link>http://www.blogjava.net/terrywu/articles/119970.html</link><dc:creator>TNT</dc:creator><author>TNT</author><pubDate>Fri, 25 May 2007 05:29:00 GMT</pubDate><guid>http://www.blogjava.net/terrywu/articles/119970.html</guid><wfw:comment>http://www.blogjava.net/terrywu/comments/119970.html</wfw:comment><comments>http://www.blogjava.net/terrywu/articles/119970.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/terrywu/comments/commentRss/119970.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/terrywu/services/trackbacks/119970.html</trackback:ping><description><![CDATA[<strong>
<p align=center><strong>Dojo学习笔记(1. 模块与包)</strong></p>
<p><strong><br>Intro:</strong><br><br>Dojo是一个非常强大的面向对象的JavaScript的工具箱,&nbsp;建议读者能够去补充一下JavaScript下如何使用OO进行编程的, 这对于你以后阅读Dojo Source有很大的用处<br><br>请大家下载dojo 0.3.1, 以下的说明均针对此版本<br><br>翻译自<a href="http://manual.dojotoolkit.org/WikiHome/DojoDotBook/BookUsingDojo"><u><font color=#0000ff>http://manual.dojotoolkit.org/WikiHome/DojoDotBook/BookUsingDojo</font></u></a><br><strong><br><br></strong><strong>Getting Started<br><br></strong>1: 把Dojo加入到我们的Web程序中<br><br>1. 标志</p>
<div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: rgb(0,0,0)">&lt;</span><span style="COLOR: rgb(0,0,0)">script&nbsp;type</span><span style="COLOR: rgb(0,0,0)">=</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">text/javascript</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">&gt;</span><span style="COLOR: rgb(0,0,0)"><br><img id=Codehighlighter1_44_61_Open_Image onclick="this.style.display='none'; Codehighlighter1_44_61_Open_Text.style.display='none'; Codehighlighter1_44_61_Closed_Image.style.display='inline'; Codehighlighter1_44_61_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_44_61_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_44_61_Closed_Text.style.display='none'; Codehighlighter1_44_61_Open_Image.style.display='inline'; Codehighlighter1_44_61_Open_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align=top>&nbsp;djConfig&nbsp;</span><span style="COLOR: rgb(0,0,0)">=</span><span style="COLOR: rgb(0,0,0)">&nbsp;</span><span id=Codehighlighter1_44_61_Closed_Text style="BORDER-RIGHT: rgb(128,128,128) 1px solid; BORDER-TOP: rgb(128,128,128) 1px solid; DISPLAY: none; BORDER-LEFT: rgb(128,128,128) 1px solid; BORDER-BOTTOM: rgb(128,128,128) 1px solid; BACKGROUND-COLOR: rgb(255,255,255)"><img src="http://www.cnblogs.com/Images/dot.gif"></span><span id=Codehighlighter1_44_61_Open_Text><span style="COLOR: rgb(0,0,0)">{&nbsp;isDebug:&nbsp;</span><span style="COLOR: rgb(0,0,255)">false</span><span style="COLOR: rgb(0,0,0)">&nbsp;}</span></span><span style="COLOR: rgb(0,0,0)">;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: rgb(0,0,0)">&lt;/</span><span style="COLOR: rgb(0,0,0)">script</span><span style="COLOR: rgb(0,0,0)">&gt;</span></div>
<p>djConfig是Dojo里的一个全局对象, 其作用就是为Dojo提供各种选项, isDebug是最常用的属性之一, 设置为True以便能够在页面上直接看到调试输出, 当然其中还有些属性与调试有关, 这里就不罗索了<br><br>2. 引用 dojo 的启动代码</p>
<div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: rgb(0,0,0)">&lt;</span><span style="COLOR: rgb(0,0,0)">script&nbsp;type</span><span style="COLOR: rgb(0,0,0)">=</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">text/javascript</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">&nbsp;src</span><span style="COLOR: rgb(0,0,0)">=</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">/yourpath/dojo.js</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">&nbsp;</span><span style="COLOR: rgb(0,0,0)">/&gt;</span></div>
<p>这样你就引用了dojo的代码, 并可以直接使用其中部分常用的对象, 下载下来的dojo.js是压缩(remove comments and space)后的代码, 要阅读的话,建议阅读dojo.js.uncompressed.js, dojo.js大概有127K, 而未压缩前有211K, ok, 为什么会这么大呢, 原来其已经把部分常用的模块整合进dojo.js里, 因此显得大了一点, build.txt里就说明了默认的dojo.js包含了哪些模块<br><br>3. 声明你所要用到的包</p>
<div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: rgb(0,0,0)">&lt;</span><span style="COLOR: rgb(0,0,0)">script&nbsp;type</span><span style="COLOR: rgb(0,0,0)">=</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">text/javascript</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">&gt;</span><span style="COLOR: rgb(0,0,0)"><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;dojo.require(</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">dojo.math</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">);<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;dojo.require(</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">dojo.io.*</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">);<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;dojo.require(</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">dojo.widget.*</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">);<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: rgb(0,0,0)">&lt;/</span><span style="COLOR: rgb(0,0,0)">script</span><span style="COLOR: rgb(0,0,0)">&gt;</span></div>
<p>&nbsp;你就把这些代码当成是java的import语句或C#中的using语句一样, 如果你不require的话, 而模块本身又没有整合在dojo.js中, 是会出现脚本错误的喔<br><br>2. 针对不同需求提供的预整合包<br><br>Dojo 本身是由许多模块所组合而成的, 但是由于用户需求的多样性, dojo针对不同的需求而提供了不同的版本, 用户在下载dojo的时候就看见可以选择很多的版本, 比如Ajax版和Widget版, 每个版本最重要的区别就在于dojo.js文件, 但是除此之外, 每一个版本都是全功能的, dojo.js根据版本的不同而整合进了不同的模块<br><br>3. 直接获取Dojo的最新源代码<br><br>首先你必须安装 Subversion, 当Subversion在你的电脑上能够正常工作后,你就可以通过如下命令下载dojo的源代码:</p>
<div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: rgb(0,0,0)">svn&nbsp;co&nbsp;http:</span><span style="COLOR: rgb(0,0,0)">//</span><span style="COLOR: rgb(0,0,0)">svn.dojotoolkit.org</span><span style="COLOR: rgb(0,0,0)">/</span><span style="COLOR: rgb(0,0,0)">dojo</span><span style="COLOR: rgb(0,0,0)">/</span><span style="COLOR: rgb(0,0,0)">trunk</span><span style="COLOR: rgb(0,0,0)">/</span></div>
<p>这会在你的当前目录下创建一个 trunk 的目录; 如果你希望直接Get到当前目录, 用这个命令:</p>
<div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: rgb(0,0,0)">svn&nbsp;co&nbsp;http:</span><span style="COLOR: rgb(0,0,0)">//</span><span style="COLOR: rgb(0,0,0)">svn.dojotoolkit.org</span><span style="COLOR: rgb(0,0,0)">/</span><span style="COLOR: rgb(0,0,0)">dojo</span><span style="COLOR: rgb(0,0,0)">/</span><span style="COLOR: rgb(0,0,0)">trunk</span><span style="COLOR: rgb(0,0,0)">/</span><span style="COLOR: rgb(0,0,0)">&nbsp;.</span></div>
<p>或者你希望Get到当前目录下的 MyDir 目录, 用这个命令:</p>
<div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: rgb(0,0,0)">svn&nbsp;co&nbsp;http:</span><span style="COLOR: rgb(0,0,0)">//</span><span style="COLOR: rgb(0,0,0)">svn.dojotoolkit.org</span><span style="COLOR: rgb(0,0,0)">/</span><span style="COLOR: rgb(0,0,0)">dojo</span><span style="COLOR: rgb(0,0,0)">/</span><span style="COLOR: rgb(0,0,0)">trunk</span><span style="COLOR: rgb(0,0,0)">/</span><span style="COLOR: rgb(0,0,0)">&nbsp;MyDir</span></div>
<p><strong><br>模块与包<br><br></strong><strong>模块<br><br></strong>Dojo的代码被划分为逻辑单元称之为模块, 这有点类似于Java中的package,除了dojo的模块能够包含类 (类似于java中的classes)和简单函数<br><br>比如: 模块"dojo.html"包含了一系列的函数, 比如dojo.html.getContentBox(), 模块"dojo.dnd"包含了一系列的HtmlDragObject的类<br><br>注意名称约定, 函数的首字母为小写字母,类的首字母为大写<br><br>模块也可以称之为"命名空间"<br><br><strong>包<br><br></strong>在多数情况下, dojo的模块只需要定义在一个文件就可以了, 但有时, 一个模块可能划分到多个文件, 比如: 模块dojo.html, 本来是定义在一个文件中, 可是由于功能的增强, 文件逐渐变大, 我们不得不将其拆分为多个文件, 这主要是为性能考虑, 以便浏览器可以只下载其需要用到的代码, 不幸的是其实现细节对于dojo的用户看起来不那么透明, 你必须知道你想要用到的功能到底是包含在哪个文件, 然后才能require并使用它<br><br>这样的每一个文件都称之为一个包</p>
<div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: rgb(0,0,0)">dojo.require(</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">dojo.html.extras</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">)</span></div>
<p>&nbsp;将引用文件 src/html/extras.js, 这将定义模块 dojo.html 的若干(并非所有)函数<br><br>据我所知, 尽管单个文件可以定义包里的多个类, 单个脚本文件不能定义多个模块 (在Java可以等效于在一个文件中定义2个类), 并且, 包的名称和模块的名称可以不同, 比如: 包dojo.widget.Button定义了dojo.widget.html.Button<br><br><span style="COLOR: rgb(51,102,255)">基本上你应该这样认为, 包和模块尽管密切相关, 但是是两个完全不同的实体<br><br></span><strong>为什么会有模块和包这样的概念?<br><br></strong>为什么会有模块和包这样的概念? 为了满足你的应用程序只需要加载其所用到的东西的需求, 充分利用模块化设计的优点, dojo维护了最小的足印以便仍能提供你所需要的功能, 为什么要你的用户浪费时间去下载用不到的JavaScript, 当一个包就是一个js文件时, 一个模块本质上就是一个命名空间, 比如: dojo.style 或 dojo.html.extras<br>多数简单情况下, 一个包包含了一个模块, 但更常见的是, 一个模块可能被拆分为几个包文件<br><br>利用包和模块, 将能确保你能够交付最相关的功能代码, 最小程度的减少代码的膨胀和消除由此带来的不好的用户体验,这就是模块设计的主要目标, 通过模块化, 你能够引入自定义模块(你自己拥有的 JavaScript 工具), 并且维护模块对于核心代码库基本不会产生什么影响<br><br>另外, Dojo的模块系统也提供了内建的机制来使用代码提供命名空间, 比如, 通过模块dojo.event定义的Dojo的事件系统<br><br><strong>怎样引用<br><br></strong>设置引用语句<br><br>你怎样才能知道该引用哪个包到dojo.require()?<br><br>1. 模块<br><br>首先, 确定你要使用什么模块, 这个例子我们假定你要使用 dojo.lfx.html<br><br>2. 包<br><br>搜索代码后你发现dojo.lfx.html定义在2个文件:</p>
<ul>
    <li>src/lfx/html.js
    <li>src/lfx/extras.js </li>
</ul>
<p>根据你要用到的功能, 你可以&nbsp;</p>
<div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: rgb(0,0,0)">dojo.require(</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">dojo.lfx.html</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">);</span></div>
<p>或&nbsp;</p>
<div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: rgb(0,0,0)">dojo.require(</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">dojo.lfx.html</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">);<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>dojo.require(</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">dojo.lfx.extras</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">);</span></div>
<p><br>通配符<br><br>新用户可能会对dojo.lfx.*这样就可以替代上面2句而感到诧异, 实际上, __package__.js 中已经定义了通配符可以代替的语句, 并且这样可以让dojo根据当时的环境而决定加载具体的模块</p>
</strong>
<img src ="http://www.blogjava.net/terrywu/aggbug/119970.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/terrywu/" target="_blank">TNT</a> 2007-05-25 13:29 <a href="http://www.blogjava.net/terrywu/articles/119970.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>dojo.io.bind </title><link>http://www.blogjava.net/terrywu/articles/119740.html</link><dc:creator>TNT</dc:creator><author>TNT</author><pubDate>Thu, 24 May 2007 07:50:00 GMT</pubDate><guid>http://www.blogjava.net/terrywu/articles/119740.html</guid><wfw:comment>http://www.blogjava.net/terrywu/comments/119740.html</wfw:comment><comments>http://www.blogjava.net/terrywu/articles/119740.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/terrywu/comments/commentRss/119740.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/terrywu/services/trackbacks/119740.html</trackback:ping><description><![CDATA[dojo.io.bind
<p><br>处理请求取回需要的数据并处理</p>
<p>&nbsp;</p>
<p>这个函数是AJAX中最为重要和有用的函数，dojo.io.bind这个类是用来处理客户端与服务器间通讯的，需要通讯的参数由对象dojo.io.Request所定义，具体通讯的方法则由另外一个对象Transport所提供。</p>
<p>&nbsp;</p>
<p>因此，我们如果需要与服务器通讯，则应该定义一个Request对象，其中包括服务器地址及回调函数，例子中Requset都是以匿名对象方式定义的</p>
<p><br>虽然我们可以定义一个自己的Transport，但是显然不如直接利用现成的Transport方便。</p>
<p><br>Dojo里提供了一个同时兼容IE和Firefox的dojo.io.XMLHTTPTransport，但是这个对象位于
dojo.io.BrowserIO，因此，一般require dojo.io.IO时，还应该require dojo.io.BrowserIO</p>
<p>&nbsp;</p>
<p>Usage Example:</p>
<p>&nbsp; dojo.io.bind({<br>&nbsp;&nbsp;&nbsp; url: "<a href="http://localhost/test.html"><font color="#003366">http://localhost/test.html</font></a>", //要请求的页面地址<br>&nbsp;&nbsp;&nbsp; mimetype: "text/html", //请求的页面的类型，应该设置为与你请求页面类型对应的mimetype，默认为 "text/plain"<br>&nbsp;&nbsp;&nbsp; method："GET", //默认为"GET"<br>&nbsp;&nbsp;&nbsp; sync: false, //默认为异步执行<br>&nbsp;&nbsp;&nbsp; useCache: false, //默认为不使用页面缓存，注意这里的缓存并不是浏览器的缓存，而是Dojo自身所维护的页面缓存<br>&nbsp;&nbsp;&nbsp; preventCache: false, //默认为启用浏览器缓存，否则将通过自动增加不同的参数来确保浏览器缓存失效<br>&nbsp;&nbsp;&nbsp; timeoutSeconds: 3000,&nbsp; //3秒后超时，如果为0则永不超时</p>
<p>&nbsp;&nbsp;&nbsp;  encoding: &#8220;utf-8&#8243;, //默认是ascii </p>
<p>&nbsp;&nbsp;&nbsp; load: function(type, data, evt) { alert(data); }, //type should be "load", data is that we wanted<br>&nbsp;&nbsp;&nbsp; error: function(type, error) { alert(error.message); }, //error is dojo.io.Error<br>&nbsp;&nbsp;&nbsp; timeout: function(type) { alert("请求超时！"); }<br>&nbsp; });</p>
<p><br>&nbsp; 你也可以用一个handle来处理所有的事件</p>
<p>&nbsp;</p>
<p>&nbsp; dojo.io.bind({<br>&nbsp;&nbsp;&nbsp; url: "<a href="http://localhost/test.html"><font color="#003366">http://localhost/test.html</font></a>", //要请求的页面地址<br>&nbsp;&nbsp;&nbsp; mimetype: "text/html", //请求的页面的类型，应该设置为与你请求页面类型对应的mimetype<br>&nbsp;&nbsp;&nbsp; timeoutSeconds: 3000,&nbsp; //3秒后超时，如果为0则永不超时<br>&nbsp;&nbsp;&nbsp; handle: function(type, data, evt){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(type == "load") { alert(data); } //data is that we wanted<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else if (type == "error") { alert(data.message); } //data is the error object<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else { ; } //other events maybe need handled<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp; });<br>&nbsp; <br>&nbsp; 如果没有在Request中指定所用的transport，则Dojo会自动的在已注册的transports中寻找能够处理这个Request的transport，如果不能找到，则返回指定的Request。下面是一个指定了transport的例子:</p>
<p><br>&nbsp; dojo.io.bind({<br>&nbsp;&nbsp;&nbsp; url: "<a href="http://localhost/test.html"><font color="#003366">http://localhost/test.html</font></a>", //要请求的页面地址<br>&nbsp;&nbsp;&nbsp; mimetype: "text/html", //请求的页面的类型，应该设置为与你请求页面类型对应的mimetype<br>&nbsp;&nbsp;&nbsp; timeoutSeconds: 3000,&nbsp; //3秒后超时，如果为0则永不超时<br>&nbsp;&nbsp;&nbsp; transport: "XMLHTTPTransport",</p>
<p>&nbsp;&nbsp;&nbsp; load: function(type, data, evt) { alert(data); }, //type should be "load", data is that we wanted<br>&nbsp;&nbsp;&nbsp; error: function(type, error) { alert(error.message); }, //error is dojo.io.Error<br>&nbsp;&nbsp;&nbsp; timeout: function(type) { alert("请求超时！"); }<br>&nbsp; });</p>
<p><br>&nbsp; 你还可以利用bind来得到一个JavaScript所定义的对象（注意mimetype必须要定义为"text/javascript"）</p>
<p>&nbsp;</p>
<p>&nbsp; testObj = dojo.io.bind({<br>&nbsp;&nbsp;&nbsp; url: "<a href="http://localhost/test.js"><font color="#003366">http://localhost/test.js</font></a>", //test.js里定义了一个对象<br>&nbsp;&nbsp;&nbsp; mimetype: "text/javascript", //请求的页面的类型，应该设置为与你请求页面类型对应的mimetype<br>&nbsp;&nbsp;&nbsp; timeoutSeconds: 3000,&nbsp; //3秒后超时，如果为0则永不超时<br>&nbsp;&nbsp;&nbsp; handle: function(type, data, evt){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(type == "load") { alert(data); } //data is a object or value<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else if (type == "error") { alert(data.message); } //data is the error object<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else { ; } //other events maybe need handled<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp; });<br>&nbsp; <br>&nbsp; 下面是一个Post的例子:<br>&nbsp; <br>&nbsp; dojo.io.bind({<br>&nbsp;&nbsp;&nbsp; url: "<a href="http://localhost/test.aspx"><font color="#003366">http://localhost/test.aspx</font></a>", //要提交的页面地址<br>&nbsp;&nbsp;&nbsp; mimetype: "text/html", //请求的页面的类型，应该设置为与你请求页面类型对应的mimetype<br>&nbsp;&nbsp;&nbsp; timeoutSeconds: 3000,&nbsp; //3秒后超时，如果为0则永不超时<br>&nbsp;&nbsp;&nbsp; method: "POST",<br>&nbsp;&nbsp;&nbsp; formNode: dojo.byId("myForm"), //指定提交的Form名称</p>
<p>&nbsp;&nbsp;&nbsp; load: function(type, data, evt) { alert(data); }, //type should be "load", data is that we wanted<br>&nbsp;&nbsp;&nbsp; error: function(type, error) { alert(error.message); }, //error is dojo.io.Error<br>&nbsp;&nbsp;&nbsp; timeout: function(type) { alert("请求超时！"); }<br>&nbsp; });</p>
<p>&nbsp;</p>
<p>&nbsp; 另一个Post的例子(without Form to post):</p>
<p><br>&nbsp; dojo.io.bind({<br>&nbsp;&nbsp;&nbsp; url: "<a href="http://localhost/test.aspx"><font color="#003366">http://localhost/test.aspx</font></a>", //要提交的页面地址<br>&nbsp;&nbsp;&nbsp; mimetype: "text/html", //请求的页面的类型，应该设置为与你请求页面类型对应的mimetype<br>&nbsp;&nbsp;&nbsp; timeoutSeconds: 3000,&nbsp; //3秒后超时，如果为0则永不超时<br>&nbsp;&nbsp;&nbsp; method: "POST",<br>&nbsp;&nbsp;&nbsp; content: {a: 1, b: 2}, //要提交的数据</p>
<p>&nbsp;&nbsp;&nbsp; load: function(type, data, evt) { alert(data); }, //type should be "load", data is that we wanted<br>&nbsp;&nbsp;&nbsp; error: function(type, error) { alert(error.message); }, //error is dojo.io.Error<br>&nbsp;&nbsp;&nbsp; timeout: function(type) { alert("请求超时！"); }<br>&nbsp; });</p>
<p><br>&nbsp;</p>
<p>dojo.io.queueBind</p>
<p><br>&nbsp; 有时，我们需要一次发出多个网页请求，则应该使用dojo.io.queueBind，因为浏览器可能只允许同时发出有限个数的请求，如果是使用dojo.io.bind的话，则有可能会申请不到新的XMLHttp对象而导致出错。<br><br>&nbsp; 用法与dojo.io.bind是一样的。</p>
<p><br>&nbsp;</p>
<p>dojo.io.argsFromMap</p>
<p><br>&nbsp; 用来把对象转换为URL的参数形式<br>&nbsp; <br>Usage Example:</p>
<p><br>&nbsp; dojo.io.argsFromMap({a:1,b:2,c:3}); //will return "c=3&amp;b=2&amp;a=1"<br>&nbsp;
dojo.io.argsFromMap({name:"名称",value:"值"},"utf"); //will return
"value=%E5%80%BC&amp;name=%E5%90%8D%E7%A7%B0",
有中文的话应该指定utf格式，否则dojo.string.encodeAscii返回的编码是很怪异的<br>&nbsp; dojo.io.argsFromMap({a:1,b:2,c:3}, "utf", "c"); //will return "b=2&amp;a=1&amp;c=3"，最后一个参数可以控制指定名称的值出现在最后<br>&nbsp; </p>
<p>&nbsp;</p>
<p>dojo.io.setIFrameSrc</p>
<p><br>&nbsp; 设置IFrame的Src<br>&nbsp; <br>Usage Example:</p>
<p>&nbsp;</p>
<p>&nbsp; dojo.io.setIFrameSrc(dojo.byId("myFrame"), "<a href="http://localhost/test.htm"><font color="#003366">http://localhost/test.htm</font></a>"); //myFrame打开指定的网页<br>&nbsp; dojo.io.setIFrameSrc(dojo.byId("myFrame"), "<a href="http://localhost/test.htm"><font color="#003366">http://localhost/test.htm</font></a>", true); //myFrame打开指定的网页，并覆盖浏览器的历史记录</p>
<p><br>&nbsp;</p>
<p>TODO: 补充一个kwArgs的例子，我之前在网上看见过，可是现在无论如何也找不到相关的页面了，只好以后在举例了</p>
<p>&nbsp;</p>
<p><br>模块：dojo.io.BrowserIO</p>
<p>&nbsp;</p>
<p>基本上就提供了dojo.io.XMLHTTPTransport这个对象</p>
<p><br>XMLHTTPTransport一般能够满足我们的需求，但是其有几个限制：它不能传输文件，不能够成功执行跨域名的远程请求，并且不支持 file:// 这样的协议</p>
<p><br>因此，根据应用要求，我们可能会需要选用其它的transport: dojo.io.IframeTransport,
dojo.io.repubsubTranport, dojo.io.ScriptSrcTransport, ShortBusTransport</p>
<p>&nbsp;</p>
<p>dojo.io.IframeTransport，用法与xmlhttp是一样的，其优点就是可以跨域，不存在任何的安全问题<br>如果
Request指定的mimetype是text或javascript，返回的内容应该是放在第一个textarea里的内容，如果指定的
mimetype是html，则IFrame里的html则是需要的内容。因为浏览器兼容的原因，IframeTransport不能正确处理返回类型为
XML的请求。</p>
另外要将编码设为全局utf-8,<br><em> djConfig = {<br>&nbsp; bindEncoding: &#8220;utf-8&#8243;,<br>&nbsp;.....<br> }</em> <br>
<p><br></p>
<p><br> </p>
<br><img src ="http://www.blogjava.net/terrywu/aggbug/119740.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/terrywu/" target="_blank">TNT</a> 2007-05-24 15:50 <a href="http://www.blogjava.net/terrywu/articles/119740.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>DWRUtil.addOptions question</title><link>http://www.blogjava.net/terrywu/articles/118710.html</link><dc:creator>TNT</dc:creator><author>TNT</author><pubDate>Sun, 20 May 2007 09:26:00 GMT</pubDate><guid>http://www.blogjava.net/terrywu/articles/118710.html</guid><wfw:comment>http://www.blogjava.net/terrywu/comments/118710.html</wfw:comment><comments>http://www.blogjava.net/terrywu/articles/118710.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/terrywu/comments/commentRss/118710.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/terrywu/services/trackbacks/118710.html</trackback:ping><description><![CDATA[DWRUtil.addOptions('coRegulateurList_tbody', TermList, {<br>creatorFunction: function(oneTerm)<br>{<br>var oneOption = new Option(oneTerm.terminalId+(oneTerm.terminalActive?" Active": ""), oneTerm.terminalId);<br>oneOption.id='term_'+oneTerm.terminalId;<br>oneOption.selected=oneTerm.terminalSelected;<br>}<br>});<br> <br>But why the hell use DWRUtil, I'm doing all the work :op<br> <br>Some maybe like this it would be smarter :<br><br>DWRUtil.addOptions(<br>'coRegulateurList_tbody', TermList, {<br>  idFunction: function(oneTerm)<br>  {<br>    return 'term_' +oneTerm.terminalId;<br>  },<br>  selectedFunction:function(oneTerm)<br>  {<br>     return oneTerm.terminalSelected;<br>  },<br>  textFunction:function(oneTerm)<br>  {<br>    return oneTerm.terminalId+(oneTerm.terminalActive?" Active" :"");<br>  }<br>});<br><img src ="http://www.blogjava.net/terrywu/aggbug/118710.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/terrywu/" target="_blank">TNT</a> 2007-05-20 17:26 <a href="http://www.blogjava.net/terrywu/articles/118710.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>dojo 控制DIV </title><link>http://www.blogjava.net/terrywu/articles/118271.html</link><dc:creator>TNT</dc:creator><author>TNT</author><pubDate>Fri, 18 May 2007 02:35:00 GMT</pubDate><guid>http://www.blogjava.net/terrywu/articles/118271.html</guid><wfw:comment>http://www.blogjava.net/terrywu/comments/118271.html</wfw:comment><comments>http://www.blogjava.net/terrywu/articles/118271.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/terrywu/comments/commentRss/118271.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/terrywu/services/trackbacks/118271.html</trackback:ping><description><![CDATA[<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000;"></span><span style="color: #000000;">&lt;</span><span style="color: #000000;">div</span><span style="color: #000000;">&gt;&lt;</span><span style="color: #000000;">input&nbsp;type</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">button</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;value</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">wipeOut</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;onclick</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">wipeOut('subBlogListDiv')</span><span style="color: #000000;">"</span><span style="color: #000000;">/&gt;&lt;/</span><span style="color: #000000;">div</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #000000;">&lt;</span><span style="color: #000000;">div</span><span style="color: #000000;">&gt;&lt;</span><span style="color: #000000;">input&nbsp;type</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">button</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;value</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">wipeIn</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;&nbsp;onclick</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">wipeIn('subBlogListDiv')</span><span style="color: #000000;">"</span><span style="color: #000000;">/&gt;&lt;/</span><span style="color: #000000;">div</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #000000;">&lt;</span><span style="color: #000000;">div</span><span style="color: #000000;">&gt;&lt;</span><span style="color: #000000;">input&nbsp;type</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">button</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;value</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">fadeOut</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;&nbsp;onclick</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">fadeOut('subBlogListDiv')</span><span style="color: #000000;">"</span><span style="color: #000000;">/&gt;&lt;/</span><span style="color: #000000;">div</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #000000;">&lt;</span><span style="color: #000000;">div</span><span style="color: #000000;">&gt;&lt;</span><span style="color: #000000;">input&nbsp;type</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">button</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;value</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">fadeIn</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;&nbsp;onclick</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">fadeIn('subBlogListDiv')</span><span style="color: #000000;">"</span><span style="color: #000000;">/&gt;&lt;/</span><span style="color: #000000;">div</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #000000;">&lt;</span><span style="color: #000000;">div</span><span style="color: #000000;">&gt;&lt;</span><span style="color: #000000;">input&nbsp;type</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">button</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;value</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">opacity</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;&nbsp;onclick</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">opacity('subBlogListDiv')</span><span style="color: #000000;">"</span><span style="color: #000000;">/&gt;&lt;/</span><span style="color: #000000;">div</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #000000;">&lt;</span><span style="color: #000000;">div</span><span style="color: #000000;">&gt;&lt;</span><span style="color: #000000;">input&nbsp;type</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">button</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;value</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">highlight</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;&nbsp;onclick</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">highlight('subBlogListDiv')</span><span style="color: #000000;">"</span><span style="color: #000000;">/&gt;&lt;/</span><span style="color: #000000;">div</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #000000;">&lt;</span><span style="color: #000000;">div</span><span style="color: #000000;">&gt;&lt;</span><span style="color: #000000;">input&nbsp;type</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">button</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;value</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">explode</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;onclick</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">dojo.lfx.explode(this,&nbsp;'subBlogListDiv',&nbsp;300).play();</span><span style="color: #000000;">"</span><span style="color: #000000;">/&gt;&lt;/</span><span style="color: #000000;">div</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #000000;">&lt;</span><span style="color: #000000;">div</span><span style="color: #000000;">&gt;&lt;</span><span style="color: #000000;">input&nbsp;type</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">button</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;value</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">implode</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;onclick</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">dojo.lfx.implode(&nbsp;'subBlogListDiv',&nbsp;this,300).play();</span><span style="color: #000000;">"</span><span style="color: #000000;">/&gt;&lt;/</span><span style="color: #000000;">div</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #000000;">&lt;</span><span style="color: #000000;">div</span><span style="color: #000000;">&gt;&lt;</span><span style="color: #000000;">input&nbsp;type</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">button</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;value</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">slidTo</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;&nbsp;onclick</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">dojo.lfx.html.slideTo(document.getElementById('testM'),&nbsp;[400,&nbsp;700],&nbsp;5000).play();</span><span style="color: #000000;">"</span><span style="color: #000000;">/&gt;&lt;/</span><span style="color: #000000;">div</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #000000;">&lt;</span><span style="color: #000000;">div</span><span style="color: #000000;">&gt;&lt;</span><span style="color: #000000;">input&nbsp;type</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">button</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;value</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">slidBy</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;&nbsp;onclick</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">dojo.lfx.html.slideBy(document.getElementById('testM'),&nbsp;[0,&nbsp;0],&nbsp;5000).play();</span><span style="color: #000000;">"</span><span style="color: #000000;">/&gt;&lt;/</span><span style="color: #000000;">div</span><span style="color: #000000;">&gt;<br><br><br><br>&lt;sciprt&gt;<br>&nbsp;&nbsp; //highlight(高亮度標示)、Wipe(捲起、張開)、Fade(淡出、淡入)、Explode(跳出)、Implode(收回)、Slide(滑動);<br>&nbsp;&nbsp;&nbsp;&nbsp; function wipeOut(elId){&nbsp; &nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dojo.lfx.wipeOut(elId, 300).play();&nbsp; &nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp; &nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp; function wipeIn(elId) {&nbsp; &nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dojo.lfx.wipeIn(elId, 300).play();&nbsp; &nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp; &nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp; function fadeOut(elId){&nbsp; &nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dojo.lfx.html.fadeOut(elId, 300).play();&nbsp; &nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp; &nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp; function highlight(elId){&nbsp; &nbsp;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;dojo.lfx.html.highlight(elId, [255,255,0], 2000, 5000).play();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp; &nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp; function fadeIn(elId){&nbsp; &nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dojo.lfx.html.fadeIn(elId, 300).play();&nbsp; &nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp; &nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp; function opacity(elId){&nbsp; &nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dojo.html.setOpacity(elId, 0.5);&nbsp; &nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp; &nbsp;
<br>&lt;/script&gt;<br></span><span style="color: #000000;"></span></div>
<br><img src ="http://www.blogjava.net/terrywu/aggbug/118271.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/terrywu/" target="_blank">TNT</a> 2007-05-18 10:35 <a href="http://www.blogjava.net/terrywu/articles/118271.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>