Mmmh... In JavaScript mi sembra pesante e lento, nel senso che comunque scarica in locale tutte le possibilità e poi le applica oppure analizza il browser e poi ancora gli fa scaricare altre cose...
Io ad esempio uso il PHP.
Mi perdonino i PHP Guru per la mia vasta ignoranza in tema, ma in un sito attualmente uso il seguente script:
Codice PHP:
//Verifica browser e assegnazione impostazioni
if (stristr($_SERVER['HTTP_USER_AGENT'],"msie")){
if (stristr($_SERVER["HTTP_USER_AGENT"],"7.")){$istruzione;}
else {$istruzione;}}
elseif (stristr($_SERVER['HTTP_USER_AGENT'],"opera")){$istruzione;}
elseif (stristr($_SERVER['HTTP_USER_AGENT'],"gecko") or stristr($_SERVER['HTTP_USER_AGENT'],"mozilla")){$istruzione;}
else {$istruzione;}
Naturalmente quello che uso realmente è assai più complicato, ma qui ho reassunto i nodi principali.
Sfrutto l'user agent che il browser manda al server ad ogni richiesta.
In quest script vedo prima se si tratta di Internet Explorer e casomai sia la versione 7 (con maggiori supporti agli standard) uso delle personalizzazioni diverse da qualunque versione precedente (ad esempio le immagini PNG con trasparenza alpha.
Poi vedo se invece è Opera.
Si, perché anche Opera in rari casi ha qualche bug di rendering che va sistemato.
Altrimenti andiamo a vedere se si tratta di Firefox e fratelli che usano il motore di rendering Gecko.
Cercando "gecko" nell'user agent, si includono automaticamente anche i browser che invece utilizzano il motore Webkit.
Gecko e Webkit sono molto simili e finora non ho mai dovuto creare personalizzazioni diverse per entrambi.
Spero di essere stato utile.
Ciauz!