2010-03-23 103 views
0

我有一個JavaScript對象,有一些屬性。可以說:在IE6中訪問JavaScript對象屬性的方法

var haystack = { 
    foo: {value: "fooooo"}, 
    bar: {value: "baaaaa"} 
}; 

現在,我想訪問其中的一個屬性,但我不知道哪一個。幸運的是,這個變量的作用:

var needle = "foo"; 

在現代瀏覽器中我似乎能夠做到以下幾點,它的工作原理:

haystack[needle].value; # returns "fooooo" 

但在IE6它拋出一個不穩定,haystack[...] is null or not an object

有沒有辦法實現我想在IE6中實現的目標?如果是這樣,怎麼會這樣?


編輯 - 響應下面的留言中加入更多的信息.​​..


我想實現實際上與CKEditor的。我沒有寫過一個在iframe中打開的插件圖像管理器。

然後,我想要實現的是將選定的圖像放回到CKEditor的正確實例中(並且在某些頁面上可以有多個實例)。

我已經做了什麼(我知道這是一個醜陋的黑客攻擊),當iframe被打開時,我在它旁邊放置了一個帶有實例名稱的隱藏字段。所以父頁面包含一些類似這樣的標記:

<iframe><!-- Image manager --></iframe> 
<input type="hidden" id="ckinstance" value="article_body" /> 

那麼,選擇圖像時要插入我有一些JavaScript看起來像這樣的iframe中:

var CKEDITOR = window.parent.CKEDITOR; 
var instance = window.parent.$('#ckinstance').val(); 
var img = '<img src="/whatevers/been/selected" />'; 
CKEDITOR.instances[instance].insertHtml(img); 
window.parent.$.modal.close(); 

這工作正常在FF,鉻等,只是IE6與抱怨:

CKEDITOR.instances[...] is null or not an object. 

EDIT 2

我已經只是做了一些調試,實際上它看起來像IE6在window.parent.$('#ckinstance').val()上失敗,並且返回undefined。

所以我描述的原始問題根本就不是問題。

還需要什麼幫助:)

+3

沒有理由不會工作,它方括號表示不是現代的..你能提供一個例子嗎? – meandmycode 2010-03-23 18:26:28

+0

是的,這也應該在IE6中工作。你能舉一個例子嗎? – 2010-03-23 18:29:01

+1

SSCCE給你:http://jsbin.com/uzomo3/。在IE6中運行良好。 – 2010-03-23 18:41:38

回答

1

當你花了幾個小時抓耳撓腮過的東西,才實現瞭解決方案,這是相當惱人的是:

Tools > Internet Options > Delete Files