| 1 |
// Browser Detect Lite v2.1
|
| 2 |
// http://www.dithered.com/javascript/browser_detect/index.html
|
| 3 |
// modified by Chris Nott (chris@NOSPAMdithered.com - remove NOSPAM)
|
| 4 |
//
|
| 5 |
// modified by Michael Lovitt to include OmniWeb and Dreamcast
|
| 6 |
|
| 7 |
function BrowserDetectLite() {
|
| 8 |
var ua = navigator.userAgent.toLowerCase();
|
| 9 |
this.ua = ua;
|
| 10 |
|
| 11 |
// browser name
|
| 12 |
this.isGecko = (ua.indexOf('gecko') != -1);
|
| 13 |
this.isMozilla = (this.isGecko && ua.indexOf("gecko/") + 14 == ua.length);
|
| 14 |
this.isNS = ( (this.isGecko) ? (ua.indexOf('netscape') != -1) : ( (ua.indexOf('mozilla') != -1) && (ua.indexOf('spoofer') == -1) && (ua.indexOf('compatible') == -1) && (ua.indexOf('opera') == -1) && (ua.indexOf('webtv') == -1) && (ua.indexOf('hotjava') == -1) ) );
|
| 15 |
this.isIE = ( (ua.indexOf("msie") != -1) && (ua.indexOf("opera") == -1) && (ua.indexOf("webtv") == -1) );
|
| 16 |
this.isOpera = (ua.indexOf("opera") != -1);
|
| 17 |
this.isKonqueror = (ua.indexOf("konqueror") != -1);
|
| 18 |
this.isIcab = (ua.indexOf("icab") != -1);
|
| 19 |
this.isAol = (ua.indexOf("aol") != -1);
|
| 20 |
this.isWebtv = (ua.indexOf("webtv") != -1);
|
| 21 |
this.isOmniweb = (ua.indexOf("omniweb") != -1);
|
| 22 |
this.isDreamcast = (ua.indexOf("dreamcast") != -1);
|
| 23 |
|
| 24 |
// spoofing and compatible browsers
|
| 25 |
this.isIECompatible = ( (ua.indexOf("msie") != -1) && !this.isIE);
|
| 26 |
this.isNSCompatible = ( (ua.indexOf("mozilla") != -1) && !this.isNS && !this.isMozilla);
|
| 27 |
|
| 28 |
// browser version
|
| 29 |
this.versionMinor = parseFloat(navigator.appVersion);
|
| 30 |
|
| 31 |
// correct version number for NS6+
|
| 32 |
if (this.isNS && this.isGecko) {
|
| 33 |
this.versionMinor = parseFloat( ua.substring( ua.lastIndexOf('/') + 1 ) );
|
| 34 |
}
|
| 35 |
|
| 36 |
// correct version number for IE4+
|
| 37 |
else if (this.isIE && this.versionMinor >= 4) {
|
| 38 |
this.versionMinor = parseFloat( ua.substring( ua.indexOf('msie ') + 5 ) );
|
| 39 |
}
|
| 40 |
|
| 41 |
// correct version number for Opera
|
| 42 |
else if (this.isOpera) {
|
| 43 |
if (ua.indexOf('opera/') != -1) {
|
| 44 |
this.versionMinor = parseFloat( ua.substring( ua.indexOf('opera/') + 6 ) );
|
| 45 |
}
|
| 46 |
else {
|
| 47 |
this.versionMinor = parseFloat( ua.substring( ua.indexOf('opera ') + 6 ) );
|
| 48 |
}
|
| 49 |
}
|
| 50 |
|
| 51 |
// correct version number for Konqueror
|
| 52 |
else if (this.isKonqueror) {
|
| 53 |
this.versionMinor = parseFloat( ua.substring( ua.indexOf('konqueror/') + 10 ) );
|
| 54 |
}
|
| 55 |
|
| 56 |
// correct version number for iCab
|
| 57 |
else if (this.isIcab) {
|
| 58 |
if (ua.indexOf('icab/') != -1) {
|
| 59 |
this.versionMinor = parseFloat( ua.substring( ua.indexOf('icab/') + 6 ) );
|
| 60 |
}
|
| 61 |
else {
|
| 62 |
this.versionMinor = parseFloat( ua.substring( ua.indexOf('icab ') + 6 ) );
|
| 63 |
}
|
| 64 |
}
|
| 65 |
|
| 66 |
// correct version number for WebTV
|
| 67 |
else if (this.isWebtv) {
|
| 68 |
this.versionMinor = parseFloat( ua.substring( ua.indexOf('webtv/') + 6 ) );
|
| 69 |
}
|
| 70 |
|
| 71 |
this.versionMajor = parseInt(this.versionMinor);
|
| 72 |
this.geckoVersion = ( (this.isGecko) ? ua.substring( (ua.lastIndexOf('gecko/') + 6), (ua.lastIndexOf('gecko/') + 14) ) : -1 );
|
| 73 |
|
| 74 |
// platform
|
| 75 |
this.isWin = (ua.indexOf('win') != -1);
|
| 76 |
this.isWin32 = (this.isWin && ( ua.indexOf('95') != -1 || ua.indexOf('98') != -1 || ua.indexOf('nt') != -1 || ua.indexOf('win32') != -1 || ua.indexOf('32bit') != -1) );
|
| 77 |
this.isMac = (ua.indexOf('mac') != -1);
|
| 78 |
this.isUnix = (ua.indexOf('unix') != -1 || ua.indexOf('linux') != -1 || ua.indexOf('sunos') != -1 || ua.indexOf('bsd') != -1 || ua.indexOf('x11') != -1)
|
| 79 |
|
| 80 |
// specific browser shortcuts
|
| 81 |
this.isNS4x = (this.isNS && this.versionMajor == 4);
|
| 82 |
this.isNS40x = (this.isNS4x && this.versionMinor < 4.5);
|
| 83 |
this.isNS47x = (this.isNS4x && this.versionMinor >= 4.7);
|
| 84 |
this.isNS4up = (this.isNS && this.versionMinor >= 4);
|
| 85 |
this.isNS6x = (this.isNS && this.versionMajor == 6);
|
| 86 |
this.isNS6up = (this.isNS && this.versionMajor >= 6);
|
| 87 |
|
| 88 |
this.isIE4x = (this.isIE && this.versionMajor == 4);
|
| 89 |
this.isIE4up = (this.isIE && this.versionMajor >= 4);
|
| 90 |
this.isIE5x = (this.isIE && this.versionMajor == 5);
|
| 91 |
this.isIE55 = (this.isIE && this.versionMinor == 5.5);
|
| 92 |
this.isIE5up = (this.isIE && this.versionMajor >= 5);
|
| 93 |
this.isIE6x = (this.isIE && this.versionMajor == 6);
|
| 94 |
this.isIE6up = (this.isIE && this.versionMajor >= 6);
|
| 95 |
|
| 96 |
this.isIE4xMac = (this.isIE4x && this.isMac);
|
| 97 |
}
|
| 98 |
var browser = new BrowserDetectLite();
|