ahlalala zut
Mac OS X, Firefox 2.0.0.12 et Safari 3.0.4
x.currentStyle pose un problème : on n'arrive pas à le mettre dans un "if"
mais window.getcomputedStyle marche très bien dans un "if"
Comment faire pour implémenter le test de navigateur du script ci-dessous de Quirksmode :
(x.currentStyle est activé dans IE, pas dans les navigateurs compatibles W3C comme Firefox, Safari, etc.)
Nota : if(bidule) est pourtant la bonne façon de tester si une propriété ou une fonction existe dans le navigateur, et donc de déterminer le navigateur utilisé.
function getStyle(el,styleProp)
{
var x = document.getElementById(el);
if (x.currentStyle)
var y = x.currentStyle[styleProp];
else if (window.getComputedStyle)
var y = document.defaultView.getComputedStyle(x,null).getPropertyValue(styleProp);
return y;
}
Eh bien, on va tester une autre fonction / propriété spécifique de IE ... : document.all
La fonction getStyle doit donc s'écrire ainsi :
function getStyle(el,styleProp)
{
var x = document.getElementById(el);
if (document.all)
var y = x.currentStyle[styleProp];
else if (window.getComputedStyle)
var y = document.defaultView.getComputedStyle(x,null).getPropertyValue(styleProp);
return y;
}
Il reste quand même un problème ... c'est getPropertyValue(styleProp) . et pourtant ça correspond à la façon correcte d'écrire la méthode, d'après ceci (<-- lien à mettre).
Ci-dessous ... obtenir propriétés d'un élément
Derniers commentaires
→ plus de commentaires