Ошибка объекта Javascript в IE8

#javascript

#javascript

Вопрос:

     stages = {
            "1": {
                id: "1",
                div: "foo"
            },
            "2": {
                id: "2",
                div: "bar"
            },
            "3": {
                id: "3",
                div: "foobar"
            }
        };
  

Когда я запускаю это в Firefox, все в порядке. Но при запуске в IE8 я получаю эту ошибку:

Сообщение: объект не поддерживает это свойство или метод

Это известная ошибка / есть ли обходной путь или это мой синтаксис?

Комментарии:

1. Вы пробовали объявлять «этапы» с var помощью?

2. Нет, потому что я хочу, чтобы он был глобальным

3. Я запустил вышеописанное в IE8 и не получил сообщение об ошибке. Возможно, вам просто нужно также обернуть ключевые части (id, div) в «»?

4. А номер строки такой??

5. Вы уверены, что ошибка не исходит из другой части вашего кода?

Ответ №1:

Если в вашей разметке есть элемент with id=stages , некоторые браузеры создают глобальную переменную stages в качестве ссылки на него. Однако IE не поддерживает переопределение его без объявления. Если вы хотите stages , чтобы переменная была глобальной, поместите var stages; ее в глобальную область видимости или назначьте объекту window.stages .

Комментарии:

1. Спасибо, чувак, вот что было не так. Переименовал stages в stagesDict, и он работает нормально.

Ответ №2:

Я вообще не получаю эту ошибку. Я могу определить этот самый код в файле javascript или в консоли, и он работает просто отлично.

Я вижу эту ошибку, если попытаюсь запустить код из jsfiddle.net . Однако ошибка относится к коду в Action.js и следующий код

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

Похоже, он недоволен e.target .

Как именно вы вызываете появление этой ошибки?