jquery-browser.js 3.4 KB

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