dojo.attr裡parse的屬性名稱,竟然無法處理class和for。class屬性改為className,for屬性則改為htmlFor。
詳情請參考這張票。
Wraecca 小學生技術筆記
dojo.attr() 的ie錯誤
2009年5月19日 星期二 於 上午9:00 張貼者: Wraecca
Dojo Ajax更新頁面後dijit失效
2009年5月6日 星期三 於 凌晨4:03 張貼者: Wraecca
在用dojo這個javascript library時,以ajax更新部份頁面後傳送回來html,其中包含dijit的部份卻無法正確顯示。這是因為dijit是在頁面載入完之後再parse整份文件來render各個widget,djConfig="parseOnLoad:true"就是在設定這件事,所以ajax傳回來的那份html當然也要給dojo來parse一下,此外每個dijit該有的require也不要忘了load-on-demand進來。
varformSubmit= function(e) {
e.preventDefault();
dojo.xhrPost({
url: "Loader",
form: "mainForm",
handleAs: "json",
load: function(data, args){
if(typeof data == "error"){
console.warn("error!",args);
} else {
//假設傳回來的data是一個包含head和body的json,
//其中head包含了一些load-on-demand的script
dojo.query('head').addContent(data.head);
//dojo.parser.parse()吃DomNode,
//所以先create一個id設為updated的divvar updated = dojo.doc.createElement("div").attr("id", "updated");
//把data.body就是要拿來render的html
updated.innerHTML = data.body;
//再用dojo.byId()拿#updated來餵給dojo.parser吃
dojo.parser.parse(dojo.byId("updated"));
}
}
});
}
標籤: ajax, dojo, javascript | 0 意見 »
訂閱:
文章 (Atom)