IE8 Сбой в фоновой позиции getStyle - PullRequest
0 голосов
/ 27 ноября 2009

Я обнаружил странную ошибку в Internet Explorer 8. Может быть, кто-то может помочь мне обойти ее.

Когда я пытаюсь получить положение фона элемента, используя background-position-x, все версии Internet Explorer работают как исключение, за исключением IE8, который дает сбой .

Когда я запускаю el.getStyle('background-position'), все браузеры дают мне правильные значения, кроме IE (6, 7 и 8), которые возвращают undefined.

Поэтому я использую el.getStyle('background-position-x') для всех версий IE.

IE8, однако, вылетает в приведенном выше коде.

У кого-нибудь были подобные проблемы?

Ответы [ 4 ]

2 голосов
/ 27 ноября 2009

Спасибо за помощь всем. Это действительно ошибка и работает только в следующем сценарии.

  1. CSS должен быть загружен во внешнюю таблицу стилей
  2. элемент не имеет встроенного стиля

Способ исправить это, даже если он грязный, состоит в том, чтобы добавить встроенный стиль к элементу. Делает IE8 счастливым и все остальные браузеры работают.

Я не проверял, но, согласно этому билету , FF2 также страдает от того же поведения.

Дополнительные примечания:
@marcgg - я собирался преуменьшить ваш ответ, так как он действительно бесполезен (и должен начать пламенную войну), но, по правде говоря, jQuery не проявляет этой проблемы. Хотя, как вы, наверное, уже знали, это НЕ вариант! ;)

@ Fabien - IE поддерживает background-position-x и не поддерживает background-position одобренную W3C конструкцию.

0 голосов
/ 16 июля 2010

да, более старая тема, но я решил опубликовать другое решение, которое наткнулся на маяк @ mootools ....

if (Browser.Engine.trident){
    var xy = el.getStyle('background-position-x')+" "+el.getStyle('background-position-y');
} else {
    var xy = el.getStyle("backgroundPosition");
}

пока у меня хорошо работает.

0 голосов
/ 27 ноября 2009

Попробуйте использовать:

el.getStyle('backgroundPositionX')

и

el.getStyle('backgroundPositionX')
0 голосов
/ 27 ноября 2009

Почему бы не использовать функцию jquery css , которая отлично работает кроссбраузер?

...