Способы доступа к свойству объекта JavaScript в IE6 - PullRequest
0 голосов
/ 23 марта 2010

У меня есть объект 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() и возвращает неопределенное значение.

Итак, описанная мной оригинальная проблема вовсе не является проблемой.

Тем не менее, нужна помощь:)

1 Ответ

1 голос
/ 23 марта 2010

Это довольно раздражает, когда вы тратите пару часов, царапая голову чем-то, только для того, чтобы понять:

Tools > Internet Options > Delete Files 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...