2011-10-14 3 views
1
stages = { 
      "1": { 
       id: "1", 
       div: "foo" 
      }, 
      "2": { 
       id: "2", 
       div: "bar" 
      }, 
      "3": { 
       id: "3", 
       div: "foobar" 
      } 
     }; 

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

Message: Object doesn't support this property or method

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

+1

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

+0

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

+2

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

ответ

3

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

+0

Спасибо, человек, вот что случилось. Переименованные этапы в stageDict, и он отлично работает. – jdborg

0

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

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

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

Это, кажется, недовольны e.target.

Как именно вы вызываете эту ошибку при всплывании?

Смежные вопросы