browser.js 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. (function(jQuery) {
  2. if (jQuery.browser) return;
  3. jQuery.browser = {};
  4. jQuery.browser.mozilla = false;
  5. jQuery.browser.webkit = false;
  6. jQuery.browser.opera = false;
  7. jQuery.browser.msie = false;
  8. var nAgt = navigator.userAgent;
  9. jQuery.browser.name = navigator.appName;
  10. jQuery.browser.fullVersion = '' + parseFloat(navigator.appVersion);
  11. jQuery.browser.majorVersion = parseInt(navigator.appVersion, 10);
  12. var nameOffset, verOffset, ix;
  13. // In Opera, the true version is after "Opera" or after "Version"
  14. if ((verOffset = nAgt.indexOf("Opera")) != -1) {
  15. jQuery.browser.opera = true;
  16. jQuery.browser.name = "Opera";
  17. jQuery.browser.fullVersion = nAgt.substring(verOffset + 6);
  18. if ((verOffset = nAgt.indexOf("Version")) != -1)
  19. jQuery.browser.fullVersion = nAgt.substring(verOffset + 8);
  20. }
  21. // In MSIE, the true version is after "MSIE" in userAgent
  22. else if ((verOffset = nAgt.indexOf("MSIE")) != -1) {
  23. jQuery.browser.msie = true;
  24. jQuery.browser.name = "Microsoft Internet Explorer";
  25. jQuery.browser.fullVersion = nAgt.substring(verOffset + 5);
  26. }
  27. // In Chrome, the true version is after "Chrome"
  28. else if ((verOffset = nAgt.indexOf("Chrome")) != -1) {
  29. jQuery.browser.webkit = true;
  30. jQuery.browser.name = "Chrome";
  31. jQuery.browser.fullVersion = nAgt.substring(verOffset + 7);
  32. }
  33. // In Safari, the true version is after "Safari" or after "Version"
  34. else if ((verOffset = nAgt.indexOf("Safari")) != -1) {
  35. jQuery.browser.webkit = true;
  36. jQuery.browser.name = "Safari";
  37. jQuery.browser.fullVersion = nAgt.substring(verOffset + 7);
  38. if ((verOffset = nAgt.indexOf("Version")) != -1)
  39. jQuery.browser.fullVersion = nAgt.substring(verOffset + 8);
  40. }
  41. // In Firefox, the true version is after "Firefox"
  42. else if ((verOffset = nAgt.indexOf("Firefox")) != -1) {
  43. jQuery.browser.mozilla = true;
  44. jQuery.browser.name = "Firefox";
  45. jQuery.browser.fullVersion = nAgt.substring(verOffset + 8);
  46. }
  47. // In most other browsers, "name/version" is at the end of userAgent
  48. else if ((nameOffset = nAgt.lastIndexOf(' ') + 1) <
  49. (verOffset = nAgt.lastIndexOf('/'))) {
  50. jQuery.browser.name = nAgt.substring(nameOffset, verOffset);
  51. jQuery.browser.fullVersion = nAgt.substring(verOffset + 1);
  52. if (jQuery.browser.name.toLowerCase() == jQuery.browser.name.toUpperCase()) {
  53. jQuery.browser.name = navigator.appName;
  54. }
  55. }
  56. // trim the fullVersion string at semicolon/space if present
  57. if ((ix = jQuery.browser.fullVersion.indexOf(";")) != -1)
  58. jQuery.browser.fullVersion = jQuery.browser.fullVersion.substring(0, ix);
  59. if ((ix = jQuery.browser.fullVersion.indexOf(" ")) != -1)
  60. jQuery.browser.fullVersion = jQuery.browser.fullVersion.substring(0, ix);
  61. jQuery.browser.majorVersion = parseInt('' + jQuery.browser.fullVersion, 10);
  62. if (isNaN(jQuery.browser.majorVersion)) {
  63. jQuery.browser.fullVersion = '' + parseFloat(navigator.appVersion);
  64. jQuery.browser.majorVersion = parseInt(navigator.appVersion, 10);
  65. }
  66. jQuery.browser.version = jQuery.browser.majorVersion;
  67. })(jQuery);