• 3141阅读
  • 0回复

浏览器信息探测 [复制链接]

上一主题 下一主题
离线韭菜
 

只看楼主 倒序阅读 0楼 发表于: 2007-03-28
  1. <!doctype html public "-//W3C//DTD XHTML 1.1//EN" "[url=http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd]http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd[/url]">
  2. <html xmlns="[url=http://www.w3.org/1999/xhtml]http://www.w3.org/1999/xhtml[/url]">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
  5. <meta name="generator" content="editplus2.21" />
  6. <meta name="author" content="jiucai" />
  7. <meta name="keywords" content="" />
  8. <meta name="description" content="" />
  9. <title>浏览器信息探测</title>
  10. </head>
  11. <body>
  12. <script language="javascript" type="text/javascript">
  13. <!--
  14. /**
  15. *
  16. * 获取浏览器所支持的Flash插件的版本
  17. *
  18. * this function comes from Google Analytics Urchin Module
  19. *
  20. * @return flash version string and number
  21. */
  22. function getFlashVersion()
  23. {
  24. var f="-",n=navigator;
  25. if (n.plugins && n.plugins.length)
  26. {
  27.   for (var ii=0;ii<n.plugins.length;ii++){
  28.   if (n.plugins[ii].name.indexOf('Shockwave Flash')!=-1)
  29.   {
  30.     f=n.plugins[ii].description.split('Shockwave Flash ')[1];
  31.     break;
  32.   }
  33.   }
  34. }
  35. else if (window.ActiveXObject)
  36. {
  37.   for (var ii=10;ii>=2;ii--)
  38.   {
  39.   try
  40.   {
  41.     var fl=eval("new ActiveXObject('ShockwaveFlash.ShockwaveFlash."+ii+"');");
  42.     if (fl)
  43.     {
  44.     f=ii + '.0'; break;
  45.     }
  46.   }
  47.   catch(e)
  48.   {
  49.   }
  50.   }
  51. }
  52. return f;
  53. }
  54. /*
  55. appCodeName  指定浏览器的代码名称。
  56. appName  指定浏览器的名称。
  57. appVersion  指定 Navigator 的版本信息。
  58. language  标明正在使用的 Navigator 的翻译语种。 
  59. mimeTypes  客户端支持的所有 MIME 类型数组。
  60. platform  标明了 Navigator 编译适合的机器类型。
  61. plugins  客户端已安装的所有插件数组。
  62. userAgent  指定了用户代理头。
  63. document.write(navigator.userAgent + "<br />");
  64. */
  65. /**
  66. *
  67. * 获取浏览器的名称和版本
  68. *
  69. * @author jiucai<[url=mailto:forcer521@163.com]forcer521@163.com[/url]>
  70. *
  71. * @createDate 2006-8-30
  72. *
  73. * @return Browser name and version in lowercase , such as "msie_6.0"
  74. */
  75. function getBV()
  76. {
  77. var bs = new Array();
  78. var bsLen = new Array();
  79. bs[0]="MSIE";
  80. bs[1]="Firefox";
  81. bs[2]="Netscape";
  82. bs[3]="Opera";
  83. //you could add browser here...
  84. bs[4]="Unkown"; //leave the last one unkonw
  85. for (i = 0; i < bs.length; i++)
  86. {
  87.   bsLen [i] = bs[i].length +1 ; // to jump over "/"
  88.   //document.write("bs[" + i + "] = " +bsLen [i] + "<br />");
  89. }
  90. var unkown  = bs[bs.length] + "_0";
  91. var n  = navigator.userAgent;
  92. var len  = n.length;
  93. var token  = n.indexOf(") ");
  94. var str  = token > 0 ? n.substring( token + 2,token+len) : "";
  95. // Firefox
  96. var isFirefox = n.indexOf(bs[1]);
  97. var vFirefox = isFirefox > 0 ? n.substring(isFirefox + bsLen[1], isFirefox+len) : "";
  98. // Netscape
  99. var isNetscape = n.indexOf(bs[2]);
  100. var vNetscape = isNetscape > 0 ? n.substring(isNetscape + bsLen[2], isNetscape+len) : "";
  101. // Opera
  102. var isOpera  = n.indexOf(bs[3]);
  103. var vOpera  = isOpera > 0 ? n.substring(isOpera + bsLen[3], isOpera+len) : "";
  104. if (str=="")
  105. {
  106.   // IE
  107.   var isMSIE  = n.indexOf(bs[0]);
  108.   var vMSIE  = isMSIE > 0 ? n.substring(isMSIE + bsLen[0], n.indexOf(";",isMSIE + 5)) : "";
  109.   if(vMSIE)
  110.   return bs[0].toLowerCase() + "_" + vMSIE;
  111.   else
  112.   return unkown.toLowerCase();
  113. else if(vFirefox)
  114. {
  115.   return (bs[1] + "_" + vFirefox).toLowerCase();
  116. }
  117. else if(vNetscape)
  118. {
  119.   return (bs[2] + "_" + vNetscape).toLowerCase();
  120. }
  121. else if(vOpera)
  122. {
  123.   return (bs[3].toLowerCase() + "_"  + vOpera).toLowerCase();
  124. }
  125. else
  126. {
  127.   return unkown.toLowerCase();
  128. }
  129. }
  130. /**
  131. *
  132. * 获取客户端信息
  133. *
  134. * this function comes from Google Analytics Urchin Module
  135. *
  136. * @return url string of client info
  137. */
  138. function clientInfo()
  139. {
  140. var sr="-",sc="-",ul="-",fl="-",je=1;
  141. var n=navigator;
  142. if (self.screen)
  143. {
  144.   sr=screen.width+"x"+screen.height;
  145.   sc=screen.colorDepth+"-bit";
  146. }
  147. else if (self.java)
  148. {
  149.   var j=java.awt.Toolkit.getDefaultToolkit();
  150.   var s=j.getScreenSize();
  151.   sr=s.width+"x"+s.height;
  152. }
  153. if (n.language)
  154. {
  155.   ul=n.language.toLowerCase();
  156. }
  157. else if (n.browserLanguage)
  158. {
  159.   ul=n.browserLanguage.toLowerCase();
  160. }
  161. je=n.javaEnabled() ? 1 : 0;
  162. fl=getFlashVersion();
  163. bv=getBV();
  164. //返回客户端信息字符串
  165. return "&_u_sreen="+sr+"&_u_colordepth="+sc+"&_u_lang="+ul + "&_u_bv=" + bv + "&_u_java="+je+"&_u_flashversion="+fl;
  166. }
  167. biStr=encodeURI(clientInfo());
  168. document.write(biStr + "<br />");
  169. //document.write(decodeURI(biStr));
  170. //-->
  171. </script>
  172. </body>
  173. </html>

快速回复
限100 字节
 
上一个 下一个