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

 

Archives par mois