Browser.js 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. //sniffer v1
  2. //Based on Ultimate client-side JavaScript client sniff
  3. //(C) Netscape Communications 1999. Permission granted to reuse and distribute.
  4. // convert all characters to lowercase to simplify testing
  5. var agt = navigator.userAgent.toLowerCase();
  6. // *** BROWSER VERSION ***
  7. // Note: On IE5, these return 4, so use is.ie5up to detect IE5
  8. // or is.ie6up to detect IE6.
  9. is_major = parseInt(navigator.appVersion);
  10. is_minor = parseFloat(navigator.appVersion);
  11. // Note: Opera and WebTV spoof Navigator. We do strict client detection.
  12. // If you want to allow spoofing, take out the tests for opera and webtv.
  13. is_moz = ((agt.indexOf('mozilla') != -1) && (agt.indexOf('spoofer')==-1)
  14. && (agt.indexOf('compatible') == -1) && (agt.indexOf('opera')==-1)
  15. && (agt.indexOf('webtv')==-1) && (agt.indexOf('hotjava')==-1));
  16. is_moz2 = (is_moz && (is_major == 2));
  17. is_moz3 = (is_moz && (is_major == 3));
  18. is_moz4 = (is_moz && (is_major == 4));
  19. //is_moz4up = (is_moz && (is_major >= 4));
  20. //is_moz5 = (is_moz && (is_major == 5));
  21. //is_moz5up = (is_moz && (is_major >= 5));
  22. is_gecko = (agt.indexOf('gecko') != -1);
  23. is_firefox = (agt.indexOf('firefox') != -1);
  24. //is_firefox1 = (agt.indexOf('firefox/1.0') != -1);
  25. //is_firefox1up = (is_firefox && !is_firefox1);
  26. //is_firefox1_5 = (agt.indexOf('firefox/1.5') != -1);
  27. //is_firefox1_5up = (is_firefox1up && !is_firefox1_5);
  28. //is_firefox2 = (agt.indexOf('firefox/2.') != -1);
  29. //is_firefox2up = (is_firefox1_5up && !is_firefox2);
  30. //
  31. //is_seamonkey = (agt.indexOf('seamonkey') != -1);
  32. //is_seamonkey1 = (agt.indexOf('seamonkey/1') != -1);
  33. is_nav2 = is_moz2;
  34. is_nav3 = is_moz3;
  35. is_nav4 = is_moz4;
  36. is_nav4up = (is_nav4 || ((is_major >= 4) && (agt.indexOf("netscape") != -1)));
  37. is_nav = (is_nav2 || is_nav3 || is_nav4);
  38. //is_nav6 = (is_moz && (is_major == 5) && (agt.indexOf("netscape6/6") != -1));
  39. //is_nav6up = (is_moz && (is_major >= 5) && (agt.indexOf("netscape") != -1));
  40. //is_nav7 = (is_moz && (is_major == 5) && (agt.indexOf("netscape/7") != -1));
  41. //is_nav7up = (is_nav6up && !is_nav6);
  42. //is_nav8 = (is_moz && (is_major == 5) && (agt.indexOf("netscape/8") != -1));
  43. //is_nav8up = (is_nav7up && !is_nav7);
  44. //is_navonly = (is_nav && ((agt.indexOf(";nav") != -1) || (agt.indexOf("; nav") != -1)) );
  45. is_mozilla = (is_moz && is_gecko);
  46. is_mozilla1 = (is_moz && is_gecko && (agt.indexOf("rv:1") != -1));
  47. is_ie = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));
  48. //is_ie3 = (is_ie && (is_major < 4));
  49. //is_ie4 = (is_ie && (is_major == 4) && (agt.indexOf("msie 4") != -1) );
  50. //is_ie4up = (is_ie && (is_major >= 4));
  51. //is_ie5 = (is_ie && (is_major == 4) && (agt.indexOf("msie 5.0") != -1) );
  52. //is_ie5up = (is_ie4up && !is_ie4);
  53. //is_ie5_5 = (is_ie && (is_major == 4) && (agt.indexOf("msie 5.5") != -1));
  54. //is_ie5_5up = (is_ie5up && !is_ie5);
  55. is_ie6 = (is_ie && (is_major == 4) && (agt.indexOf("msie 6.") != -1) );
  56. //is_ie6up = (is_ie5_5up && !is_ie5_5);
  57. is_ie7 = (is_ie && (is_major == 4) && (agt.indexOf("msie 7.") != -1) );
  58. //is_ie7up = (is_ie6up && !is_ie6);
  59. is_ie8 = (is_ie && (is_major == 4) && (agt.indexOf("msie 8.") != -1) );
  60. is_ie9 = (is_ie && (is_major == 5) && (agt.indexOf("msie 9.") != -1) );
  61. //is_msn = (is_ie4up && (agt.indexOf("msn") != -1));
  62. //is_msn2_5 = (is_msn && (agt.indexOf("msn 2.5") != -1));
  63. //is_msn2_6 = (is_msn && (agt.indexOf("msn 2.6") != -1));
  64. //is_aol = (agt.indexOf("aol") != -1);
  65. //is_aol3 = (is_aol && is_ie3);
  66. //is_aol4ie3 = (is_aol && is_ie3);
  67. //is_aol4ie4 = (is_aol && is_ie4);
  68. //is_aol4 = (is_aol4ie3 || is_aol4ie4);
  69. //is_aol5 = (agt.indexOf("aol 5") != -1);
  70. //is_aol6 = (agt.indexOf("aol 6") != -1);
  71. //is_aol7 = ((agt.indexOf("aol 7") != -1) || agt.indexOf("aol/7") != -1);
  72. //is_aol8 = ((agt.indexOf("aol 8") != -1) || agt.indexOf("aol/8") != -1);
  73. //is_aol9 = ((agt.indexOf("aol 9") != -1) || agt.indexOf("aol/9") != -1);
  74. is_opera = (agt.indexOf("opera") != -1);
  75. //is_opera2 = (agt.indexOf("opera 2") != -1 || agt.indexOf("opera/2") != -1);
  76. //is_opera3 = (agt.indexOf("opera 3") != -1 || agt.indexOf("opera/3") != -1);
  77. //is_opera4 = (agt.indexOf("opera 4") != -1 || agt.indexOf("opera/4") != -1);
  78. //is_opera5 = (agt.indexOf("opera 5") != -1 || agt.indexOf("opera/5") != -1);
  79. //is_opera5up = (is_opera && !is_opera2 && !is_opera3 && !is_opera4);
  80. //is_opera6 = (agt.indexOf("opera 6") != -1 || agt.indexOf("opera/6") != -1);
  81. //is_opera6up = (is_opera5up && !is_opera5);
  82. //is_opera7 = (agt.indexOf("opera 7") != -1 || agt.indexOf("opera/7") != -1);
  83. //is_opera7up = (is_opera6up && !is_opera6);
  84. //is_opera8 = (agt.indexOf("opera 8.0") != -1 || agt.indexOf("opera/8.0") != -1);
  85. //is_opera8up = (is_opera7up && !is_opera7);
  86. //is_opera8_5 = (agt.indexOf("opera 8.5") != -1 || agt.indexOf("opera/8.5") != -1);
  87. //is_opera8_5up = (is_opera8up && !is_opera8);
  88. //is_opera9 = (agt.indexOf("opera 9") != -1 || agt.indexOf("opera/9") != -1);
  89. //is_opera9up = (is_opera8_5up && !is_opera8_5);
  90. //is_webtv = (agt.indexOf("webtv") != -1);
  91. //is_TVNavigator = ((agt.indexOf("navio") != -1) || (agt.indexOf("navio_aoltv") != -1));
  92. //is_AOLTV = is_TVNavigator;
  93. //is_hotjava = (agt.indexOf("hotjava") != -1);
  94. //is_hotjava3 = (is_hotjava && (is_major == 3));
  95. //is_hotjava3up = (is_hotjava && (is_major >= 3));
  96. //is_konqueror = (agt.indexOf("konqueror") != -1);
  97. is_safari = ((agt.indexOf('safari')!=-1) /*&& (agt.indexOf('mac')!=-1)*/);
  98. //is_khtml = (this.safari || this.konqueror);
  99. is_chrome = (agt.indexOf("chrome")!=-1) ? true:false;
  100. is_crOs = is_chrome && (agt.indexOf("csos")!=-1);
  101. is_chromeFrame = is_chrome && __chromeFrame;
  102. //webkit Based
  103. is_webkit = is_safari || is_chrome;
  104. // FOR TABLET PC
  105. is_ipad = (is_safari && (agt.indexOf('ipad')!=-1));
  106. // FOR SMART PHONE
  107. is_iphone = (is_safari && (agt.indexOf('iphone')!=-1));
  108. is_apple = (is_ipad || is_iphone);
  109. is_android = (agt.indexOf('android')!=-1);
  110. is_opera_mini = (agt.indexOf('opera mini')!=-1);
  111. is_smartphone = (is_webkit || is_iphone || is_android || is_opera_mini || is_ipad/* TODO... etc ... */);