Posted By

jonhenshaw on 08/01/06


Tagged


Versions (?)

Who likes this?

19 people have marked this snippet as a favorite

alvaroisorna
postNuKe
panatlantica
hxseven
powerkan
dmarten
basicmagic
clapfouine
Runtheball
tmarkiewicz
vali29
visuallyspun
joshontheweb
masondixon
FreaKzero
dekehooper
guo3823538
banjomamo
surekin


Browser Detect Lite v2.1


 / Published in: JavaScript
 

URL: http://bigi.co.il/libs/common/browserdetect_lite

Browser Detect Lite v2.1 http://www.dithered.com/javascript/browser_detect/index.html modified by Chris Nott ([email protected] - remove NOSPAM)

modified by Michael Lovitt to include OmniWeb and Dreamcast

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

Report this snippet  

You need to login to post a comment.