begin process at 2012 02 14 10:36:07
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Navigation

 > BROWSER SNIFFER (RENIFLEUR)

BROWSER SNIFFER (RENIFLEUR)


 Information sur la source

Note :
7,8 / 10 - par 5 personnes
7,80 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Navigation Niveau :Initié Date de création :18/11/2003 Vu :12 727

Auteur : Deny

Ecrire un message privé
Commentaire sur cette source (6)
Ajouter un commentaire et/ou une note

 Description

Script qui n'est pas de moi, en exemple, extrait de <http://www.webreference.com/js>, et qui donne trop d'informations et comporte trop de liens vers d'autres pour être laissé dans un coin sans en faire profiter d'autres qui ne l'auraient pas vu. Dans mon micro depuis 2002.
Bien sûr, les explications en english. Faut pas trop en demander quand même.
Désolé, pas retravaillé, pas le temps.. Certains liens peut-être incompléts car relatifs.

<html>
<head>
<script LANGUAGE="JavaScript">
<!-- hide JavaScript from non-JavaScript browsers
//
// JavaScript Browser Sniffer
// Eric Krok, Andy King, Michel Plungjan Jan. 31, 2002
// see http://www.webreference.com/ for more information
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
//  (at your option) any later version.
//
// please send any improvements to aking@internet.com and we'll
// roll the best ones in
//
// adapted from Netscape's Ultimate client-side JavaScript client sniffer
// and andy king's sniffer
// Revised May 7 99 to add is.nav5up and is.ie5up (see below). (see below).
// Revised June 11 99 to add additional props, checks
// Revised June 23 99 added screen props - gecko m6 doesn't support yet - abk
//                    converted to var is_ from is object to work everywhere
// 990624 - added cookie forms links frames checks - abk
// 001031 - ie4 mod 5.0 -> 5. (ie5.5 mididentified - abk)
//          is_ie4 mod tp work with ie6+ - abk
// 001120 - ns6 released, document.layers false, put back in
//        - is_nav6 test added - abk
// 001121 - ns6+ added, used document.getElementById, better test, dom-compl
// 010117 - actual version for ie3-5.5 by Michel Plungjan
// 010118 - actual version for ns6 by Michel Plungjan
// 010217 - netscape 6/mz 6 ie5.5 onload defer bug docs - abk
// 011107 - added is_ie6 and is_ie6up variables - dmr
// 020128 - added link to netscape's sniffer, on which this is based - abk
//          updated sniffer for aol4-6, ie5mac = js1.4, TVNavigator, AOLTV,
//          hotjava
// 020131 - cleaned up links, added more links to example object detection
// 020131 - a couple small problems with Opera detection. First, when Opera
//          is set to be compatible with other browsers it will contain their
//          information in the userAgent strings. Thus, to be sure we have
//          Opera we should check for it before checking for the other bigs.
//          (And make sure the others are !opera.) Also corrected a minor
//          bug in the is_opera6up assignment.
//
// Everything you always wanted to know about your JavaScript client
// but were afraid to ask. Creates "is_" variables indicating:
// (1) browser vendor:
//     is_nav, is_ie, is_opera
// (2) browser version number:
//     is_major (integer indicating major version number: 2, 3, 4 ...)
//     is_minor (float   indicating full  version number: 2.02, 3.01, 4.04 ...)
// (3) browser vendor AND major version number
//     is_nav2, is_nav3, is_nav4, is_nav4up, is_nav5, is_nav5up,
//     is_nav6, is_nav6up, is_ie3, is_ie4, is_ie4up, is_ie5up, is_ie6...
// (4) JavaScript version number:
//     is_js (float indicating full JavaScript version number: 1, 1.1, 1.2 ...)
// (5) OS platform and version:
//     is_win, is_win16, is_win32, is_win31, is_win95, is_winnt, is_win98
//     is_os2
//     is_mac, is_mac68k, is_macppc
//     is_unix
//        is_sun, is_sun4, is_sun5, is_suni86
//        is_irix, is_irix5, is_irix6
//        is_hpux, is_hpux9, is_hpux10
//        is_aix, is_aix1, is_aix2, is_aix3, is_aix4
//        is_linux, is_sco, is_unixware, is_mpras, is_reliant
//        is_dec, is_sinix, is_freebsd, is_bsd
//     is_vms
//
// based in part on
// http://www.mozilla.org/docs/web-developer/sniffer/ browser_type.html
// The Ultimate JavaScript Client Sniffer
// and Andy King's object detection sniffer
//
// Note: you don't want your Nav4 or IE4 code to "turn off" or
// stop working when Nav5 and IE5 (or later) are released, so
// in conditional code forks, use is_nav4up ("Nav4 or greater")
// and is_ie4up ("IE4 or greater") instead of is_nav4 or is_ie4
// to check version in code which you want to work on future
// versions. For DOM tests scripters commonly used the
// is_getElementById test, but make sure you test your code as
// filter non-compliant browsers (Opera 5-6 for example) as some
// browsers return true for this test, and don't fully support
// the W3C's DOM1.
//

    // convert all characters to lowercase to simplify testing
    var agt=navigator.userAgent.toLowerCase();
    var appVer = navigator.appVersion.toLowerCase();

    // *** BROWSER VERSION ***

    var is_minor = parseFloat(appVer);
    var is_major = parseInt(is_minor);

    // Note: On IE, start of appVersion return 3 or 4
    // which supposedly is the version of Netscape it is compatible with.
    // So we look for the real version further on in the string

    var iePos  = appVer.indexOf('msie');
    if (iePos !=-1) {
       is_minor = parseFloat(appVer.substring(iePos+5,appVer.indexOf (';',iePos)))
       is_major = parseInt(is_minor);
    }

    // Netscape6 is mozilla/5 + Netscape6/6.0!!!
    // Mozilla/5.0 (Windows; U; Win98; en-US; m18) Gecko/20001108 Netscape6/6.0
    var nav6Pos = agt.indexOf('netscape6');
    if (nav6Pos !=-1) {
       is_minor = parseFloat(agt.substring(nav6Pos+10))
       is_major = parseInt(is_minor)
    }

    var is_getElementById   = (document.getElementById) ? "true" : "false"; // 001121-abk
    var is_getElementsByTagName = (document.getElementsByTagName) ? "true" : "false"; // 001127-abk
    var is_documentElement = (document.documentElement) ? "true" : "false"; // 001121-abk

    var is_opera = (agt.indexOf("opera") != -1);
    var is_opera2 = (agt.indexOf("opera 2") != -1 || agt.indexOf("opera/2") != -1);
    var is_opera3 = (agt.indexOf("opera 3") != -1 || agt.indexOf("opera/3") != -1);
    var is_opera4 = (agt.indexOf("opera 4") != -1 || agt.indexOf("opera/4") != -1);
    var is_opera5 = (agt.indexOf("opera 5") != -1 || agt.indexOf("opera/5") != -1);
    var is_opera6 = (agt.indexOf("opera 6") != -1 || agt.indexOf("opera/6") != -1); // new 020128- abk
    var is_opera5up = (is_opera && !is_opera2 && !is_opera3 && !is_opera4);
    var is_opera6up = (is_opera && !is_opera2 && !is_opera3 && !is_opera4 && !is_opera5); // new020128

    var is_nav  = ((agt.indexOf('mozilla')!=-1) && (agt.indexOf('spoofer')==-1)
                && (agt.indexOf('compatible') == -1) && (agt.indexOf('opera')==-1)
                && (agt.indexOf('webtv')==-1) && (agt.indexOf('hotjava')==-1));
    var is_nav2 = (is_nav && (is_major == 2));
    var is_nav3 = (is_nav && (is_major == 3));
    var is_nav4 = (is_nav && (is_major == 4));
    var is_nav4up = (is_nav && is_minor >= 4);  // changed to is_minor for
                                                // consistency - dmr, 011001
    var is_navonly      = (is_nav && ((agt.indexOf(";nav") != -1) ||
                          (agt.indexOf("; nav") != -1)) );

    var is_nav6   = (is_nav && is_major==6);    // new 010118 mhp
    var is_nav6up = (is_nav && is_minor >= 6) // new 010118 mhp

    var is_nav5   = (is_nav && is_major == 5 && !is_nav6); // checked for ns6
    var is_nav5up = (is_nav && is_minor >= 5);

    var is_ie   = ((iePos!=-1) && (!is_opera));
    var is_ie3  = (is_ie && (is_major < 4));

    var is_ie4   = (is_ie && is_major == 4);
    var is_ie4up = (is_ie && is_minor >= 4);
    var is_ie5   = (is_ie && is_major == 5);
    var is_ie5up = (is_ie && is_minor >= 5);
    
    var is_ie5_5  = (is_ie && (agt.indexOf("msie 5.5") !=-1)); // 020128 new - abk
    var is_ie5_5up =(is_ie && is_minor >= 5.5);                // 020128 new - abk

    var is_ie6   = (is_ie && is_major == 6);
    var is_ie6up = (is_ie && is_minor >= 6);

// KNOWN BUG: On AOL4, returns false if IE3 is embedded browser
    // or if this is the first browser window opened.  Thus the
    // variables is_aol, is_aol3, and is_aol4 aren't 100% reliable.

    var is_aol   = (agt.indexOf("aol") != -1);
    var is_aol3  = (is_aol && is_ie3);
    var is_aol4  = (is_aol && is_ie4);
    var is_aol5  = (agt.indexOf("aol 5") != -1);
    var is_aol6  = (agt.indexOf("aol 6") != -1);

    var is_webtv = (agt.indexOf("webtv") != -1);
    
    // new 020128 - abk
    
    var is_TVNavigator = ((agt.indexOf("navio") != -1) || (agt.indexOf("navio_aoltv") != -1));
    var is_AOLTV = is_TVNavigator;

    var is_hotjava = (agt.indexOf("hotjava") != -1);
    var is_hotjava3 = (is_hotjava && (is_major == 3));
    var is_hotjava3up = (is_hotjava && (is_major >= 3));

    // end new

    // *** JAVASCRIPT VERSION CHECK ***
    // Useful to workaround Nav3 bug in which Nav3
    // loads <SCRIPT LANGUAGE="JavaScript1.2">.
    // updated 020131 by dragle
    var is_js;
    if (is_nav2 || is_ie3) is_js = 1.0;
    else if (is_nav3) is_js = 1.1;
    else if (is_opera6up) is_js = 1.4; // new 1.4? 020128 - abk
    else if (is_opera5) is_js = 1.3;
    else if (is_opera) is_js = 1.1;
    else if ((is_nav4 && (is_minor <= 4.05)) || is_ie4) is_js = 1.2;
    else if ((is_nav4 && (is_minor > 4.05)) || is_ie5) is_js = 1.3;
    else if (is_nav5 && !(is_nav6)) is_js = 1.4;
    else if (is_hotjava3up) is_js = 1.4; // new 020128 - abk
    else if (is_nav6) is_js = 1.5;

    // NOTE: In the future, update this code when newer versions of JS
    // are released. For now, we try to provide some upward compatibility
    // so that future versions of Nav and IE will show they are at
    // *least* JS 1.x capable. Always check for JS version compatibility
    // with > or >=.

    else if (is_nav && (is_major > 5)) is_js = 1.4
    else if (is_ie && (is_major > 5)) is_js = 1.3
    
    // what about ie6 and ie6up for js version? abk
    
    // HACK: no idea for other browsers; always check for JS version
    // with > or >=
    else is_js = 0.0;
// HACK FOR IE5 MAC = js vers = 1.4 (if put inside if/else jumps out at 1.3)
    if ((agt.indexOf("mac")!=-1) && is_ie5up) is_js = 1.4; // 020128 - abk
    
    // *** PLATFORM ***
    var is_win   = ( (agt.indexOf("win")!=-1) || (agt.indexOf("16bit")!=-1) );
    // NOTE: On Opera 3.0, the userAgent string includes "Windows 95/NT4" on all
    //        Win32, so you can't distinguish between Win95 and WinNT.
    var is_win95 = ((agt.indexOf("win95")!=-1) || (agt.indexOf("windows 95")!=-1));

    // is this a 16 bit compiled version?
    var is_win16 = ((agt.indexOf("win16")!=-1) ||
               (agt.indexOf("16bit")!=-1) || (agt.indexOf("windows 3.1")!=-1) ||
               (agt.indexOf("windows 16-bit")!=-1) );

    var is_win31 = ((agt.indexOf("windows 3.1")!=-1) || (agt.indexOf("win16")!=-1) ||
                    (agt.indexOf("windows 16-bit")!=-1));

var is_winme = ((agt.indexOf("win 9x 4.90")!=-1));    // new 020128 - abk
    var is_win2k = ((agt.indexOf("windows nt 5.0")!=-1)); // new 020128 - abk

    // NOTE: Reliable detection of Win98 may not be possible. It appears that:
    //       - On Nav 4.x and before you'll get plain "Windows" in userAgent.
    //       - On Mercury client, the 32-bit version will return "Win98", but
    //         the 16-bit version running on Win98 will still return "Win95".
    var is_win98 = ((agt.indexOf("win98")!=-1) || (agt.indexOf("windows 98")!=-1));
    var is_winnt = ((agt.indexOf("winnt")!=-1) || (agt.indexOf("windows nt")!=-1));
    var is_win32 = (is_win95 || is_winnt || is_win98 ||
                    ((is_major >= 4) && (navigator.platform == "Win32")) ||
                    (agt.indexOf("win32")!=-1) || (agt.indexOf("32bit")!=-1));

    var is_os2   = ((agt.indexOf("os/2")!=-1) ||
                    (navigator.appVersion.indexOf("OS/2")!=-1) ||
                    (agt.indexOf("ibm-webexplorer")!=-1));

    var is_mac    = (agt.indexOf("mac")!=-1);
    var is_mac68k = (is_mac && ((agt.indexOf("68k")!=-1) ||
                               (agt.indexOf("68000")!=-1)));
    var is_macppc = (is_mac && ((agt.indexOf("ppc")!=-1) ||
                                (agt.indexOf("powerpc")!=-1)));

    var is_sun   = (agt.indexOf("sunos")!=-1);
    var is_sun4  = (agt.indexOf("sunos 4")!=-1);
    var is_sun5  = (agt.indexOf("sunos 5")!=-1);
    var is_suni86= (is_sun && (agt.indexOf("i86")!=-1));
    var is_irix  = (agt.indexOf("irix") !=-1);    // SGI
    var is_irix5 = (agt.indexOf("irix 5") !=-1);
    var is_irix6 = ((agt.indexOf("irix 6") !=-1) || (agt.indexOf("irix6") !=-1));
    var is_hpux  = (agt.indexOf("hp-ux")!=-1);
    var is_hpux9 = (is_hpux && (agt.indexOf("09.")!=-1));
    var is_hpux10= (is_hpux && (agt.indexOf("10.")!=-1));
    var is_aix   = (agt.indexOf("aix") !=-1);      // IBM
    var is_aix1  = (agt.indexOf("aix 1") !=-1);
    var is_aix2  = (agt.indexOf("aix 2") !=-1);
    var is_aix3  = (agt.indexOf("aix 3") !=-1);
    var is_aix4  = (agt.indexOf("aix 4") !=-1);
    var is_linux = (agt.indexOf("inux")!=-1);
    var is_sco   = (agt.indexOf("sco")!=-1) || (agt.indexOf("unix_sv")!=-1);
    var is_unixware = (agt.indexOf("unix_system_v")!=-1);
    var is_mpras    = (agt.indexOf("ncr")!=-1);
    var is_reliant  = (agt.indexOf("reliantunix")!=-1);
    var is_dec   = ((agt.indexOf("dec")!=-1) || (agt.indexOf("osf1")!=-1) ||
           (agt.indexOf("dec_alpha")!=-1) || (agt.indexOf("alphaserver")!=-1) ||
           (agt.indexOf("ultrix")!=-1) || (agt.indexOf("alphastation")!=-1));
    var is_sinix = (agt.indexOf("sinix")!=-1);
    var is_freebsd = (agt.indexOf("freebsd")!=-1);
    var is_bsd = (agt.indexOf("bsd")!=-1);
    var is_unix  = ((agt.indexOf("x11")!=-1) || is_sun || is_irix || is_hpux ||
                 is_sco ||is_unixware || is_mpras || is_reliant ||
                 is_dec || is_sinix || is_aix || is_linux || is_bsd || is_freebsd);

    var is_vms   = ((agt.indexOf("vax")!=-1) || (agt.indexOf("openvms")!=-1));
// additional checks, abk
var is_anchors = (document.anchors) ? "true":"false";
var is_regexp = (window.RegExp) ? "true":"false";
var is_option = (window.Option) ? "true":"false";
var is_all = (document.all) ? "true":"false";
// cookies - 990624 - abk
document.cookie = "cookies=true";
var is_cookie = (document.cookie) ? "true" : "false";
var is_images = (document.images) ? "true":"false";
var is_layers = (document.layers) ? "true":"false"; // gecko m7 bug?
// new doc obj tests 990624-abk
var is_forms = (document.forms) ? "true" : "false";
var is_links = (document.links) ? "true" : "false";
var is_frames = (window.frames) ? "true" : "false";
var is_screen = (window.screen) ? "true" : "false";

// java
var is_java = (navigator.javaEnabled());

//--> end hide JavaScript
</script>
</head>

<body text="#000000" bgcolor="#FFFFFF">


<P><B>Navigator Object Data</B>
<BR>
<tt><script LANGUAGE="JavaScript">
<!--

document.write("navig ator.appCodeName: " + navigator.appCodeName + "<BR>");
document.write('<A HREF="http://www.webreference.com/js/column6/"><co de>navigator.appName<\/code><\/A>: ' + navigator.appName + "<BR>");
document.write('<A HREF="http://www.webreference.com/js/column6/"><co de>navigator.appVersion<\/code><\/A>: ' + navigator.appVersion + "<BR>");
document.write("navigator.userAgent: " + navigator.userAgent + "<BR>");

document.write("navigator.platform: " + navigator.platform + "<BR>");
document.write("navigator.javaEnabled(): " + is_java + "<BR>");
//-->
</script>

</tt>
<P>
<B>Version Number</B>
<BR><tt><script LANGUAGE="JavaScript">
<!--
document.write("<TT>p arseInt(navigator.appVersion) - major:" + is_major + "</TT><BR>");
document.write("<TT>parseFloat(navi gator.appVersion) - minor:" + is_minor + "</TT><BR>");
//--></script>
</tt>
<P>
<B>Browser Version</B>
<BR>
<tt><script LANGUAGE="JavaScript">
<!--
document.write("nav:" + is_nav + "<BR>");
document.write("nav2:" + is_nav2 + "<BR>");
document.write("nav3:" + is_nav3 + "<BR>");
document.write("nav4:" + is_nav4 + "<BR>");
document.write("nav4up:" + is_nav4up + "<BR>");
document.write("nav5:" + is_nav5 + "<BR>");
document.write("nav5up:" + is_nav5up + "<BR>");
document.write("nav6:" + is_nav6 + "<BR>");
document.write("nav6up:" + is_nav6up + "<P>"); // 001121 new - abk
// document.write("navonly:" + is_navonly + "<BR>");
// is false in ns6?
document.write("ie:" + is_ie + "<BR>");
document.write("ie3:" + is_ie3 + "<BR>");
document.write("ie4:" + is_ie4 + "<BR>");
document.write("ie4up:" + is_ie4up + "<BR>");
document.write("ie5:" + is_ie5 + "<BR>");
document.write("ie5up:" + is_ie5up + "<BR>");
document.write("ie5_5:" + is_ie5_5 + "<BR>");
     document.write("ie5_5up:" + is_ie5_5up + "<BR>");
document.write("ie6:" + is_ie6 + "<BR>");
document.write("ie6up:" + is_ie6up + "<P>");
document.write("aol:" + is_aol + "<BR>");
document.write("aol3:" + is_aol3 + "<BR>");
document.write("aol4:" + is_aol4 + "<BR>");
document.write("aol5:" + is_aol5 + "<BR>");
document.write("aol6:" + is_aol6 + "<BR>");

document.write("<P>" + "opera:" + is_opera + "<BR>");
document.write("opera2:" + is_opera2 + "<BR>");
document.write("opera3:" + is_opera3 + "<BR>");
document.write("opera4:" + is_opera4 + "<BR>");
document.write("opera5:" + is_opera5 + "<BR>");
document.write("opera5up:" + is_opera5up + "<BR>");
document.write("opera6:" + is_opera6 + "<BR>");
document.write("opera6up:" + is_opera6up + "<BR>");

document.write("<P>" + "webtv:" + is_webtv + "<BR>");
document.write("<P>" + "hotjava:" + is_hotjava + "<BR>");
document.write("hotjava3:" + is_hotjava3 + "<BR>");
document.write("hotjava3up:" + is_hotjava3up + "<BR>");
document.write("<P>" + "AOL TV(TVNavigator):" + is_TVNavigator + "<BR>");
//-->
</script>
</tt>
<P>
<B>JavaScript Version</B>
<BR><tt>
<script LANGUAGE="JavaScript">
<!--
document.write("js:" + is_js + "<BR>");
//-->
</script>

<SCRIPT LANGUAGE=JScript>
<!--
// 020131 included is_ie check to filter opera which doesn't recognize
// ScriptEngine() and spawns an error - dragle
if((document.all) && (is_ie)) {
document.write("<P>IE 4/5/6 Script Engines Installed: " + ScriptEngine() + "<BR>");
document.write("Version: " + ScriptEngineMajorVersion() + "." + ScriptEngineMinorVersion() + "." + ScriptEngineBuildVersion() + "<BR>");
}
//-->
</SCRIPT>
</tt>

<P>
<B>OS</B>
<B R>
<tt><script LANGUAGE="JavaScript">
<!--
document.write("win:" + is_win + "<BR>");
// document.write("win16:" + is_win16 + "<BR>");
// document.write("win31:" + is_win31 + "<BR>");
// document.write("win32:" + is_win32 + "<BR>");
// document.write("win95:" + is_win95 + "<BR>");
// document.write("win98:" + is_win98 + "<BR>");
// document.write("winme:" + is_winme + "<BR>");
// document.write("winnt:" + is_winnt + "<BR>");
// document.write("win2k:" + is_win2k + "<BR>");

document.write("os2:" + is_os2 + "<BR>");

document.write("mac:" + is_mac + "<BR>");
// document.write("mac68k:" + is_mac68k + "<BR>");
// document.write("macppc:" + is_macppc + "<BR>");

document.write("unix:" + is_unix + "<BR>");
document.write("sun:" + is_sun + "<BR>");
// document.write("sun4:" + is_sun4 + "<BR>");
// document.write("sun5:" + is_sun5 + "<BR>");
// document.write("suni86:" + is_suni86 + "<BR>");
document.write("irix:" + is_irix + "<BR>");
// document.write("irix5:" + is_irix5 + "<BR>");
// document.write("irix6:" + is_irix6 + "<BR>");
document.write("hpux:" + is_hpux + "<BR>");
// document.write("hpux9:" + is_hpux9 + "<BR>");
// document.write("hpux10:" + is_hpux10 + "<BR>");
document.write("aix:" + is_aix + "<BR>");
// document.write("aix1:" + is_aix1 + "<BR>");
// document.write("aix2:" + is_aix2 + "<BR>");
// document.write("aix3:" + is_aix3 + "<BR>");
// document.write("aix4:" + is_aix4 + "<BR>");
document.write("linux:" + is_linux + "<BR>");
document.write("sco:" + is_sco + "<BR>");
document.write("unixware:" + is_unixware + "<BR>");
document.write("mpras:" + is_mpras + "<BR>");
document.write("reliant:" + is_reliant + "<BR>");
document.write("dec:" + is_dec + "<BR>");
document.write("sinix:" + is_sinix + "<BR>");
document.write("bsd:" + is_bsd + "<BR>");
document.write("freebsd:" + is_freebsd + "<BR>");

document.write("vms:" + is_vms + "<BR>");
//-->
</script>
</tt>

<P>
<B>Object Detection Tests</B>
<BR>
<tt><script LANGUAGE="JavaScript">
<!--
document.write('<A HREF="/dhtml/diner/browsvars/">document.all<\/A>: ' + is_all + "<BR>");
document.write('document.anchors: ' + is_anchors + "<BR>");
document.write('<A HREF="http://webreference.com/js/column8/">documen t.cookie<\/A>: ' + is_cookie + "<BR>");
document.write('<a href="http://www.webreference.com/programming/java script/beginning/chap6/1/2.html">document.forms</a >: ' + is_forms + "<BR>");
document.write('<A HREF="http://www.webreference.com/programming/java script/domscripting/1/">document.getElementById</A >: ' + is_getElementById + "*<BR>"); // new 001121 abk for ns6+
document.write('<A HREF="http://www.webreference.com/programming/java script/domscripting/1/3.html">document.getElements ByTagName</A>: ' + is_getElementsByTagName + "<BR>");
document.write('<A HREF="http://www.webreference.com/js/column75/3.ht ml">document.documentElement</A>: ' + is_documentElement + "<BR>");

document.write('<A HREF="http://webreference.com/dhtml/column1/">docu ment<\/A>.<A HREF="http://www.webreference.com/js/column1/">ima ges<\/A>: ' + is_images + "<BR>");
document.write('<A HREF="/dhtml/diner/browsvars/">document.layers<\/A >: ' + is_layers + " - NS6 gives false here**" + "<BR>");
// ' + is_layers + "<BR>");
document.write('<A HREF="http://www.webreference.com/js/column16/byur l.html">document.links</A>: ' + is_links + "<BR><BR>");
document.write('<A HREF="http://webreference.com/js/column36/">window .frames<\/A>: ' + is_frames + "<BR>");
document.write('window.length: ' + window.length +"<BR>");

//-->
</script>
</tt>

<P>
<B>Method Detection Tests</B>
<BR>
<tt><script LANGUAGE="JavaScript">
<!--
document.write('<A HREF="http://www.webreference.com/js/column5/">win dow.RegExp<\/A>: ' + is_regexp + "<BR>");
document.write('<A HREF="/dev/menus/">window.Option<\/A>: ' + is_option + "<BR>");

//-->
</script>

</tt>

<P>
<B>Screen Properties</B>
<BR>
<tt><script LANGUAGE="JavaScript">
<!--
document.write('<A HREF="http://webreference.com/js/column17/">window .screen</A>: ' + is_screen + "<BR>");
if (window.screen) {
document.write('screen.height: ' + screen.height + "<BR>");
document.write('screen.width: ' + screen.width + "<BR>");
document.write('screen.availHeight: ' + screen.availHeight + "<BR>");
document.write('screen.availWidth: ' + screen.availWidth + "<BR>");
document.write('screen.colorDepth: ' + screen.colorDepth + "<BR>");
}
//-->
</script>


<SCRIPT LANGUAGE=JScript>
<!--
if (window.screen) {
document.write("fontSmoothingEnabled: " + screen.fontSmoothingEnabled + "<BR>");
}
//-->
</SCRIPT>
</tt>

<P>
<B>Document Properties</B>
<BR>
<tt><script LANGUAGE="JavaScript">
<!--
// document.write('doc ument.lastModified: ' + document.lastModified + "<BR>"); // gecko bug?
// document.write('document.referrer: ' + document.referrer + "<BR>");
document.write('document.URL: ' + document.URL + "<BR>");
//-->
</script>

</tt>

<table><tr><td><i mg src="/art/t.gif" width=1 height=1 alt=""></td></tr></table>
</td></tr></table>

<H2> Further Reading</H2>

<UL>
<LI><A HREF="links.html">Browser Sniffer Links</A> - More sniffers both client and server-side
<LI><A HREF="http://www.mozilla.org/js/language/">JavaScr ipt Language Resources</A> - JavaScript 1x-2x specs from Mozilla.org
<LI><A HREF="/programming/javascript/netscape6/">JavaScri pting Netscape 6: No More Sloppy Code</A> - How to update your code, and some caveats by Andy King
<LI><A HREF="http://webreference.com/programming/javascri pt/">JavaScript Resources</A> - Links
<LI><A HREF="http://webreference.com/dhtml/diner/scriptsr c/">Loading External JS Files for DHTML Browsers</A> - From DHTML Lab
<LI><A HREF="http://www.webstandards.org">The Web Standards Project</A> - Grass roots effort to convince browser builders to adopt W3C standards.
</UL>



<H2>Addendum</H2>

<P>*<EM>Not e</EM>: The document.getElementById can be used to test W3C DOM capability but should be used with caution. Some browsers give a "true" to this test, yet don't fully support the DOM (Opera, IE5.5). Make sure you use this test in
combination with IE5.5, Opera, etc. platforms tests, and of course, test your code on the platforms you explicitly support.

<P>**<EM>Note</EM>: Old DHTML scripts can fail in NS6 and above with the document.layers test, as NS6 does not support layers, but the W3C standard DOM1 and some of DOM2. Gecko m7 does not support the document.layers test. Use document.getElementById instead (note: ie5+ supports document.getElementById, so you'll need to allow for this in your code). Note also that Netscape 6 supports IE's innerHTML property for convenience, but it is not in the W3C DOM. So to make your DHTML scripts work in DOM-compliant browsers use DIVs, example:

<PRE>
&lt;DIV id='MYDIV' style="position:absolute; left:200; top:100; visibility:hidden;'&gt;
myElement = document.getElementById('MYDIV');
myElement.style. visibility = 'visible';
myElement.style.left = x + "px"; // note ie uses pixelLeft, NS4 uses moveTo(x,y)
myElement.style.top  = y + "px"; // note ie uses pixelTop
myElement.style.innerHTML = newcontent; // not in W3C dom but in NS6+

Example browser branching logic:

if (document.all) { // note, this code would also run in IE5+, which has partial support
  IE4+ code         // for the W3C DOM. You could also add check for !DOM
                    // here (&& !(document.getElementById)) and equate dissimilar IE/W3C
                    // DOMs with prototype function, and run all IE5+/NS6+ browsers with
                    // only DOM-standards-compliant code. IE5+ browsers would then drop
                    // down to third elseif below.
} else if (document.layers) {
  NS4+ code
} else if (document.getElementById) {
  NS6+ code         // and IE5+ code you flatten differences between MS DOM and W3C DOM
}

</PRE>

</P>

<P>Note it would be interesting to see if someone could use of the prototype function in JavaScript (see <A HREF="http://www.siteexperts.com">siteExperts.com< /A>) to equate document.all with document.getElementByID (or even better vice versa) and style.pixelLeft with style.left and style.pixelTop with style.top for cleaner code.</p>

<P ALIGN=CENTER> <CENTER>
<SPAN CLASS="foot">Copyright 2002 INT Media Group, Incorporated All Rights Reserved.</SPAN><BR>
<A HREF="http://www.internet.com/corporate/legal.html " CLASS="foot">Legal Notices</A>,  <A HREF="http://www.internet.com/corporate/reprints.h tml#Licensing" CLASS="foot">Licensing</A>, <A HREF="http://www.internet.com/corporate/reprints.h tml#Reprints" CLASS="foot">Reprints</A>, & <A HREF="http://www.internet.com/corporate/reprints.h tml#Permissions" CLASS="foot">Permissions</A>,  <A HREF="http://www.internet.com/corporate/privacy/pr ivacypolicy.html" CLASS="foot">Privacy Policy</A>.
<BR>
<A HREF="http://www.internet.com"><IMG SRC="/img/URL.gif" ALT="http://www.internet.com/" WIDTH="161" HEIGHT="18" BORDER="0"></A>
</CENTER>


<center>

<TABLE BORDER="0" CELLSPACING="0" CELLPADDING="2" BGCOLOR="#000000" WIDTH="100%" CLASS="twidth">

<TR><TD><TABLE BGCOLOR="#FFCC00" BORDER="0" CELLSPACING="0" CELLPADDING="2" WIDTH="100%">

<TR BGCOLOR="#FFFFFF" VALIGN="top">

<TD ALIGN="left" COLSPAN="2" WIDTH="60%" CLASS="includebig"><A HREF="http://www.webreference.com"><IMG SRC="/art/l_webref32x16.gif" WIDTH="32" HEIGHT="16" BORDER="0" alt="webref"></A>&#160;<B>The latest from <A HREF="http://www.webreference.com">WebReference.co m</A></B>
</TD>

<TD BGCOLOR="#FFFFFF" ALIGN=RIGHT CLASS="include"><SPAN STYLE="color:blue"><A HREF="/index2.html">Browse</A>&#160;&gt;</SPAN></T D>

<TD WIDTH="1%" BGCOLOR="#FFFFFF"><FORM class="tb" NAME="WRmenu" METHOD="POST" ACTION="/cgi-bin/redirect.cgi" onSubmit="return false">
<TABLE BORDER="0" CELLSPACING="0" CELLPADDING="0" WIDTH="100%"><TR><TD>
<SELECT class="SUBMITTER" NAME="WRm" onChange="if(this.form.elements[0].options[this.fo rm.elements[0].selectedIndex].value !='#') {window.location.href=this.form.elements[0].option s[this.form.elements[0].selectedIndex].value};">
< OPTION VALUE="/index2.html" SELECTED>Site Contents
<OPTION VALUE="#">- - - - -
<OPTION VALUE="/experts/">Experts
<OPTION VALUE="/3d/">* 3D Animation
<OPTION VALUE="/dlab/">* Design
<OPTION VALUE="/dhtml/">* DHTML
<OPTION VALUE="/graphics/">* Graphics
<OPTION VALUE="/html/">* HTML
<OPTION VALUE="/js/">* JavaScript
<OPTION VALUE="/perl/">* Perl
<OPTION VALUE="/xml/">* XML
<OPTION VALUE="#">- - - - -
<OPTION VALUE="/index2.html">Web Resources
<OPTION VALUE="/authoring/">* Authoring
<OPTION VALUE="/authoring/design/">* Design
<OPTION VALUE="/internet/">* Internet
<OPTION VALUE="/multimedia/">* Multimedia
<OPTION VALUE="/programming/">* Programming
<OPTION VALUE="/promotion/">* Promotion
<OPTION VALUE="#">- - - - -
<OPTION VALUE="/services/">Services
<OPTION VALUE="/interviews/">* Interviews
<OPTION VALUE="/new/">* Newsletters
<OPTION VALUE="/reviews/">* Reviews
<OPTION VALUE="/cgi-bin/search.cgi">* Search
<OPTION VALUE="/tools/">* Tools
</SELECT></TD><TD><INPUT TYPE=SUBMIT class="SUBMITTER" VALUE="Go" onClick ="if(this.form.elements[0].options[this.form.eleme nts[0].selectedIndex].value !='#') {window.location.href=this.form.elements[0].option s[this.form.elements[0].selectedIndex].value};"></ TD></TR></TABLE></FORM></TD></TR>

<TR BGCOLOR="#FFFFFF">
<TD COLSPAN="4" CLASS="include">

  
   <A HREF="http://www.webreference.com/new/020131.html" >Book Review: E-Commerce User Experience</A>

    &#183;
   <A HREF="http://www.webreference.com/tools/browser/ja vascript.html">Update: JavaScript Browser Sniffer</A>

    &#183;
   <A HREF="http://www.webreference.com/js/column102/">X ML Object Nodes and Types</A>
</TD>
</TR>

<TR BGCOLOR="#FFFFFF" valign="top">
<TD COLSPAN="2" CLASS="include"><A HREF="/index2.html">Sitemap</A> &#183; <A HREF="/experts/">Experts</A> &#183; <A HREF="/tools/">Tools</A> &#183; <A href="/services/">Services</A> &#183; <A HREF="/_email/email_a_colleague.html">Email a Colleague</A> &#183; <A HREF="/cgi-bin/suggest.cgi">Contact</A>
</TD>

<TD ALIGN="RIGHT" CLASS="include"><A HREF="/new/"><SPAN STYLE="color:blue"> FREE&#160;Newsletters&#160;</SPAN></A>&gt;&#160;</ TD>

<TD><FORM class="tb" method=post action="http://www.webreference.com/cgi-bin/signup mult.cgi"><TABLE BORDER="0" CELLSPACING="0" CELLPADDING="0" WIDTH="100%"><TR><TD><INPUT TYPE="hidden" NAME="type" VALUE="Text"><INPUT TYPE="hidden" NAME="type" VALUE="HTML"><INPUT TYPE="Hidden" Name="List_Name" Value="WEBREFERENCE-UPDATE"><input class="SUBMITTER" type="text" size=11 maxlength=99 name="Email_Address" value="enter e-mail" onFocus="this.select()"><INPUT TYPE="Hidden" NAME="Action" VALUE="subscribe"><INPUT TYPE="Hidden" Name="LAST" Value="THE_END"></TD><TD><INPUT CLASS="SUBMITTER" TYPE="submit" name="Submit" value="Signup"></TD></TR></TABLE></FORM></TD>

</T R>

<TR BGCOLOR="#FFFFFF" VALIGN="top">

<TD ALIGN="left" COLSPAN="4" CLASS="includebig">&#160;<B>The latest from <A HREF="http://www.internet.com">internet.com</A></B >
</TD></TR>

<TR BGCOLOR="#FFFFFF">
<TD COLSPAN="4" CLASS="include">
  
   <A HREF="http://redir.internet.com/inc/wbr_1-02.01/ww w.internetnews.com/infra/article/0,,10693_965601,0 0.html
">McLeodUSA in Pre-packaged Bankruptcy
</A>

    &#183;
   <A HREF="http://redir.internet.com/inc/wbr_2-02.01/ne tworking.earthweb.com/netsecur/article/0,,12084_96 5971,00.html
">...And I'll Cry If I Want To
</A>

    &#183;
   <A HREF="http://redir.internet.com/inc/wbr_3-02.01/ww w.asp101.com/lessons/install.asp
">Installing ASP.NET
</A>

</TD>
</TR>
</TABLE>

</TD></TR>
</T ABLE>
</center>
<P ALIGN=CENTER>


&nbsp;<br><!--START AD -->
<A HREF="http://www.webreference.com/RealMedia/ads/cl ick_lx.cgi/intm/webdev/www.webreference.com/tools/ browser/javascript.html/32033/468x60-2/House_IT_IS _Industry_Forecast_1a/itis-forecast-468_new.gif/63 316662343838613362386339373030" target="_top"><IMG SRC="http://www.webreference.com/RealMedia/ads/Cre atives/House_IT_IS_Industry_Forecast_1a/itis-forec ast-468_new.gif"  WIDTH=468 HEIGHT=60 ALT="The IT/IS Industry Forecast 2002: U.S. and Europe."  BORDER="0"></A><img src="http://www.webreference.com/RealMedia/ads/ads tream_lx.cgi/intm/webdev/www.webreference.com/tool s/browser/javascript.html/32033/468x60-2/House_IT_ IS_Industry_Forecast_1a/itis-forecast-468_new.gif/ 63316662343838613362386339373030?_RM_EMPTY_" Width="1" Height="1" Border="0">

<!--END AD -->
<br>  <BR>
All Rights Reserved. <A  HREF="http://www.internet.com/corporate/legal.html ">Legal Notices.</A><BR>
Created: Feb. 15, 1999<BR>
Revised: Jan. 31, 2002</P>
<P ALIGN=CENTER><SMALL>URL: http://www.webreference.com/tools/browser/javascri pt.html</SMALL></P>

</BODY>
</HTML>




 Sources du même auteur

DHTML - MANIP CSS
OUVERTURE POPUP À URL ALÉATOIRE
Source avec Zip 96 SITES RÉPERTORIÉS : HTML, CSS, DHTML, JAVA, JAVASCRIPT, P...
Source avec Zip DHTML SCROLLTOP
PATIENTEZ + DATES MANIP

 Sources de la même categorie

Source avec Zip Source avec une capture ANTI-ROBOTS V 1.0 par MacGaliver
Source avec une capture PRÉSENTOIR PAGE/SUJET par tiranus
Source avec Zip Source avec une capture NAVIGATEUR INTERNET HAVRET par HAVRETos
Source avec Zip WMANAGER.JS : GÉRER LES FICHIERS WMA AVEC WINDOWS MEDIA PLAY... par jdmcreator
Source avec Zip Source avec une capture NAVIGATION PAR AJAX, CHARGEMENT DES PAGES SANS RECHARGEMENT par zulrigh

Commentaires et avis

Commentaire de LToZ le 07/04/2004 21:59:26

Sérieusment, à quoi ça sert..?

Commentaire de Deny le 08/04/2004 08:55:55

Tu l'a essayé ?
A détecter tout ce qui est implanté sur ton ordinateur, toutes les caractéristiques de ton, ou tes, navigateur(s).
Et donc ceux des autres, par extension, selon.

exemple IE ver 6.0-2800.1006
Object Detection Tests
document.all: true
document.anchors: true
document.cookie: true
document.forms: true
document.getElementById: true*
document.getElementsByTagName: true
document.documentElement: true
document.images: true
document.layers: false - NS6 gives false here**
document.links: true

Screen Properties
window.screen: true
screen.height: 600
screen.width: 800
screen.availHeight: 570
screen.availWidth: 800
screen.colorDepth: 32
fontSmoothingEnabled: true


etc...

Commentaire de Jackboy le 15/07/2004 16:14:51

Moi je trouve sa super, sa rassemble pas mal de script éparpillé sur plusieurs site, donc ces bien... peut etre modifier la fin du script (avec les url et tous), j'ai refais sa donc voici le script...


<html>
<head>
<script LANGUAGE="JavaScript">

// convert all characters to lowercase to simplify testing
var agt=navigator.userAgent.toLowerCase();
var appVer = navigator.appVersion.toLowerCase();

// *** BROWSER VERSION ***

var is_minor = parseFloat(appVer);
var is_major = parseInt(is_minor);

// Note: On IE, start of appVersion return 3 or 4
// which supposedly is the version of Netscape it is compatible with.
// So we look for the real version further on in the string

var iePos = appVer.indexOf('msie');
if (iePos !=-1) {
is_minor = parseFloat(appVer.substring(iePos+5,appVer.indexOf(';',iePos)))
is_major = parseInt(is_minor);
}

// Netscape6 is mozilla/5 + Netscape6/6.0!!!
// Mozilla/5.0 (Windows; U; Win98; en-US; m18) Gecko/20001108 Netscape6/6.0
var nav6Pos = agt.indexOf('netscape6');
if (nav6Pos !=-1) {
is_minor = parseFloat(agt.substring(nav6Pos+10))
is_major = parseInt(is_minor)
}

var is_getElementById = (document.getElementById) ? "true" : "false"; // 001121-abk
var is_getElementsByTagName = (document.getElementsByTagName) ? "true" : "false"; // 001127-abk
var is_documentElement = (document.documentElement) ? "true" : "false"; // 001121-abk

var is_opera = (agt.indexOf("opera") != -1);
var is_opera2 = (agt.indexOf("opera 2") != -1 || agt.indexOf("opera/2") != -1);
var is_opera3 = (agt.indexOf("opera 3") != -1 || agt.indexOf("opera/3") != -1);
var is_opera4 = (agt.indexOf("opera 4") != -1 || agt.indexOf("opera/4") != -1);
var is_opera5 = (agt.indexOf("opera 5") != -1 || agt.indexOf("opera/5") != -1);
var is_opera6 = (agt.indexOf("opera 6") != -1 || agt.indexOf("opera/6") != -1); // new 020128- abk
var is_opera5up = (is_opera && !is_opera2 && !is_opera3 && !is_opera4);
var is_opera6up = (is_opera && !is_opera2 && !is_opera3 && !is_opera4 && !is_opera5); // new020128

var is_nav = ((agt.indexOf('mozilla')!=-1) && (agt.indexOf('spoofer')==-1)
&& (agt.indexOf('compatible') == -1) && (agt.indexOf('opera')==-1)
&& (agt.indexOf('webtv')==-1) && (agt.indexOf('hotjava')==-1));
var is_nav2 = (is_nav && (is_major == 2));
var is_nav3 = (is_nav && (is_major == 3));
var is_nav4 = (is_nav && (is_major == 4));
var is_nav4up = (is_nav && is_minor >= 4); // changed to is_minor for
// consistency - dmr, 011001
var is_navonly = (is_nav && ((agt.indexOf(";nav") != -1) ||
(agt.indexOf("; nav") != -1)) );

var is_nav6 = (is_nav && is_major==6); // new 010118 mhp
var is_nav6up = (is_nav && is_minor >= 6) // new 010118 mhp

var is_nav5 = (is_nav && is_major == 5 && !is_nav6); // checked for ns6
var is_nav5up = (is_nav && is_minor >= 5);

var is_ie = ((iePos!=-1) && (!is_opera));
var is_ie3 = (is_ie && (is_major < 4));

var is_ie4 = (is_ie && is_major == 4);
var is_ie4up = (is_ie && is_minor >= 4);
var is_ie5 = (is_ie && is_major == 5);
var is_ie5up = (is_ie && is_minor >= 5);

var is_ie5_5 = (is_ie && (agt.indexOf("msie 5.5") !=-1)); // 020128 new - abk
var is_ie5_5up =(is_ie && is_minor >= 5.5); // 020128 new - abk

var is_ie6 = (is_ie && is_major == 6);
var is_ie6up = (is_ie && is_minor >= 6);

// KNOWN BUG: On AOL4, returns false if IE3 is embedded browser
// or if this is the first browser window opened. Thus the
// variables is_aol, is_aol3, and is_aol4 aren't 100% reliable.

var is_aol = (agt.indexOf("aol") != -1);
var is_aol3 = (is_aol && is_ie3);
var is_aol4 = (is_aol && is_ie4);
var is_aol5 = (agt.indexOf("aol 5") != -1);
var is_aol6 = (agt.indexOf("aol 6") != -1);

var is_webtv = (agt.indexOf("webtv") != -1);

// new 020128 - abk

var is_TVNavigator = ((agt.indexOf("navio") != -1) || (agt.indexOf("navio_aoltv") != -1));
var is_AOLTV = is_TVNavigator;

var is_hotjava = (agt.indexOf("hotjava") != -1);
var is_hotjava3 = (is_hotjava && (is_major == 3));
var is_hotjava3up = (is_hotjava && (is_major >= 3));

// end new


var is_js;
if (is_nav2 || is_ie3) is_js = 1.0;
else if (is_nav3) is_js = 1.1;
else if (is_opera6up) is_js = 1.4; // new 1.4? 020128 - abk
else if (is_opera5) is_js = 1.3;
else if (is_opera) is_js = 1.1;
else if ((is_nav4 && (is_minor <= 4.05)) || is_ie4) is_js = 1.2;
else if ((is_nav4 && (is_minor > 4.05)) || is_ie5) is_js = 1.3;
else if (is_nav5 && !(is_nav6)) is_js = 1.4;
else if (is_hotjava3up) is_js = 1.4; // new 020128 - abk
else if (is_nav6) is_js = 1.5;



else if (is_nav && (is_major > 5)) is_js = 1.4
else if (is_ie && (is_major > 5)) is_js = 1.3


else is_js = 0.0;
// HACK FOR IE5 MAC = js vers = 1.4 (if put inside if/else jumps out at 1.3)
if ((agt.indexOf("mac")!=-1) && is_ie5up) is_js = 1.4; // 020128 - abk

// *** PLATFORM ***
var is_win = ( (agt.indexOf("win")!=-1) || (agt.indexOf("16bit")!=-1) );
// NOTE: On Opera 3.0, the userAgent string includes "Windows 95/NT4" on all
// Win32, so you can't distinguish between Win95 and WinNT.
var is_win95 = ((agt.indexOf("win95")!=-1) || (agt.indexOf("windows 95")!=-1));

// is this a 16 bit compiled version?
var is_win16 = ((agt.indexOf("win16")!=-1) ||
(agt.indexOf("16bit")!=-1) || (agt.indexOf("windows 3.1")!=-1) ||
(agt.indexOf("windows 16-bit")!=-1) );

var is_win31 = ((agt.indexOf("windows 3.1")!=-1) || (agt.indexOf("win16")!=-1) ||
(agt.indexOf("windows 16-bit")!=-1));

var is_winme = ((agt.indexOf("win 9x 4.90")!=-1)); // new 020128 - abk
var is_win2k = ((agt.indexOf("windows nt 5.0")!=-1)); // new 020128 - abk


var is_win98 = ((agt.indexOf("win98")!=-1) || (agt.indexOf("windows 98")!=-1));
var is_winnt = ((agt.indexOf("winnt")!=-1) || (agt.indexOf("windows nt")!=-1));
var is_win32 = (is_win95 || is_winnt || is_win98 ||
((is_major >= 4) && (navigator.platform == "Win32")) ||
(agt.indexOf("win32")!=-1) || (agt.indexOf("32bit")!=-1));

var is_os2 = ((agt.indexOf("os/2")!=-1) ||
(navigator.appVersion.indexOf("OS/2")!=-1) ||
(agt.indexOf("ibm-webexplorer")!=-1));

var is_mac = (agt.indexOf("mac")!=-1);
var is_mac68k = (is_mac && ((agt.indexOf("68k")!=-1) ||
(agt.indexOf("68000")!=-1)));
var is_macppc = (is_mac && ((agt.indexOf("ppc")!=-1) ||
(agt.indexOf("powerpc")!=-1)));

var is_sun = (agt.indexOf("sunos")!=-1);
var is_sun4 = (agt.indexOf("sunos 4")!=-1);
var is_sun5 = (agt.indexOf("sunos 5")!=-1);
var is_suni86= (is_sun && (agt.indexOf("i86")!=-1));
var is_irix = (agt.indexOf("irix") !=-1); // SGI
var is_irix5 = (agt.indexOf("irix 5") !=-1);
var is_irix6 = ((agt.indexOf("irix 6") !=-1) || (agt.indexOf("irix6") !=-1));
var is_hpux = (agt.indexOf("hp-ux")!=-1);
var is_hpux9 = (is_hpux && (agt.indexOf("09.")!=-1));
var is_hpux10= (is_hpux && (agt.indexOf("10.")!=-1));
var is_aix = (agt.indexOf("aix") !=-1); // IBM
var is_aix1 = (agt.indexOf("aix 1") !=-1);
var is_aix2 = (agt.indexOf("aix 2") !=-1);
var is_aix3 = (agt.indexOf("aix 3") !=-1);
var is_aix4 = (agt.indexOf("aix 4") !=-1);
var is_linux = (agt.indexOf("inux")!=-1);
var is_sco = (agt.indexOf("sco")!=-1) || (agt.indexOf("unix_sv")!=-1);
var is_unixware = (agt.indexOf("unix_system_v")!=-1);
var is_mpras = (agt.indexOf("ncr")!=-1);
var is_reliant = (agt.indexOf("reliantunix")!=-1);
var is_dec = ((agt.indexOf("dec")!=-1) || (agt.indexOf("osf1")!=-1) ||
(agt.indexOf("dec_alpha")!=-1) || (agt.indexOf("alphaserver")!=-1) ||
(agt.indexOf("ultrix")!=-1) || (agt.indexOf("alphastation")!=-1));
var is_sinix = (agt.indexOf("sinix")!=-1);
var is_freebsd = (agt.indexOf("freebsd")!=-1);
var is_bsd = (agt.indexOf("bsd")!=-1);
var is_unix = ((agt.indexOf("x11")!=-1) || is_sun || is_irix || is_hpux ||
is_sco ||is_unixware || is_mpras || is_reliant ||
is_dec || is_sinix || is_aix || is_linux || is_bsd || is_freebsd);

var is_vms = ((agt.indexOf("vax")!=-1) || (agt.indexOf("openvms")!=-1));
// additional checks, abk
var is_anchors = (document.anchors) ? "true":"false";
var is_regexp = (window.RegExp) ? "true":"false";
var is_option = (window.Option) ? "true":"false";
var is_all = (document.all) ? "true":"false";
// cookies - 990624 - abk
document.cookie = "cookies=true";
var is_cookie = (document.cookie) ? "true" : "false";
var is_images = (document.images) ? "true":"false";
var is_layers = (document.layers) ? "true":"false"; // gecko m7 bug?
// new doc obj tests 990624-abk
var is_forms = (document.forms) ? "true" : "false";
var is_links = (document.links) ? "true" : "false";
var is_frames = (window.frames) ? "true" : "false";
var is_screen = (window.screen) ? "true" : "false";

// java
var is_java = (navigator.javaEnabled());

//--> end hide JavaScript
</script>
</head>

<body text="#000000" bgcolor="#FFFFFF">


<P><B>Navigator Object Data</B>
<BR>
<tt><script LANGUAGE="JavaScript">
<!--

document.write("navigator.appCodeName: " + navigator.appCodeName + "<BR>");
document.write('<code>navigator.appName<\/code>: ' + navigator.appName + "<BR>");
document.write('<code>navigator.appVersion<\/code>: ' + navigator.appVersion + "<BR>");
document.write("navigator.userAgent: " + navigator.userAgent + "<BR>");

document.write("navigator.platform: " + navigator.platform + "<BR>");
document.write("navigator.javaEnabled(): " + is_java + "<BR>");
//-->
</script>

</tt>
<P>
<B>Version Number</B>
<BR><tt><script LANGUAGE="JavaScript">
<!--
document.write("<TT>parseInt(navigator.appVersion) - major:" + is_major + "</TT><BR>");
document.write("<TT>parseFloat(navigator.appVersion) - minor:" + is_minor + "</TT><BR>");
//--></script>
</tt>
<P>
<B>Browser Version</B>
<BR>
<tt><script LANGUAGE="JavaScript">
<!--
document.write("nav:" + is_nav + "<BR>");
document.write("nav2:" + is_nav2 + "<BR>");
document.write("nav3:" + is_nav3 + "<BR>");
document.write("nav4:" + is_nav4 + "<BR>");
document.write("nav4up:" + is_nav4up + "<BR>");
document.write("nav5:" + is_nav5 + "<BR>");
document.write("nav5up:" + is_nav5up + "<BR>");
document.write("nav6:" + is_nav6 + "<BR>");
document.write("nav6up:" + is_nav6up + "<P>"); // 001121 new - abk
// document.write("navonly:" + is_navonly + "<BR>");
// is false in ns6?
document.write("ie:" + is_ie + "<BR>");
document.write("ie3:" + is_ie3 + "<BR>");
document.write("ie4:" + is_ie4 + "<BR>");
document.write("ie4up:" + is_ie4up + "<BR>");
document.write("ie5:" + is_ie5 + "<BR>");
document.write("ie5up:" + is_ie5up + "<BR>");
document.write("ie5_5:" + is_ie5_5 + "<BR>");
document.write("ie5_5up:" + is_ie5_5up + "<BR>");
document.write("ie6:" + is_ie6 + "<BR>");
document.write("ie6up:" + is_ie6up + "<P>");
document.write("aol:" + is_aol + "<BR>");
document.write("aol3:" + is_aol3 + "<BR>");
document.write("aol4:" + is_aol4 + "<BR>");
document.write("aol5:" + is_aol5 + "<BR>");
document.write("aol6:" + is_aol6 + "<BR>");

document.write("<P>" + "opera:" + is_opera + "<BR>");
document.write("opera2:" + is_opera2 + "<BR>");
document.write("opera3:" + is_opera3 + "<BR>");
document.write("opera4:" + is_opera4 + "<BR>");
document.write("opera5:" + is_opera5 + "<BR>");
document.write("opera5up:" + is_opera5up + "<BR>");
document.write("opera6:" + is_opera6 + "<BR>");
document.write("opera6up:" + is_opera6up + "<BR>");

document.write("<P>" + "webtv:" + is_webtv + "<BR>");
document.write("<P>" + "hotjava:" + is_hotjava + "<BR>");
document.write("hotjava3:" + is_hotjava3 + "<BR>");
document.write("hotjava3up:" + is_hotjava3up + "<BR>");
document.write("<P>" + "AOL TV(TVNavigator):" + is_TVNavigator + "<BR>");
//-->
</script>
</tt>
<P>
<B>JavaScript Version</B>
<BR><tt>
<script LANGUAGE="JavaScript">
<!--
document.write("js:" + is_js + "<BR>");
//-->
</script>

<SCRIPT LANGUAGE=JScript>
<!--
// 020131 included is_ie check to filter opera which doesn't recognize
// ScriptEngine() and spawns an error - dragle
if((document.all) && (is_ie)) {
document.write("<P>IE 4/5/6 Script Engines Installed: " + ScriptEngine() + "<BR>");
document.write("Version: " + ScriptEngineMajorVersion() + "." + ScriptEngineMinorVersion() + "." + ScriptEngineBuildVersion() + "<BR>");
}
//-->
</SCRIPT>
</tt>

<P>
<B>OS</B>
<BR>
<tt><script LANGUAGE="JavaScript">
<!--
document.write("win:" + is_win + "<BR>");
// document.write("win16:" + is_win16 + "<BR>");
// document.write("win31:" + is_win31 + "<BR>");
// document.write("win32:" + is_win32 + "<BR>");
// document.write("win95:" + is_win95 + "<BR>");
// document.write("win98:" + is_win98 + "<BR>");
// document.write("winme:" + is_winme + "<BR>");
// document.write("winnt:" + is_winnt + "<BR>");
// document.write("win2k:" + is_win2k + "<BR>");

document.write("os2:" + is_os2 + "<BR>");

document.write("mac:" + is_mac + "<BR>");
// document.write("mac68k:" + is_mac68k + "<BR>");
// document.write("macppc:" + is_macppc + "<BR>");

document.write("unix:" + is_unix + "<BR>");
document.write("sun:" + is_sun + "<BR>");
// document.write("sun4:" + is_sun4 + "<BR>");
// document.write("sun5:" + is_sun5 + "<BR>");
// document.write("suni86:" + is_suni86 + "<BR>");
document.write("irix:" + is_irix + "<BR>");
// document.write("irix5:" + is_irix5 + "<BR>");
// document.write("irix6:" + is_irix6 + "<BR>");
document.write("hpux:" + is_hpux + "<BR>");
// document.write("hpux9:" + is_hpux9 + "<BR>");
// document.write("hpux10:" + is_hpux10 + "<BR>");
document.write("aix:" + is_aix + "<BR>");
// document.write("aix1:" + is_aix1 + "<BR>");
// document.write("aix2:" + is_aix2 + "<BR>");
// document.write("aix3:" + is_aix3 + "<BR>");
// document.write("aix4:" + is_aix4 + "<BR>");
document.write("linux:" + is_linux + "<BR>");
document.write("sco:" + is_sco + "<BR>");
document.write("unixware:" + is_unixware + "<BR>");
document.write("mpras:" + is_mpras + "<BR>");
document.write("reliant:" + is_reliant + "<BR>");
document.write("dec:" + is_dec + "<BR>");
document.write("sinix:" + is_sinix + "<BR>");
document.write("bsd:" + is_bsd + "<BR>");
document.write("freebsd:" + is_freebsd + "<BR>");

document.write("vms:" + is_vms + "<BR>");
//-->
</script>
</tt>

<P>
<B>Object Detection Tests</B>
<BR>
<tt><script LANGUAGE="JavaScript">
<!--
document.write('document.all: ' + is_all + "<BR>");
document.write('document.anchors: ' + is_anchors + "<BR>");
document.write('document.cookie: ' + is_cookie + "<BR>");
document.write('document.forms: ' + is_forms + "<BR>");
document.write('document.getElementById: ' + is_getElementById + "*<BR>"); // new 001121 abk for ns6+
document.write('document.getElementsByTagName: ' + is_getElementsByTagName + "<BR>");
document.write('document.documentElement: ' + is_documentElement + "<BR>");

document.write('document.images: ' + is_images + "<BR>");
document.write('document.layers: ' + is_layers + " - NS6 gives false here**" + "<BR>");
// ' + is_layers + "<BR>");
document.write('document.links: ' + is_links + "<BR><BR>");
document.write('window.frames: ' + is_frames + "<BR>");
document.write('window.length: ' + window.length +"<BR>");

//-->
</script>
</tt>

<P>
<B>Method Detection Tests</B>
<BR>
<tt><script LANGUAGE="JavaScript">
<!--
document.write('window.RegExp: ' + is_regexp + "<BR>");
document.write('window.Option: ' + is_option + "<BR>");

//-->
</script>

</tt>

<P>
<B>Screen Properties</B>
<BR>
<tt><script LANGUAGE="JavaScript">
<!--
document.write('window.screen: ' + is_screen + "<BR>");
if (window.screen) {
document.write('screen.height: ' + screen.height + "<BR>");
document.write('screen.width: ' + screen.width + "<BR>");
document.write('screen.availHeight: ' + screen.availHeight + "<BR>");
document.write('screen.availWidth: ' + screen.availWidth + "<BR>");
document.write('screen.colorDepth: ' + screen.colorDepth + "<BR>");
}
//-->
</script>


<SCRIPT LANGUAGE=JScript>
<!--
if (window.screen) {
document.write("fontSmoothingEnabled: " + screen.fontSmoothingEnabled + "<BR>");
}
//-->
</SCRIPT>
</tt>

<P>
<B>Document Properties</B>
<BR>
<tt><script LANGUAGE="JavaScript">
<!--
// document.write('document.lastModified: ' + document.lastModified + "<BR>"); // gecko bug?
// document.write('document.referrer: ' + document.referrer + "<BR>");
document.write('document.URL: ' + document.URL + "<BR>");
//-->
</script>

</tt>

<table><tr><td><img src="/art/t.gif" width=1 height=1 alt=""></td></tr></table>
</td></tr></table>

</BODY>
</HTML>

Commentaire de nathan le 15/07/2004 16:22:12

tres bon script je l'utilise maintenant....

Commentaire de Matt 261 le 18/07/2006 19:44:56

Salut,

un truc qui serait sympa, se serait de garder uniquement la valeur à True.

Voila
@+

Matt

Commentaire de GUIDARK le 10/02/2007 00:07:00

Ok mais je vois pas l'intérêt de coder un tel script en js...
moi jdi vive le php

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,201 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales