Woah! That was one advanced Browser class! I reckon it's abit over the top for
reglar usage, but it could be implemented as an alternative Browser class. (Eg.
browser_advanced.js). It should however be compatible with the original Browser
class...
Like this:
function Browser () {
     var agt=navigator.userAgent.toLowerCase();
     this.version=navigator.appVersion;
     this.v=this.major=parseInt(this.version);
     this.minor=parseFloat(navigator.appVersion);

this.ns=((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.ns4=(this.nav&&(this.major==4));
     this.ns6=this.ns5=(this.nav&&(this.major==5));
     this.gecko=(agt.indexOf('gecko')!=-1);
     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.ie55=(this.ie&&(this.major==4)&&(agt.indexOf("msie 5.5")!=-1));
     this.ie5up =(this.ie&&!this.ie3&&!this.ie4);
     this.opera=(agt.indexOf("opera")!=-1);

this.dom=((document.createRange&&(document.createRange().createContextualFragment))?true:false);
     this.win=((agt.indexOf("win")!=-1)||(agt.indexOf("16bit")!=-1) );
     this.win95=((agt.indexOf("win95")!=-1)||(agt.indexOf("windows 95")!=-1));

this.win16=((agt.indexOf("win16")!=-1)||(agt.indexOf("16bit")!=-1)||(agt.indexOf("windows

3.1")!=-1)||(agt.indexOf("windows 16-bit")!=-1));
     this.win3_1=((agt.indexOf("windows
3.1")!=-1)||(agt.indexOf("win16")!=-1)||(agt.indexOf("windows 16-bit")!=-1));
     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);
     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);
     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));
     if (this.win) this.platform="win32";
     else if (this.mac) this.platform="mac";
     else this.platform="other";
}
is = DynAPI.browser = new Browser();

Anders Norås



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

Reply via email to