JAVASCRIPT   75

browserdetect_lite.js

Guest on 23rd August 2021 05:08:36 PM

  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();

Raw Paste


Login or Register to edit or fork this paste. It's free.