我有一個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。
所以我描述的原始問題根本就不是問題。
還需要什麼幫助:)
沒有理由不會工作,它方括號表示不是現代的..你能提供一個例子嗎? – meandmycode 2010-03-23 18:26:28
是的,這也應該在IE6中工作。你能舉一個例子嗎? – 2010-03-23 18:29:01
SSCCE給你:http://jsbin.com/uzomo3/。在IE6中運行良好。 – 2010-03-23 18:41:38