Mega Code Archive

 
Categories / JavaScript DHTML / Window Browser
 

Detects the browser, its version and the operating system of the client

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML>   <HEAD>     <TITLE>JsLib 1.3 - Exemple - navig.js</TITLE>     <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">     <META NAME="Author" CONTENT="Etienne CHEVILLARD">     <!-- navig.js -->     <SCRIPT TYPE="text/javascript" LANGUAGE="Javascript"> /* navig.js  * Role : detecte le navigateur et le systeme d'exploitation du client  * Projet : JsLib  * Auteur : Etienne CHEVILLARD (echevillard@users.sourceforge.net)  * Version : 1.3  * Creation : 05/04/2001  * Mise a jour : 23/02/2005  * Bogues connues : - impossible de connaitre le systeme avec Sun HotJava  *  * Detection du navigateur et de l'OS basee sur :  * JavaScript Browser Sniffer  * Eric Krok, Andy King, Michel Plungjan Jan. 31, 2002  * see http://www.webreference.com/ for more information  */ // --- Variables globales --- // recupere les informations sur le navigateur var navig_agt=navigator.userAgent.toLowerCase(); var navig_min=navig_extVer(navigator.appVersion); var navig_maj=parseInt(navig_min); // detecte le navigateur installe var navig_mos=(navig_agt.indexOf("ncsa")!=-1); var navig_omn=(navig_agt.indexOf("omniweb")!=-1); var navig_saf=((navig_agt.indexOf("safari")!=-1) && (navig_agt.indexOf("mac")!=-1)); var navig_kqr=(navig_agt.indexOf("konqueror")!=-1); var navig_fox=(navig_agt.indexOf("firefox")!=-1); var navig_moz=(!navig_saf && (navig_agt.indexOf("mozilla")!=-1)   && (navig_agt.indexOf("gecko")!=-1) && (navig_agt.indexOf("netscape")==-1)); var navig_nn=(!navig_moz && (navig_agt.indexOf("mozilla")!=-1)   && (navig_agt.indexOf("spoofer")==-1) && (navig_agt.indexOf("compatible")==-1)   && (navig_agt.indexOf("opera")==-1) && (navig_agt.indexOf("webtv")==-1)   && (navig_agt.indexOf("hotjava")==-1)); var navig_nn2=(navig_nn && (navig_maj<3)); var navig_nn3=(navig_nn && (navig_maj==3)); var navig_nn4=(navig_nn && (navig_maj==4)); var navig_nn6=(navig_nn && (navig_agt.indexOf("netscape6/")!=-1)); var navig_nn7=(navig_nn && (navig_agt.indexOf("netscape/7")!=-1)); var navig_ie=((navig_agt.indexOf("msie")!=-1) && (navig_agt.indexOf("opera")==-1)); var navig_ie3=(navig_ie && (navig_maj<4)); var navig_ie4=(navig_ie && (navig_maj==4) && (navig_agt.indexOf("msie 5.")==-1)   && (navig_agt.indexOf("msie 6.")==-1)); var navig_ie5=(navig_ie && (navig_agt.indexOf("msie 5.")!=-1)); var navig_ie6=(navig_ie && (navig_agt.indexOf("msie 6.")!=-1)); var navig_op=(navig_agt.indexOf("opera")!=-1); var navig_op2=((navig_agt.indexOf("opera 2")!=-1) || (navig_agt.indexOf("opera/2")!=-1)); var navig_op3=((navig_agt.indexOf("opera 3")!=-1) || (navig_agt.indexOf("opera/3")!=-1)); var navig_op4=((navig_agt.indexOf("opera 4")!=-1) || (navig_agt.indexOf("opera/4")!=-1)); var navig_op5=((navig_agt.indexOf("opera 5")!=-1) || (navig_agt.indexOf("opera/5")!=-1)); var navig_op6=((navig_agt.indexOf("opera 6")!=-1) || (navig_agt.indexOf("opera/6")!=-1)); var navig_op7=((navig_agt.indexOf("opera 7")!=-1) || (navig_agt.indexOf("opera/7")!=-1)); var navig_hot=(navig_agt.indexOf("hotjava")!=-1); var navig_hot3=(navig_hot && (navig_maj==3)); // detecte la version de Javascript var navig_js="1.0"; if (navig_nn3 || navig_op) navig_js="1.1"; if (navig_ie4 || (navig_nn4 && (navig_min<=4.05))) navig_js="1.2"; if (navig_ie5 || navig_ie6 || navig_op5 || navig_op6 || (navig_nn4 && (navig_min>4.05))) navig_js="1.3"; if (navig_hot3 || (navig_ie5 && (navig_agt.indexOf("mac")!=-1))) navig_js="1.4"; if (navig_nn6 || navig_nn7 || navig_moz || navig_fox || navig_omn || navig_op7 || navig_saf || navig_kqr) navig_js="1.5"; // detecte le systeme installe var navig_w23=((navig_agt.indexOf("windows nt 5.2")!=-1) || (navig_agt.indexOf("windows 2003")!=-1)); var navig_wxp=((navig_agt.indexOf("windows nt 5.1")!=-1) || (navig_agt.indexOf("windows xp")!=-1)); var navig_w2k=((navig_agt.indexOf("windows nt 5.0")!=-1) || (navig_agt.indexOf("windows 2")!=-1)); var navig_wnt=((navig_agt.indexOf("winnt")!=-1) || (navig_agt.indexOf("windows nt")!=-1)); var navig_wme=(navig_agt.indexOf("win 9x 4.90")!=-1); var navig_w98=((navig_agt.indexOf("win98")!=-1) || (navig_agt.indexOf("windows 98")!=-1)); var navig_w95=((navig_agt.indexOf("win95")!=-1) || (navig_agt.indexOf("windows 95")!=-1)   || (navig_agt.indexOf("win")!=-1) || (navig_agt.indexOf("32bit")!=-1)); var navig_w31=((navig_agt.indexOf("win16")!=-1) || (navig_agt.indexOf("16bit")!=-1)   || (navig_agt.indexOf("windows 3.1")!=-1) || (navig_agt.indexOf("windows 16-bit")!=-1)); var navig_os2=((navig_agt.indexOf("os/2")!=-1) || (navig_agt.indexOf("ibm-webexplorer")!=-1)   || (navigator.appVersion.indexOf("OS/2")!=-1)); var navig_macx=(navig_omn || (navig_agt.indexOf("mac os x")!=-1)); var navig_mac=(navig_agt.indexOf("mac")!=-1); var navig_sun=(navig_agt.indexOf("sunos")!=-1); var navig_irix=(navig_agt.indexOf("irix")!=-1); var navig_hpux=(navig_agt.indexOf("hp-ux")!=-1); var navig_aix=(navig_agt.indexOf("aix")!=-1); var navig_linux=((navig_agt.indexOf("linux")!=-1) || (navig_agt.indexOf("x11")!=-1)); var navig_sco=((navig_agt.indexOf("sco")!=-1) || (navig_agt.indexOf("unix_sv")!=-1)); var navig_ware=((navig_agt.indexOf("unix_system_v")!=-1) || (navig_agt.indexOf("unixware")!=-1)); var navig_open=((navig_agt.indexOf("openunix")!=-1) || (navig_agt.indexOf("open unix")!=-1)); var navig_mpras=(navig_agt.indexOf("ncr")!=-1); var navig_dec=((navig_agt.indexOf("dec")!=-1) || (navig_agt.indexOf("osf1")!=-1)   || (navig_agt.indexOf("alpha")!=-1) || (navig_agt.indexOf("ultrix")!=-1)); var navig_tru=(navig_agt.indexOf("tru64")!=-1); var navig_sinix=(navig_agt.indexOf("sinix")!=-1); var navig_fbsd=(navig_agt.indexOf("freebsd")!=-1); var navig_nbsd=(navig_agt.indexOf("netbsd")!=-1); var navig_obsd=(navig_agt.indexOf("openbsd")!=-1); var navig_bsd=(navig_agt.indexOf("bsd")!=-1); var navig_beos=(navig_agt.indexOf("beos")!=-1); var navig_qnx=(navig_agt.indexOf("qnx")!=-1); // --- Fonctions --- // extrait le numero de version d'une portion de texte function navig_extVer(txt) {   if (!txt) return "";   var ver="";   for(var i=0; i<txt.length; i++) {     if ((isNaN(txt.charAt(i))) && (txt.charAt(i)!='.')) {       if (ver.length>0) return(ver);     } else {       ver+=txt.charAt(i);     }   }   return ver; } // fin navig_extVer(txt) // retourne le nom du navigateur function nomNavig() {   if (navig_mos) return ("NCSA Mosaic");   else if (navig_omn) return ("OmniWeb");   else if (navig_kqr) return ("Konqueror");   else if (navig_saf) return ("Apple Safari");   else if (navig_ie) return ("Microsoft Internet Explorer");   else if (navig_op) return ("Opera");   else if (navig_hot) return ("Sun HotJava");   else if (navig_fox) return ("Mozilla Firefox");   else if (navig_moz) return ("Mozilla");   else if (navig_nn6 || navig_nn7) return ("Netscape");   else if (navig_nn) return ("Netscape Navigator");   else return ("inconnu"); } // fin nomNavig() // retourne le nom du systeme d'exploitation function nomSysteme() {   if (navig_w23) return ("Microsoft Windows Server 2003");   else if (navig_wxp) return ("Microsoft Windows XP");   else if (navig_w2k) return ("Microsoft Windows 2000");   else if (navig_wnt) return ("Microsoft Windows NT 4.0");   else if (navig_wme) return ("Microsoft Windows Me");   else if (navig_w98) return ("Microsoft Windows 98");   else if (navig_w95) return ("Microsoft Windows 95");   else if (navig_w31) return ("Microsoft Windows 3.1");   else if (navig_os2) return ("IBM OS/2");   else if (navig_macx) return ("Apple MacOS X");   else if (navig_mac) return ("Apple MacOS");   else if (navig_sun) return ("Sun Solaris (SunOS)");   else if (navig_irix) return ("SGI Irix");   else if (navig_hpux) return ("HP-UX");   else if (navig_aix) return ("IBM AIX");   else if (navig_linux) return ("GNU/Linux");   else if (navig_sco) return ("SCO UNIX");   else if (navig_ware) return ("UNIXware");   else if (navig_open) return ("Caldera Open UNIX");   else if (navig_mpras) return ("NCR UNIX MPRAS");   else if (navig_dec) return ("Digital UNIX");   else if (navig_tru) return ("HP Tru64 UNIX");   else if (navig_sinix) return ("Siemens SINIX");   else if (navig_fbsd) return ("FreeBSD");   else if (navig_nbsd) return ("NetBSD");   else if (navig_obsd) return ("OpenBSD");   else if (navig_bsd) return ("BSD/OS");   else if (navig_beos) return ("BeOS");   else if (navig_qnx) return ("QNX");   else return ("inconnu"); } // fin nomSysteme() // retourne le nom et la version du navigateur function nomVersionNavig() {   if (nomNavig()=="inconnu") {     return (nomNavig());   } else {     return (nomNavig()+" "+versionNavig());   } } // fin nomVersionNavig() // retourne la version de Javascript prise en charge par le navigateur function versionJavascript() {   return (navig_js); } // fin versionJavascript() // retourne la version du navigateur function versionNavig() {   var tmp;   if (navig_ie3 && (navig_maj<3)) {     return ("3.0");   } else if (navig_ie5 || navig_ie6) {     tmp=navig_agt.indexOf("msie");     return(navig_extVer(navig_agt.substring(tmp+5)));   } else if (navig_saf) {     tmp=parseInt(navig_agt.substring(navig_agt.indexOf("safari/")+7));     if (tmp==100) return ("1.1");     else if (tmp==125) return ("1.2");     else if (tmp==146) return ("1.3");     else if (tmp>146) return ("2.0");     else return ("1.0");   } else if (navig_kqr) {     tmp=navig_agt.indexOf("konqueror/");     return(navig_extVer(navig_agt.substring(tmp+10)));   } else if (navig_omn) {     tmp=navig_agt.indexOf("omniweb/");     return(navig_extVer(navig_agt.substring(tmp+8)));   } else if (navig_fox) {     tmp=navig_agt.indexOf("firefox/");     return(navig_extVer(navig_agt.substring(tmp+8)));   } else if (navig_moz) {     tmp=navig_agt.indexOf("rv:");     return(navig_extVer(navig_agt.substring(tmp+3)));   } else if (navig_nn6) {     tmp=navig_agt.indexOf("netscape6/");     return(navig_extVer(navig_agt.substring(tmp+10)));   } else if (navig_nn7) {     tmp=navig_agt.indexOf("netscape/");     return(navig_extVer(navig_agt.substring(tmp+9)));   } else if (nomNavig()=="inconnu") {     return ("inconnu");   } else {     return (navig_min);   } } // fin versionNavig()     </SCRIPT>   </HEAD>   <BODY>     <H1>JsLib 1.3</H1>     <HR>     <H2>Exemple - navig.js</H2>     <NOSCRIPT>       <P><I>Erreur : votre navigateur ne reconnait pas le Javascript ou est configur&eacute; pour ne       pas prendre en compte le code Javascript. Dans ce dernier cas, vous pouvez modifier la       configuration dans les pr&eacute;f&eacute;rences/options de votre navigateur.</I>       <HR>     </NOSCRIPT>     <P>Nom de votre navigateur :       <SCRIPT TYPE="text/javascript" LANGUAGE="Javascript">document.write(nomNavig());</SCRIPT>     <P>Nom et version de votre navigateur :       <SCRIPT TYPE="text/javascript" LANGUAGE="Javascript">document.write(nomVersionNavig());</SCRIPT>     <P>Version de Javascript reconnue par votre navigateur :       <SCRIPT TYPE="text/javascript" LANGUAGE="Javascript">document.write(versionJavascript());</SCRIPT>     <P>Nom de votre syst&egrave;me d'exploitation :       <SCRIPT TYPE="text/javascript" LANGUAGE="Javascript">document.write(nomSysteme());</SCRIPT>   </BODY> </HTML>