2009-09-24 76 views
0

我有一個網格嵌入在一個TabContainer中的ContentPane中。當加載itemfilewritestore IE7彈出一個錯誤。Dojo ItemFileWriteStore與IE7問題

代碼:

變種海圖= {識別:ID,項[]};var theStore = new dojo.data.ItemFileWriteStore({data:theData});

console.debug(theStore); //這會引發一些奇怪的錯誤

錯誤: {close:function(_81)if(!this.isDirty)........存儲中存在未保存的更改請保存或恢復更改在調用close之前。

此錯誤僅在IE7中顯示。 FF沒有問題並正確呈現數據。是的,我知道這段代碼中沒有數據,但是在實際代碼中稍後添加了數據。

+0

console.debug在所有瀏覽器中都不一致。你確定console.debug調用不是導致問題的原因嗎?另外,嘗試從源代碼運行Dojo而不進行「構建」,這樣像_81這樣的變量名將通過未壓縮來實現。在Firebug或Visual Studio中,實際上應該能夠獲取堆棧跟蹤以查找異常情況,或者輸入斷點/調試器語句以查看發生了什麼。 – peller 2009-09-24 20:48:51

+0

我很確定debug.console命令不是問題。網格本身並不顯示商店內的數據,這一錯誤也很明顯。我把console.debug命令跟蹤錯誤。在獲取源代碼後提供的錯誤: – mmontalvo 2009-09-25 14:02:01

+0

{close:function(/ * object?*/request) \t {//總結: \t //重寫ItemFileReadStore的基本關閉函數以添加檢查存儲州。 \t //描述: \t //覆蓋ItemFileReadStore的基本關閉功能以添加檢查存儲狀態。 \t //如果商店仍舊骯髒(未保存的更改),則會拋出錯誤而不是 \t //清除URL中重新加載的內部狀態。 \t //清除,如果不是很髒......或者,如果拋出一個錯誤 – mmontalvo 2009-09-25 14:08:29

回答

0

此問題與描述不符。錯誤不是以任何方式存儲的。在深入挖掘之後,我發現真正的問題是對正在導入的JavaScript進行解析。一步一步通過它,問題是因爲JSON對象使用術語「class」作爲屬性。這似乎違背了IE的「標準」。

+0

「類」,「默認」和其他一些保留的JavaScript的話會很高興你抓住了它,JSON聲明所有的鍵都應該是引。在JSON(和IE)中使用{「class」:「foo」}是完全合法的, – dante 2009-09-29 12:29:42