|
一個(gè)完整的djConfig對(duì)象定義如下(值均為dojo的默認(rèn)值)
js 代碼
var djConfig = {
isDebug: false,
debugContainerId: "",
bindEncoding: "",
allowQueryConfig: false,
baseScriptUri: "",
parseWidgets: true
searchIds: [],
baseRelativePath: "",
libraryScriptUri: "",
iePreventClobber: false,
ieClobberMinimal: true,
preventBackButtonFix: true,
debugContainerId同樣也是與調(diào)試有關(guān)的,如果不指定的話,調(diào)試信息將會(huì)直接利用 document.write輸出,這樣可能會(huì)破壞頁(yè)面的整體布局,所以你可以指定任何一個(gè)可以作為容器的html元素的id作為調(diào)試信息輸出容器
allowQueryConfig,這個(gè)屬性指明 dojo是否允許從頁(yè)面url的參數(shù)中讀取djConfig中的相關(guān)屬性,當(dāng)值為true時(shí),dojo會(huì)優(yōu)先從url參數(shù)中讀取djConfig的其他屬性,比如: http://server/dojoDemo.htm?djConfig.debugContainerId=divDebug
baseScriptUri,一般不需要設(shè)置,dojo會(huì)自動(dòng)根據(jù)你引用dojo.js的路徑設(shè)置這個(gè)值,比如,<script src="../dojo/dojo.js" type="text/Javascript"></script>,自動(dòng)獲取的值便是 ../dojo/
ps: 如果你有多個(gè)工程需要同時(shí)引用dojo.js的話,建議也把dojo當(dāng)作一個(gè)獨(dú)立的工程,引用的時(shí)候采用絕對(duì)路徑就可以了
parseWidgets,這個(gè)是可以控制dojo是否自動(dòng)解析具有dojoType的html元素為對(duì)應(yīng)的widget,如果你沒(méi)有使用任何Widget,建議設(shè)置為false以加快dojo的加載速度
searchIds,這是一個(gè)字符串?dāng)?shù)組,定義了所有需要解析為widget的html元素的ID,如果ID不在其中的html元素是不會(huì)被解析的,當(dāng)數(shù)組為空數(shù)組時(shí),則所有具有dojoType的元素都會(huì)被解析
還有一個(gè)bindEncoding,是用來(lái)設(shè)置默認(rèn)的bind請(qǐng)求的編碼方式。
dojo.raise拋出一個(gè)異常
dojo.errorToString將異常轉(zhuǎn)換為字符串
js 代碼
try {
dojo.raise("打印失敗", new Error("文件不存在"));
} catch(e)
{
alert(dojo.errorToString(e));
}
isDebug是一個(gè)很有用的屬性,如果設(shè)置為真,則所有dojo.Debug的輸出有效,開(kāi)發(fā)時(shí)應(yīng)該設(shè)置為true,發(fā)布時(shí)應(yīng)該設(shè)置為false。
1 計(jì)算HTML中一個(gè)塊的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 動(dòng)畫(huà)
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將一個(gè)對(duì)象的方法和屬性增加到另一個(gè)對(duì)象上:
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); //執(zhí)行后d就具備了s1和s2的所有屬性和方法d.test1();
dojo.lang.extend為指定類(lèi)的原型擴(kuò)展方法與屬性:
js 代碼
TestClass = function() {};
dojo.lang.extend(TestClass, {name: "demo", test: function(){alert("Test!");}});
var o = new TestClass();
//TestClass本來(lái)是沒(méi)有test方法的,但是extend以后就有test方法了o.test();
dojo.lang.find=dojo.lang.indexOf查找指定對(duì)象在指定數(shù)組中的位置:
js 代碼
var arr = [1,2,3,3,2,1];
dojo.lang.find(arr, 2); //will return 1
dojo.lang.extrasdojo.lang.setTimeout延遲指定時(shí)間后執(zhí)行指定方法:
js 代碼
function onTime(msg){dojo.debug(msg)}
dojo.lang.setTimeout(onTime, 1000, "test"); //1秒后會(huì)輸出調(diào)試信息"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
先介紹這么多,祝大家周末愉快!
JavaScript技術(shù):推薦dojo學(xué)習(xí)筆記,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。