2011-10-14 70 views
1
stages = { 
      "1": { 
       id: "1", 
       div: "foo" 
      }, 
      "2": { 
       id: "2", 
       div: "bar" 
      }, 
      "3": { 
       id: "3", 
       div: "foobar" 
      } 
     }; 

當我在Firefox中運行此項時,它很好。但在IE8中運行時,我得到這個錯誤:在IE8中的JavaScript對象錯誤

Message: Object doesn't support this property or method

這是一個已知的bug /有一種解決方法或者是我的語法?

+1

您是否嘗試過用'var'聲明「stages」? – Pointy

+0

不,因爲我希望它成爲全球性的 – jdborg

+2

我在IE8上運行了上述內容,沒有收到錯誤。也許你只需要將關鍵部分(id,div)包裹在「」中? – scrappedcola

回答

3

如果您的標記中有一個元素id=stages,則某些瀏覽器將創建全局變量stages作爲對它的引用。但是,IE不支持在不聲明它的情況下覆蓋它。如果要將stages變量設置爲全局,請將var stages;設置爲全局範圍,或將對象分配爲window.stages

+0

謝謝你,那是錯的。更名爲stagesDict的階段,它工作正常。 – jdborg

0

我根本沒有得到那個錯誤。我可以在javascript文件或控制檯中定義這些代碼,它工作得很好。

如果我嘗試從jsfiddle.net運行代碼,我確實看到了該錯誤。然而,錯誤是指在Action.js代碼和下面的代碼

if (e && e.target.getParent().get('id') == 'm') { 

這似乎是不滿e.target

究竟是如何導致該錯誤彈出?