library.js 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. /* *****************************************************************************************************************
  2. o Don't forget to include the line BrowserDetect.init() in your code to populate the BrowserDetect object.
  3. You can then pull out the browser, version and OS with
  4. BrowserDetect.browser
  5. BrowserDetect.version
  6. BrowserDetect.OS
  7. ***************************************************************************************************************** */
  8. var BrowserDetect = {
  9. init: function () {
  10. this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
  11. this.version = this.searchVersion(navigator.userAgent)
  12. || this.searchVersion(navigator.appVersion)
  13. || "an unknown version";
  14. this.OS = this.searchString(this.dataOS) || "an unknown OS";
  15. },
  16. searchString: function (data) {
  17. for (var i=0;i<data.length;i++) {
  18. var dataString = data[i].string;
  19. var dataProp = data[i].prop;
  20. this.versionSearchString = data[i].versionSearch || data[i].identity;
  21. if (dataString) {
  22. if (dataString.indexOf(data[i].subString) != -1)
  23. return data[i].identity;
  24. }
  25. else if (dataProp)
  26. return data[i].identity;
  27. }
  28. },
  29. searchVersion: function (dataString) {
  30. var index = dataString.indexOf(this.versionSearchString);
  31. if (index == -1) return;
  32. return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
  33. },
  34. dataBrowser: [
  35. {
  36. string: navigator.userAgent,
  37. subString: "Chrome",
  38. identity: "Chrome"
  39. },
  40. { string: navigator.userAgent,
  41. subString: "OmniWeb",
  42. versionSearch: "OmniWeb/",
  43. identity: "OmniWeb"
  44. },
  45. {
  46. string: navigator.vendor,
  47. subString: "Apple",
  48. identity: "Safari",
  49. versionSearch: "Version"
  50. },
  51. {
  52. prop: window.opera,
  53. identity: "Opera"
  54. },
  55. {
  56. string: navigator.vendor,
  57. subString: "iCab",
  58. identity: "iCab"
  59. },
  60. {
  61. string: navigator.vendor,
  62. subString: "KDE",
  63. identity: "Konqueror"
  64. },
  65. {
  66. string: navigator.userAgent,
  67. subString: "Firefox",
  68. identity: "Firefox"
  69. },
  70. {
  71. string: navigator.vendor,
  72. subString: "Camino",
  73. identity: "Camino"
  74. },
  75. { // for newer Netscapes (6+)
  76. string: navigator.userAgent,
  77. subString: "Netscape",
  78. identity: "Netscape"
  79. },
  80. {
  81. string: navigator.userAgent,
  82. subString: "MSIE",
  83. identity: "Explorer",
  84. versionSearch: "MSIE"
  85. },
  86. {
  87. string: navigator.userAgent,
  88. subString: "Gecko",
  89. identity: "Mozilla",
  90. versionSearch: "rv"
  91. },
  92. { // for older Netscapes (4-)
  93. string: navigator.userAgent,
  94. subString: "Mozilla",
  95. identity: "Netscape",
  96. versionSearch: "Mozilla"
  97. }
  98. ],
  99. dataOS : [
  100. {
  101. string: navigator.platform,
  102. subString: "Win",
  103. identity: "Windows"
  104. },
  105. {
  106. string: navigator.platform,
  107. subString: "Mac",
  108. identity: "Mac"
  109. },
  110. {
  111. string: navigator.userAgent,
  112. subString: "iPhone",
  113. identity: "iPhone/iPod"
  114. },
  115. {
  116. string: navigator.platform,
  117. subString: "Linux",
  118. identity: "Linux"
  119. }
  120. ]
  121. };
  122. function rnd(threshold)
  123. {
  124. return Math.floor(Math.random()*threshold) + 1;
  125. };
  126. function trim(s) {
  127. return s.replace(/^\s+|\s+$/g,"");
  128. };
  129. function write(t)
  130. {
  131. /*
  132. WRITE TO THE DEBUG CONSOLE
  133. --------------------------
  134. Notes:
  135. o You must define your debug console with the id "console" to use this function
  136. */
  137. var d = new Date();
  138. var s = new String(d);
  139. var timestamp = s.split(" ")[4];
  140. switch (BrowserDetect.browser)
  141. {
  142. case "Explorer":
  143. timestamp = s.split(" ")[3];
  144. break;
  145. case "Opera":
  146. timestamp = d;
  147. break;
  148. }
  149. var o = document.getElementById("console");
  150. if (o)
  151. {
  152. o.innerHTML = "<br />" + timestamp + " &gt; " + t + o.innerHTML;
  153. } else {
  154. alert(timestamp + " &gt; " + t);
  155. }
  156. };