detect.js 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. var BrowserDetect = {
  2. init: function () {
  3. this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
  4. this.version = this.searchVersion(navigator.userAgent)
  5. || this.searchVersion(navigator.appVersion)
  6. || "an unknown version";
  7. // 설치된 IE 버전(IE7- : 0, IE8 : 4, IE9 : 5)
  8. this.tridentVersion = this.searchTridentVersion(navigator.userAgent)
  9. || "0";
  10. this.OS = this.searchString(this.dataOS) || "an unknown OS";
  11. },
  12. searchString: function (data) {
  13. for (var i=0;i<data.length;i++) {
  14. var dataString = data[i].string;
  15. var dataProp = data[i].prop;
  16. this.versionSearchString = data[i].versionSearch || data[i].identity;
  17. this.tridentVersionSearchString = data[i].tridentVersionSearch || data[i].versionSearch || data[i].identity;
  18. if (dataString) {
  19. if (dataString.indexOf(data[i].subString) != -1)
  20. return data[i].identity;
  21. }
  22. else if (dataProp)
  23. return data[i].identity;
  24. }
  25. },
  26. searchVersion: function (dataString) {
  27. var index = dataString.indexOf(this.versionSearchString);
  28. if (index == -1) return;
  29. return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
  30. },
  31. // IE8+ userAgent 'Trident'속성 추가됨.
  32. searchTridentVersion: function (dataString) {
  33. var index = dataString.indexOf(this.tridentVersionSearchString);
  34. if (index == -1) return;
  35. return parseFloat(dataString.substring(index+this.tridentVersionSearchString.length+1));
  36. },
  37. dataBrowser: [
  38. {
  39. string: navigator.userAgent,
  40. subString: "Chrome",
  41. identity: "Chrome"
  42. },
  43. { string: navigator.userAgent,
  44. subString: "OmniWeb",
  45. versionSearch: "OmniWeb/",
  46. identity: "OmniWeb"
  47. },
  48. {
  49. string: navigator.vendor,
  50. subString: "Apple",
  51. identity: "Safari",
  52. versionSearch: "Version"
  53. },
  54. {
  55. prop: window.opera,
  56. identity: "Opera"
  57. },
  58. {
  59. string: navigator.vendor,
  60. subString: "iCab",
  61. identity: "iCab"
  62. },
  63. {
  64. string: navigator.vendor,
  65. subString: "KDE",
  66. identity: "Konqueror"
  67. },
  68. {
  69. string: navigator.userAgent,
  70. subString: "Firefox",
  71. identity: "Firefox"
  72. },
  73. {
  74. string: navigator.vendor,
  75. subString: "Camino",
  76. identity: "Camino"
  77. },
  78. { // for newer Netscapes (6+)
  79. string: navigator.userAgent,
  80. subString: "Netscape",
  81. identity: "Netscape"
  82. },
  83. {
  84. string: navigator.userAgent,
  85. subString: "MSIE",
  86. identity: "Explorer",
  87. versionSearch: "MSIE",
  88. tridentVersionSearch: "Trident"
  89. },
  90. {
  91. string: navigator.userAgent,
  92. subString: "Gecko",
  93. identity: "Mozilla",
  94. versionSearch: "rv"
  95. },
  96. { // for older Netscapes (4-)
  97. string: navigator.userAgent,
  98. subString: "Mozilla",
  99. identity: "Netscape",
  100. versionSearch: "Mozilla"
  101. }
  102. ],
  103. dataOS : [
  104. {
  105. string: navigator.platform,
  106. subString: "Win",
  107. identity: "Windows"
  108. },
  109. {
  110. string: navigator.platform,
  111. subString: "Mac",
  112. identity: "Mac"
  113. },
  114. {
  115. string: navigator.userAgent,
  116. subString: "iPhone",
  117. identity: "iPhone/iPod"
  118. },
  119. {
  120. string: navigator.platform,
  121. subString: "Linux",
  122. identity: "Linux"
  123. }
  124. ]
  125. };
  126. BrowserDetect.init();
  127. function isIE() {
  128. //alert(BrowserDetect.browser);
  129. return (BrowserDetect.browser == "Explorer");
  130. }
  131. function getBrowserVersion() {
  132. return (BrowserDetect.version);
  133. }
  134. // IE호환성보기에서도 설치된 IE version을 확인할 수 있도록 'Trident' 체크
  135. // IE8 : 4, IE9 : 5
  136. function getBrowserTridentVersion() {
  137. return (BrowserDetect.tridentVersion);
  138. }