IE8 Crash en getStyle background-position
-
05-07-2019 - |
Pregunta
He encontrado un error extraño en Internet Explorer 8. Tal vez alguien pueda ayudarme a moverme.
Cuando intento capturar la posición de fondo de un elemento, utilizando background-position-x
todas las versiones de Internet Explorer funcionan excepto, excepto por IE8 que se bloquea . / p>
Cuando ejecuto el.getStyle ('background-position')
, todos los navegadores me dan los valores correctos excepto de IE (6, 7 y 8) que devuelven undefined
.
Por lo tanto, uso el.getStyle ('background-position-x')
para todas las versiones de IE.
IE8, sin embargo, se bloquea en el código anterior.
¿Alguien tuvo problemas similares?
Solución
Gracias por la ayuda a todos. Esto realmente es un error y solo funciona en el siguiente escenario.
- css se debe cargar en una hoja de estilo externa
- el elemento no tiene un estilo en línea
La forma de solucionarlo, incluso si está sucia, es agregar un estilo en línea al elemento. Hace feliz a IE8 y todos los demás navegadores funcionan.
No probé pero, según a este ticket , FF2 también sufre el mismo comportamiento.
Notas al margen:
@marcgg - Iba a rechazar tu respuesta, ya que realmente no es útil (y estoy obligado a iniciar una guerra de fuego) pero, a decir verdad, jQuery no manifiesta este problema. Aunque, como probablemente ya sabías, ¡NO es una opción! ;)
@Fabien - IE admite background-position-x
y carece de soporte para position-background
la construcción aprobada por el W3C.
Otros consejos
¿Por qué no usar función css de jquery que funciona bien como navegador?
Intenta usar:
el.getStyle('backgroundPositionX')
y
<*>sí, tema más antiguo, pero pensé que publicaría otra solución que encontré en @ mootools lighthouse ...
if (Browser.Engine.trident){
var xy = el.getStyle('background-position-x')+" "+el.getStyle('background-position-y');
} else {
var xy = el.getStyle("backgroundPosition");
}
funciona bien para mí hasta ahora.