這里所說的基礎(chǔ)對(duì)象和方法是指的不Require任何包就能夠調(diào)用的對(duì)象和方法
匿名函數(shù)
在開始前,我想介紹一下js里的匿名函數(shù),這個(gè)在閱讀dojo的源代碼的時(shí)候,會(huì)發(fā)現(xiàn)到處都有匿名函數(shù)
;(function(){
alert(123);
})();
//前面的分號(hào)是一個(gè)空語(yǔ)句,是可以不要的匿名函數(shù)。一個(gè)匿名函數(shù)就是一個(gè)沒有名字的函數(shù)。
你可以認(rèn)為他們是一次性函數(shù)。當(dāng)你只需要用一次某個(gè)函數(shù)時(shí),他們就特別有用。通過使用匿名函數(shù),沒有必要把函數(shù)一直放在內(nèi)存中,所以使用匿名函數(shù)更加有效率。
當(dāng)然你也可以根本不定義函數(shù),但是使用匿名函數(shù)可以把你的代碼分段,就像C#中的#region一樣
dojo.byId
非常有用的一個(gè)方法,與prototype.js的著名的$一樣
似乎以前的版本還有dojo.byIdArray, 不過最新的版本已經(jīng)找不到這個(gè)函數(shù)了(除了src\compat\0.2.2.js)
如果有多個(gè)元素具有指定的id,則返回的是一個(gè)集合
Usage Example:
dojo.byId("divTest");
dojo.byId("divTest", document);
dojo.byId(document.getElementById("divTest"));
dojo.version
dojo的版本,可以取得major, minor, patch, flag和revision
這個(gè)對(duì)象沒什么太大用處,除非你要根據(jù)dojo的版本選擇執(zhí)行你的代碼
dojo.raise
拋出一個(gè)異常
dojo.errorToString
將異常轉(zhuǎn)換為字符串
Usage Example:
try
{
dojo.raise("打印失敗", new Error("文件不存在"));
}
catch(e)
{
alert(dojo.errorToString(e));
}
dojo.render
系統(tǒng)環(huán)境對(duì)象
dojo.render.name 返回 browser ,說明是工作在瀏覽器下
dojo.render.ver 返回 4 ,似乎沒什么用
dojo.os.win 返回true說明操作系統(tǒng)是Windows
dojo.os.linux 返回true說明操作系統(tǒng)是Linux
dojo.os.osx 返回true說明操作系統(tǒng)是MacOS
dojo.html.ie 返回true說明瀏覽器是Internet Explorer
dojo.html.opera 返回true說明瀏覽器是Opera
dojo.html.khtml 返回true說明瀏覽器是Konqueror
dojo.html.safari 返回true說明瀏覽器是Safari
dojo.html.moz 返回true說明瀏覽器是Mozilla FireFox
dojo.svg.capable 返回true說明瀏覽器支持svg
dojo.vml.capable 返回true說明瀏覽器支持vml
dojo.swf.capable 返回true說明瀏覽器支持swf
dojo.swt.capable 返回true說明瀏覽器支持swt (IBM開發(fā)的Standard Widget Toolkit)
如果dojo.html.ie為true的話
dojo.html.ie50 返回true說明瀏覽器是IE 5.0
dojo.html.ie55 返回true說明瀏覽器是IE 5.5
dojo.html.ie60 返回true說明瀏覽器是IE 6.0
dojo.html.ie70 返回true說明瀏覽器是IE 7.0
dojo.addOnLoad
可以加載指定函數(shù)到window.load時(shí)執(zhí)行,好處就是可以很方便的在window.load時(shí)執(zhí)行多個(gè)函數(shù)
Usage Example:
dojo.addOnLoad(init); //init是一個(gè)函數(shù)
dojo.addOnLoad(myObject, init); //init是myObject對(duì)象的一個(gè)方法
dojo.require
如果你想調(diào)用一個(gè)模塊的對(duì)象的時(shí)候,你應(yīng)該首先用dojo.require來請(qǐng)求這個(gè)模塊,dojo會(huì)根據(jù)你的請(qǐng)求自動(dòng)取得相應(yīng)的js文件,并加載到內(nèi)存中,這樣你才能調(diào)用或創(chuàng)建其中的對(duì)象
dojo會(huì)自動(dòng)維護(hù)已加載的模塊列表,所以是不會(huì)重復(fù)加載模塊的
Usage Example:
dojo.require("dojo.event");dojo.requireIf=dojo.requireAfterIf
可以根據(jù)指定的條件來決定是否加載指定的模塊
Usage Example:
dojo.requireIf(dojo.html.ie, "dojo.html"); //如果dojo.html.ie為true,才會(huì)加載dojo.html模塊
dojo.provide
除非你要開發(fā)自己的模塊,不然是用不到這個(gè)方法的,你可以這句看成是向系統(tǒng)注冊(cè)這個(gè)模塊名稱
Usage Example:
dojo.provide("dojo.custom");dojo.exists
判斷指定對(duì)象是否具有指定名稱的方法
Usage Example:
dojo.exists(dojo, "exists"); //will return true
dojo.hostenv.getText
返回指定url的內(nèi)容
PS: 由于瀏覽器的安全限制,因此只能用于取得同域名的url的內(nèi)容,否則會(huì)報(bào)告權(quán)限不夠
Usage Example:
aSync = false; //同步,確保返回內(nèi)容不為null
silent = true; //不拋出錯(cuò)誤
s = dojo.hostenv.getText("http://www.google.com/", aSync, silent); //返回Google的首頁(yè)的HTML
alert(s);dojo.debug
輸出調(diào)試信息,如果在djConfig中指定了debugContainerId,則輸出到指定的console容器中,否則直接document.write
所有的調(diào)試信息均以 DEBUG: 開頭
Usage Example:
dojo.debug("這是調(diào)試信息");
dojo.hostenv.println
與dojo.debug類似,不同的是,輸出內(nèi)容沒有 DEBUG:
Usage Example:
dojo.hostenv.println("這是一般的輸出信息");
dojo.debugShallow
輸出指定對(duì)象的全部信息(Shallow說明并不會(huì)遍歷到下一級(jí)別的對(duì)象屬性)以供調(diào)試
Usage Example:
dojo.debugShallow(dojo.render.html);
posted on 2007-01-17 10:20
周銳 閱讀(555)
評(píng)論(0) 編輯 收藏 所屬分類:
Ajax