У меня есть объект 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" />
Итак, внутри iframe, когда выбрано изображение для вставки, у меня есть некоторый JavaScript, который выглядит следующим образом:
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, Chrome и т. Д. Просто IE6 жалуется:
CKEDITOR.instances[...] is null or not an object.
РЕДАКТИРОВАТЬ 2
Я только что провел некоторую отладку, и на самом деле похоже, что IE6 не работает на window.parent.$('#ckinstance').val()
и возвращает неопределенное значение.
Итак, описанная мной оригинальная проблема вовсе не является проблемой.
Тем не менее, нужна помощь:)