IE8 Crash sur la position d'arrière-plan getStyle
-
05-07-2019 - |
Question
J'ai trouvé un bogue étrange dans Internet Explorer 8. Peut-être que quelqu'un pourra m'aider à le déplacer.
Lorsque j'essaie de saisir la position d'arrière-plan d'un élément en utilisant background-position-x
, toutes les versions d'Internet Explorer fonctionnent comme excepté, à l'exception de IE8 qui se bloque .
Lorsque j'exécute el.getStyle ('position-arrière-plan')
, tous les navigateurs me donnent les valeurs correctes, à l'exception des IE (6, 7 et 8) qui renvoient non défini
. .
J’utilise donc el.getStyle ('background-position-x')
pour toutes les versions d’IE.
IE8, cependant, se bloque sur le code ci-dessus.
Quelqu'un a eu des problèmes similaires?
La solution
Merci à tous pour votre aide. C’est vraiment un bogue et ne fonctionne que sur le scénario suivant.
- css doit être chargé sur une feuille de style externe L'élément
- n'a pas de style en ligne
La solution, même très sale, consiste à ajouter un style inline à l'élément. Rend IE8 heureux et tous les autres navigateurs fonctionnent.
Je n'ai pas testé mais, selon à cela ticket , FF2 a également le même comportement.
Notes annexes:
@marcgg - J'allais voter votre réponse car elle n'est vraiment pas utile (et doit déclencher une guerre de flammes) mais, à vrai dire, jQuery ne manifeste pas ce problème. Même si, comme vous le savez probablement déjà, ce n’est PAS une option! ;)
@Fabien - IE prend en charge background-position-x
et ne prend pas en charge background-position
dans la construction approuvée par le W3C.
Autres conseils
Pourquoi ne pas utiliser la la fonction CSS de jQuery qui fonctionne bien pour le crossbrowser?
Essayez d’utiliser:
el.getStyle('backgroundPositionX')
et
<*>oui, un fil plus ancien, mais je pensais que je posterais une autre solution que je suis tombée dans le phare de @ mootools ....
if (Browser.Engine.trident){
var xy = el.getStyle('background-position-x')+" "+el.getStyle('background-position-y');
} else {
var xy = el.getStyle("backgroundPosition");
}
fonctionne bien pour moi jusqu'à présent.