this again?
looks pretty complete, but again, it has FAR more than we need
----- Original Message -----
From: <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Saturday, March 24, 2001 10:37 PM
Subject: [Dynapi-Dev] [ dynapi-Patches-407882 ] Browser.js Recommended
Upgrade


> Patches item #407882, was updated on 2001-03-12 03:34
> You can respond by visiting:
>
http://sourceforge.net/tracker/?func=detail&atid=305757&aid=407882&group_id=
5757
>
> Category: DynAPI-Core
> Group: None
> >Status: Closed
> Priority: 5
> Submitted By: Nobody/Anonymous (nobody)
> Assigned to: Nobody/Anonymous (nobody)
> Summary: Browser.js Recommended Upgrade
>
> Initial Comment:
> The following is a recommendation for changing the
> Browser.js code.  This should fix several bugs which
> currently exist which affect the detection of Opera,
> MSIE, win32, and mac systems.  It would obviously
> require making changes throughout the API system due
> to changes being made in variables.
>
> -----Code Follows-----
>
>
> /*
>    DynAPI Distribution
>    Browser Class
>
>    The DynAPI Distribution is distributed under the
> terms of the GNU LGPL license.
> */
>
> function Browser ()
> {  // convert all characters to lowercase to simplify
> testing
>    var agt=navigator.userAgent.toLowerCase();
>
>    // *** BROWSER VERSION ***
>    this.major = parseInt(navigator.appVersion);
>    this.minor = parseFloat(navigator.appVersion);
>
>    // Note: Opera and WebTV spoof.  Perform strict
> client detection to prevent this.
>    this.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));
>    this.nav4 = (this.nav && (this.major == 4));
>    this.nav6 = (this.nav && (this.major == 5));
>    this.gecko = (agt.indexOf('gecko') != -1); // Test
> for Gecko Engine
>
>    this.ie     = ((agt.indexOf("msie") != -1) &&
> (agt.indexOf("opera") == -1));
>    this.ie4    = (this.ie && (this.major == 4) &&
> (agt.indexOf("msie 5")==-1) );
>    this.ie5    = (this.ie && (this.major == 4) &&
> (agt.indexOf("msie 5.0")!=-1) );
>    this.ie5_5  = (this.ie && (this.major == 4) &&
> (agt.indexOf("msie 5.5") !=-1));
>    this.ie5up  = (this.ie  && !this.ie3 && !
> this.ie4); file://Recommend using this for loops to detect
> msie 5+
>
>    this.opera = (agt.indexOf("opera") != -1);
>
>    // *** PLATFORM ***
>    this.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.
>    this.win95 = ((agt.indexOf("win95")!=-1) ||
> (agt.indexOf("windows 95")!=-1));
>
>    // is this a 16 bit compiled version?
>    this.win16 = ((agt.indexOf("win16")!=-1) ||
>                 (agt.indexOf("16bit")!=-1) ||
> (agt.indexOf("windows 3.1")!=-1) ||
>                 (agt.indexOf("windows 16-bit")!=-
> 1) );
>
>    this.win31 = ((agt.indexOf("windows 3.1")!=-1) ||
> (agt.indexOf("win16")!=-1) ||
>                 (agt.indexOf("windows 16-bit")!=-1));
>
>    // 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".
>    this.win98 = ((agt.indexOf("win98")!=-1) ||
> (agt.indexOf("windows 98")!=-1));
>    this.winnt = ((agt.indexOf("winnt")!=-1) ||
> (agt.indexOf("windows nt")!=-1));
>
>    this.winme = ((agt.indexOf("win 9x 4.90")!=-1));
>    this.win2k = ((agt.indexOf("windows nt 5.0")!=-1));
>
>    this.win32 = (this.winme || this.win2k ||
> this.win95 || this.winnt || this.win98 ||
>                 ((this.major >= 4) &&
> (navigator.platform == "Win32")) ||
>                 (agt.indexOf("win32")!=-1) ||
> (agt.indexOf("32bit")!=-1));
>
>    this.os2   = ((agt.indexOf("os/2")!=-1) ||
>                 (navigator.appVersion.indexOf("OS/2")!
> =-1) ||
>                 (agt.indexOf("ibm-webexplorer")!=-1));
>
>    this.mac    = (agt.indexOf("mac")!=-1);
>    this.mac68k = (this.mac && ((agt.indexOf("68k")!=-
> 1) ||
>                  (agt.indexOf("68000")!=-1)));
>    this.macppc = (this.mac && ((agt.indexOf("ppc")!=-
> 1) ||
>                  (agt.indexOf("powerpc")!=-1)));
>    this.macos  = (this.mac || this.mac68k ||
> this.macppc);
>
>    this.sun   = (agt.indexOf("sunos")!=-1);
>    this.sun4  = (agt.indexOf("sunos 4")!=-1);
>    this.sun5  = (agt.indexOf("sunos 5")!=-1);
>    this.suni86= (this.sun && (agt.indexOf("i86")!=-1));
>    this.irix  = (agt.indexOf("irix") !=-1);    // SGI
>    this.irix5 = (agt.indexOf("irix 5") !=-1);
>    this.irix6 = ((agt.indexOf("irix 6") !=-1) ||
> (agt.indexOf("irix6") !=-1));
>    this.hpux  = (agt.indexOf("hp-ux")!=-1);
>    this.hpux9 = (this.hpux && (agt.indexOf("09.")!=-
> 1));
>    this.hpux10= (this.hpux && (agt.indexOf("10.")!=-
> 1));
>    this.aix   = (agt.indexOf("aix") !=-1);      // IBM
>    this.aix1  = (agt.indexOf("aix 1") !=-1);
>    this.aix2  = (agt.indexOf("aix 2") !=-1);
>    this.aix3  = (agt.indexOf("aix 3") !=-1);
>    this.aix4  = (agt.indexOf("aix 4") !=-1);
>    this.linux = (agt.indexOf("inux")!=-1);
>    this.sco   = (agt.indexOf("sco")!=-1) ||
> (agt.indexOf("unix_sv")!=-1);
>    this.unixware = (agt.indexOf("unix_system_v")!=-1);
>    this.mpras    = (agt.indexOf("ncr")!=-1);
>    this.reliant  = (agt.indexOf("reliantunix")!=-1);
>    this.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));
>    this.sinix = (agt.indexOf("sinix")!=-1);
>    this.freebsd = (agt.indexOf("freebsd")!=-1);
>    this.bsd = (agt.indexOf("bsd")!=-1);
>    this.unix  = ((agt.indexOf("x11")!=-1) || this.sun
> || this.irix || this.hpux ||
>                 this.sco ||this.unixware || this.mpras
> || this.reliant ||
>                 this.dec || this.sinix || this.aix ||
> this.linux || this.bsd || this.freebsd);
>
>    this.vms   = ((agt.indexOf("vax")!=-1) ||
> (agt.indexOf("openvms")!=-1));
> }
>
> is = DynAPI.browser = new Browser();
>
>
> ----------------------------------------------------------------------
>
> You can respond by visiting:
>
http://sourceforge.net/tracker/?func=detail&atid=305757&aid=407882&group_id=
5757
>
> _______________________________________________
> Dynapi-Dev mailing list
> [EMAIL PROTECTED]
> http://lists.sourceforge.net/lists/listinfo/dynapi-dev


_______________________________________________
Dynapi-Dev mailing list
[EMAIL PROTECTED]
http://lists.sourceforge.net/lists/listinfo/dynapi-dev

Reply via email to