2012-07-22 89 views
0

我在Internet Explorer 7/8中的Dojo出現問題(在Firefox中可以正常工作)。Dojo:對話框刷新TabContainer中的dojox.layout.ContentPane

基本上我有一個選項卡容器中有一些選項卡(這些是dojox.layout.ContentPane的)。在其中一個選項卡上,我希望有一個「評論框」,它將彈出一個對話框並要求用戶輸入內容。然後通過調用將該評論保存到後端,我希望該選項卡重新加載以顯示新評論。

我保存按鈕的邏輯運作是這樣的:

<button data-dojo-type="dijit.form.Button" type="button" data-dojo-props="iconClass:'dijitIcon dijitIconSave', showLabel: true" title="Add your comment">Add Comment 
    <script type="dojo/on" data-dojo-event="click" data-dojo-args="evt"> 
     require(["dojo/dom"], function(dom) 
     { 
     var tText = dijit.byId('comment_70').get('value'); 
     if (tText == '') 
     { 
      alert('You have not entered any comment'); 
      return; 
     } 
     var tJSONRPC = new JSONRpcClient('JSON-RPC'); 
     try 
     { 
      tJSONRPC.be.addComment('70', tText); 
      var tTab = dijit.byId('Detail_70'); 
      tTab.refresh(); 
     } 
     catch (Ex) 
     { 
      alert(Ex); 
     } 
     }); 
    </script></button> 

不會出現可怕的徵稅(70末是ID,使用戶可以擁有這些開放的不止一個同時,因此選項卡)。

如上所述,這在Firefox中可以正常工作,但不在IE 8/7中,它在dojo(_32.focus();)中的某些生成代碼中引發錯誤,準確地說,我得到的錯誤消息調試控制檯是

回答

0

「的方法或屬性訪問意外呼叫」試試這個,伴您行tTab.refresh();

setTimeout(function() { tTab.refresh(); }, 0); // whenIdle 

其幾乎不可能知道拋出的異常來源於 - 你應該使用的研究與開發dojo- 1.Mm-src /dojo/dojo.js代碼如此優化的函數名和變量名是擴展的ded(一旦你一步一步調試就可以得到有用的評論)。

原因上面是消除,發生該異常,同時處理按鈕的onclick焦點事件(刷新將在標籤拆掉DOM - 與您的按鈕)

+0

怎麼就這樣猶豫不決?有問題,或者你有EM排序? – mschr 2012-07-27 16:53:56