2010-09-15 2 views
5

Я испытываю странное поведение в IE8, которое кажется ошибкой IE, но я не уверен. При обращении к полю currentStyle от элемента он возвращает null. Если я просмотрю его свойства в окне просмотра, я вижу, что он определен, и я могу просматривать его элементы. Похоже, что если я вызываю атрибуты перед раздачей, тогда он вернет правильный currentStyle. Мне было интересно, видел ли кто-нибудь это поведение раньше и знает некоторые обходные пути. Это происходит при построении сетки dojo. Я также не могу переопределить это поведение JavaScript, потому что он глубоко погружен во внешнюю библиотеку Javascript (dojo), и у меня нет доступа к функции, в первую очередь для переопределения (функция определена в другой области функций).Weird IE поведение: currentStyle возвращает null

+0

Вы имеете в виду 'currentStyle' или' currentStyles'? –

+0

oops Я имею в виду currentStyle – Bishnu

+0

В общем случае не имеет смысла обращаться к 'currentStyle', пока элемент не будет добавлен в документ (что сделает доступным свойство). – bobince

ответ

2

Объект currentStyle в IE является асинхронным. Это означает, что стили не могут быть установлены и немедленно запрошены. Вы должны позволить IE воздействовать на ваши манипуляции, как только ваш JavaScript завершит внесение изменений. Вы можете установить Timeout в течение 0 миллисекунд, который будет привязывать вызов функции к какой-либо очереди, и IE будет выполнять изменения DOM перед вызовом следующего бита JavaScript.