Utilitaires
Scripts
Divers
Jeux
Rechercher
Quillevere.net
Réflexions informatiques

Accélérer l'appel aux fonctions "Cross-browser"

10/03/2009
Il y a une méthode assez simple pour accélérer les traitements qui se font selon le navigateur : plutôt que de tester dans une fonction si on est sur Firefox, IE, Opera, on peut définir cette fonction directement selon le navigateur.

Voici un exemple d'une fonction gérant l'opacité d'un objet :

function setOpacite(obj, valeur)
    {
     if (!obj) return;
     if (ie)
        obj.style.filter="alpha(opacity="+valeur.toString()+")";
     else if (ffox)
        obj.style.setProperty("-moz-opacity", (valeur-10)/100, "");  
     else if (opera)
        obj.style.opacity=valeur/100;
     else
        obj.style.filter="opacity="+ (valeur/100).toString()+")";
 }


Cette fonction pourra être optimisée en ceci :
function setOpacite(obj, valeur)
    {
    if (ie)
        setOpacite=function(obj,valeur)
            {
            if (obj)
                obj.style.filter="alpha(opacity="+valeur.toString()+")";
            };
   
    else if (ffox)
          setOpacite=function(obj,valeur)
            {
            if (obj)
                obj.style.setProperty("-moz-opacity", (valeur-10)/100, "");
            };
   
     else if (opera)
          setOpacite=function(obj,valeur)
            {
                if (obj)
                        obj.style.opacity=valeur/100;
            };
 
        else
          setOpacite=function(obj,valeur)
            {
            if (obj)
                obj.style.filter="opacity="+ (valeur/100).toString()+")";
            };

    setOpacite(obj, valeur);
 }

Chaque condition redéfinit l'appel à la fonction lors du premier appel. Il est possible de faire aussi nomFonction=nomFonctionIE (comme le fait Andreas IPP sur son site) mais c'est légèrement plus long.
Dernière modification le 08/03/2019 - Quillevere.net

Rechercher sur le site

rss RSS info Informations