I'm afraid I have to agree with Doug here.

The reason for detecting the various browsers is for COMPATIBILITY.  It is not intended to be used as a giant test to see which variant of a spoofed AOL browser they are using.

If you can find an example of the API working on a specific platform that requires a few browser specific fixes, send em on in.  THEN, and ONLY THEN is there any point in detecting the browser.  Otherwise we are just simply wasting our time detecting which non-compliant browser they are using and they won't be able to see your page anyway.

Doug Melvin wrote:

oh yes!!
let's make broswer.js three time larger!!
Why didn't I think of that..

(note heavy sense of sarcasm)
----- Original Message -----
From: "nobody" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Monday, March 12, 2001 3:34 AM
Subject: [Dynapi-Dev] [ dynapi-Patches-407882 ] Browser.js Recommended
Upgrade

> Patches #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: Open
> Priority: 5
> Submitted By: Nobody/Anonymous
> Assigned to: Nobody/Anonymous
> 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); //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

---
Outgoing mail is certified Virus Free by AVG Free Edition
Download at: http://www.grisoft.com/html/us_index.cfm
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.237 / Virus Database: 115 - Release Date: 3/7/01

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

--
Michael Pemberton
[EMAIL PROTECTED]
ICQ: 12107010
 

Reply via email to