這裡所說的基礎物件和方法是指的不
require
任何包就能夠呼叫的物件和方法
匿名函式
在開始前,我想介紹一下
js裡的匿名函式,這個在閱讀
dojo
的源**的時候,會發現到處都有匿名函式
;(function())();
//前面的分號是乙個空語句,是可以不要的
匿名函式。乙個匿名函式就是乙個沒有名字的函式。
你可以認為他們是一次性函式。當你只需要用一次某個函式時,他們就特別有用。通過使用匿名函式,沒有必要把函式一直放在記憶體中,所以使用匿名函式更加有效率。
當然你也可以根本不定義函式,但是使用匿名函式可以把你的**分段,就像
c#中的
#region
一樣非常有用的乙個方法,與
prototype.js
的著名的$一樣
似乎以前的版本還有
dojo.byidarray,
不過最新的版本已經找不到這個函式了(除了
src/compat/
0.2.2
.js)
如果有多個元素具有指定的
id,則返回的是乙個集合
usage example:
dojo.byid("divtest");
dojo.byid("divtest", document);
dojo.byid(document.getelementbyid("divtest"));
dojo.version
dojo
的版本,可以取得
major, minor, patch, flag
和revision
這個物件沒什麼太大用處,除非你要根據
dojo
的版本選擇執行你的**
dojo.raise
丟擲乙個異常
dojo.errortostring
將異常轉換為字串
usage example:
try
catch(e)
dojo.render
系統環境物件
dojo.render.name
返回browser
,說明是工作在瀏覽器下
dojo.render.ver
返回4
,似乎沒什麼用
dojo.os.win
返回true
說明作業系統是
windows
dojo.os.linux
返回true
說明作業系統是
linux
dojo.os.osx
返回true
說明作業系統是
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
開發的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
可以載入指定函式到
window.load
時執行,好處就是可以很方便的在
window.load
時執行多個函式
usage example:
dojo.addonload(init); //init
是乙個函式
dojo.addonload(myobject, init); //init
是myobject
物件的乙個方法
dojo.require
如果你想呼叫乙個模組的物件的時候,你應該首先用
dojo.require
來請求這個模組,
dojo
會根據你的請求自動取得相應的
js檔案,並載入到記憶體中,這樣你才能呼叫或建立其中的物件
dojo
會自動維護已載入的模組列表,所以是不會重複載入模組的
usage example:
可以根據指定的條件來決定是否載入指定的模組
usage example:
dojo.requireif(dojo.html.ie, "dojo.html"); //
如果dojo.html.ie
為true
,才會載入
dojo.html
模組dojo.provide
除非你要開發自己的模組,不然是用不到這個方法的,你可以這句看成是向系統註冊這個模組名稱
usage example:
dojo.provide("dojo.custom");
dojo.exists
判斷指定物件是否具有指定名稱的方法
usage example:
dojo.exists(dojo, "exists"); //will return true
dojo.hostenv.gettext
返回指定
url的內容
ps:
由於瀏覽器的安全限制,因此只能用於取得同網域名稱的
url的內容,否則會報告許可權不夠
usage example:
async = false; //
同步,確保返回內容不為
null
silent = true; //
不丟擲錯誤
返回google
的首頁的
html
alert(s);
dojo.debug
輸出除錯資訊,如果在
djconfig
中指定了
debugcontainerid
,則輸出到指定的
console
容器中,否則直接
document.write
所有的除錯資訊均以
debug:
開頭usage example:
dojo.debug("
這是除錯資訊
");
dojo.hostenv.println
與dojo.debug
類似,不同的是,輸出內容沒有
debug:
usage example:
dojo.hostenv.println("
這是一般的輸出資訊
");
dojo.debugshallow
輸出指定物件的全部資訊
(shallow
說明並不會遍歷到下一級別的物件屬性
)以供除錯
usage example:
dojo.debugshallow(dojo.render.html);
以上全部是自己閱讀源**寫的總結,如有錯誤,還請指明。
dojo.byid
dojo.require("dojo.event");
dojo.requireif=dojo.requireafterif
dojo學習筆記(三)
模組 dojo.string.common dojo.string dojo.string.common 和dojo.string 是一樣的,只要 require 其中乙個就可以使用以下方法 dojo.string.trim 去掉字串的空白 usage example s abc dojo.stri...
Dojo學習筆記1
一 dojo類包包括 dojo.collections 資料集合如 list,queue,set,stack,dictionary dojo.crypto 各種加密api如 blowfish,md5,rijndael,sha dojo.date 日期類,可以很方便的顯示各種日期格式 dojo.dnd...
Dojo學習筆記 理解 WidgetBase
難度 中級 dojo版本 1.8 原文 參考 深入理解 widgetbase 開始 dijit的基礎以及建立自定義部件的能力,很大程度上依賴於乙個定義在 dijit widgetbase模組的基類,這是使用dojo建立任何種類的自定義部件時都要用到的。注意早期的dijit widget模組繼承了di...