在引用dojo.js前,最好声明djConfig对象,以便在加载dojo.js时能够取得所设置的值,虽然在0.3版本以后dojo支持在加载后设置,但是强烈建议你把声明djConfig的代码作为第一段script: 
一个完整的djConfig对象定义如下(值均为dojo的默认值) 
js 代码 
var djConfig = {     
   isDebug: false,     
   debugContainerId: "",     
   bindEncoding: "",     
   allowQueryConfig: false,     
   baseScriptUri: "",     
   parseWidgets: true    
   searchIds: [],     
   baseRelativePath: "",     
   libraryScriptUri: "",     
   iePreventClobber: false,     
   ieClobberMinimal: true,     
   preventBackButtonFix: true,     
debugContainerId同样也是与调试有关的,如果不指定的话,调试信息将会直接利用 document.write输出,这样可能会破坏页面的整体布局,所以你可以指定任何一个可以作为容器的html元素的id作为调试信息输出容器 
allowQueryConfig,这个属性指明 dojo是否允许从页面url的参数中读取djConfig中的相关属性,当值为true时,dojo会优先从url参数中读取djConfig的其他属性,比如: ?djConfig.debugContainerId=divDebug 
baseScriptUri,一般不需要设置,dojo会自动根据你引用dojo.js的路径设置这个值,比如,<script src="../dojo/dojo.js" type="text/javascript"></script>,自动获取的值便是 ../dojo/ 
ps: 如果你有多个工程需要同时引用dojo.js的话,建议也把dojo当作一个独立的工程,引用的时候采用绝对路径就可以了 
parseWidgets,这个是可以控制dojo是否自动解析具有dojoType的html元素为对应的widget,如果你没有使用任何Widget,建议设置为false以加快dojo的加载速度 
searchIds,这是一个字符串数组,定义了所有需要解析为widget的html元素的ID,如果ID不在其中的html元素是不会被解析的,当数组为空数组时,则所有具有dojoType的元素都会被解析 
还有一个bindEncoding,是用来设置默认的bind请求的编码方式。 
dojo.raise抛出一个异常 
dojo.errorToString将异常转换为字符串 
js 代码 
try {     
   dojo.raise("打印失败", new Error("文件不存在"));     
} catch(e)     
{     
   alert(dojo.errorToString(e));     
}     
isDebug是一个很有用的属性,如果设置为真,则所有dojo.Debug的输出有效,开发时应该设置为true,发布时应该设置为false。 
1 计算HTML中一个块的size 
js 代码 
dojo.style.getOuterWidth / dojo.style.getOuterHeight      
dojo.style.getInnerWidth / dojo.style.getInnerHeight    
2 修改CSS 
js 代码 
dojo.html.addClass(node, className)      
dojo.html.prependClass(node, className)      
dojo.html.removeClass(node, className)      
dojo.html.replaceClass(node, className, oldClassName)    
3 动画 
js 代码 
fadeIn, fadeShow, fadeOut, fadeHide,      
wipeIn, wipeOut       
explode, implode      
highlight, unhighlight      
举例:      
    function wipeOut(elId){     
        dojo.lfx.wipeOut(elId, 300).play();     
    }     
    function wipeIn(elId) {     
        dojo.lfx.wipeIn(elId, 300).play();     
    }     
    function fadeOut(elId){     
       dojo.lfx.html.fadeOut(elId, 300).play();     
    }     
    function fadeIn(elId){     
       dojo.lfx.html.fadeIn(elId, 300).play();     
    }     
    function opacity(elId){     
       dojo.html.setOpacity(elId, 0.5);     
    }     
    function opacityApp(){     
       $("#opacity").click(function(){     
          opacity('fadeElm');     
       });     
    }     
    function fadeInApp(){     
       $("#fadein").click(function(){     
            fadeIn('fadeElm');     
        });     
    }   dojo.lang模块: 
dojo.lang.mixin将一个对象的方法和属性增加到另一个对象上: 
js 代码 
var s1 = {name: "TestObj", test1: function(){alert("this is test1!");}}     
var s2 = {value: 1000, test2: function(){alert("this is test2!");}}     
var d = {};     
dojo.lang.mixin(d, s1, s2); //执行后d就具备了s1和s2的所有属性和方法d.test1();    
dojo.lang.extend为指定类的原型扩展方法与属性: 
js 代码 
TestClass = function() {};     
dojo.lang.extend(TestClass, {name: "demo", test: function(){alert("Test!");}});     
var o = new TestClass();       
                   //TestClass本来是没有test方法的,但是extend以后就有test方法了o.test();    
dojo.lang.find=dojo.lang.indexOf查找指定对象在指定数组中的位置: 
js 代码 
var arr = [1,2,3,3,2,1];     
dojo.lang.find(arr, 2);   //will return 1    
dojo.lang.extrasdojo.lang.setTimeout延迟指定时间后执行指定方法: 
js 代码 
function onTime(msg){dojo.debug(msg)}     
dojo.lang.setTimeout(onTime, 1000, "test"); //1秒后会输出调试信息"test"   
DOM操作 
js 代码 
dojo.dom.isNode     
dojo.dom.getTagName     
dojo.dom.firstElement     
dojo.dom.lastElement     
dojo.dom.nextElement     
dojo.dom.prevElement     
dojo.dom.moveChildren (srcNode, destNode, trim)     
dojo.dom.copyChildren (srcNode, destNode, trim)     
dojo.dom.removeChildren(node)     
dojo.dom.replaceChildren(node, newChild)     
dojo.dom.removeNode(node)     
dojo.dom.getAncestors     
dojo.dom.getAncestorsByTag     
dojo.dom.innerXML     
dojo.dom.createDocumentFromText     
dojo.dom.prependChild     
dojo.dom.insertAfter     
dojo.dom.insertAtPosition     
dojo.dom.textContent     
先介绍这么多,祝大家周末愉快!
