dojo、dijit 和 dojoX 之間是以 dojo 為基礎,一層一層的疊上去的,所以,如果要用 dijit 或 dojoX 之前,都要先安裝 dojo 才行。
2010-01-17
dojo、dijit 和 dojoX 有什麼不同 ?
dojo、dijit 和 dojoX 之間是以 dojo 為基礎,一層一層的疊上去的,所以,如果要用 dijit 或 dojoX 之前,都要先安裝 dojo 才行。
Dojo 如何製作直式選單 ?
Dojo 透過 dijit 的 MenuBar 提供一般常見的橫式選單,不過,dijit.MenuBar 並沒有提供直式 MenuBar 的功能,所以,阿舍就去研究了一下,其實,只要透過 dijit.PopupMenuItem 和 dijit.Menu 的運用就可以做的出來。
阿舍直接以 HTML 的方式來說,要先在最外面將一個 div 的 dojoType 定義為 dijit.Menu,然後裡面再放一個 div 把它的 dojoType 定義為 dijit.PopupMenuItem, 接著再放一個 div,把它的 dojoType 也定義成 dijit.Menu,最後再加上數個 div 當做選單的子項,把它的 dojoType 定義成 dijit.MenuItem,這樣就可以組出直立式的選單了,示意的 HTML 程式碼如下:
<div dojoType="dijit.Menu">
<div dojoType="dijit.PopupMenuItem">
<div dojoType="dijit.Menu">
<div dojoType="dijit.MenuItem">
Item11
</div>
<div dojoType="dijit.MenuItem">
Item12
</div>
</div>
</div>
</div>
2010-01-16
dojo 的 "Could not load cross-domain resources:..." 錯誤與解決方法
要解決這個問題的方法不難,只要在引用遠端的 dojo.xd.js 檔案之前,先用 djconfig 把路徑設成 ./ 就可以了,範例如下:
<head>
<link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/dojo/1.3/dijit/themes/tundra/tundra.css">
<script type="text/javascript">
djConfig = {
parseOnLoad: true,
baseUrl: "./",
};
</script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/dojo/1.3/dojo/dojo.xd.js" djConfig="parseOnLoad: true">
</script>
<script type="text/javascript">
dojo.require("dijit.Menu");
</script>
</head>
<script type="text/javascript">
dojo.require("dijit.Menu");
</script>
</head>
選擇 Dojo 的理由
- Dojo 的授權是最自由的,而且可以拿來開發商業軟體也可以不用付錢及不用開放原始碼。
- Dojo 有針對 Javascript 的語法進行加強,例如像 ForEach 這個功能或是 Map 的功能,原來的 Javascript 是沒有提供的,但是 dojo 提供了 dojo.ForEach 和 dojo.map 的功能。
- Dojo 的語比較接原來的 Javascript 語法,雖然 JQuery 的 $() 很好用,但是,阿舍還是覺得程式不好看,不好維護。
- Dojo 目前已被應用在 IBM 的產品裡且受到 IBM 的支持。
2009-12-19
安裝 Dojo、Dijit 及 DojoX
Lotus Domino 8.5 內建 Dojo 1.1.1 版
內建的 Dojo 被放在 Lotus Domino Server 上的 data\domino\js\dojo-x.x.x\dojo\dojo.js 裡,在 Web 上的 URL 是 /domjs/dojo-x.x.x/dojo/dojo.js,這和傳統 Lotus Domino Server 上的網址轉換是不太一樣的。
Lotus Domino 8.5 Server 有針對 Dojo 進行最佳化和提供 GZip 壓縮的功能,同時也支援瀏覽器預載快取 ( Predictable Browser Caching )的功能,提高 Dojo 的執行效能和降低頻寛的使用...。
2009-12-16
dojo.byId 和 dojo.query 的差別..
一般來說,dojo.byId 適合用來處理有 ID 的節點,而 dojo.query 適合用來處理 Class 節點或複雜的節點搜尋。
2009-12-14
dojo.indexOf 說明與範例
var 字串位置 = dojo.indexOf(陣列名稱, "搜尋字串");程式範例如下:
<script type="text/javascript">
dojo.addOnLoad(function(){
var arrSample = ["apple", "dog", "book","book","desk"];
var position = dojo.indexOf(arrSample, "book");
alert(position);
});
</script
dojo 辨識瀏覽器名稱和版本
- dojo.isIE
- dojo.isMozilla
- dojo.isFF
- dojo.isOpera
- dojo.isSafari
- dojo.isKhtml
- dojo.isWebKit
- dojo.isChrome
<script type="text/javascript">
dojo.addOnLoad(function(){
dojo.forEach(["IE", "Mozilla", "FF", "Opera", "WebKit", "Chrome","Khtml","Safari"],
function(browserName) {
if (dojo["is"+browserName]) {
var version = dojo["is"+browserName] ;
dojo.byId("msg").innerHTML = browserName + " " + version;
}
});
});
</script>
<body>
<div id="msg"></div>
</body>
2009-12-13
dojo : djConfig 的用法
<script
type="text/javascript"
src="http://ajax.googleapis.com/ajax/libs/dojo/1.4.0/dojo/dojo.xd.js"
djConfig="parseOnLoad: true, isDebug: true">
</script>
第二種則是透過 Javascript 程式碼先設定好 djConfig 物件,而不使用標籤屬性的方法,寫法如下:
<script type="text/javascript">
var djConfig = {
parseOnLoad: true,
isDebug: true,
};
</script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/dojo/1.4.0/dojo/dojo.xd.js"></scrip
那一種比較好,阿舍個人是覺得,當 djConfig 要用到的參數少時,就用第一種,djConfig 參數多時就用第二種,如果要動態指定 djConfig 參數時,那當然也是用第二種囉 !!
訂閱:
文章
(
Atom
)