【JS】识别浏览器版本及操作平台
背景:
有这么个需求,需要统计,用户打开网站使用的浏览器,以及操作平台。实现:
受HTML5Test这个网站的影响,发现它可以实现,获取浏览器以及平台的功能,然后研究代码发现了这个秘密。
其实就是 这串请求 出来的:http://api.whichbrowser.net/rel/detect.js
通过调取API 获取一个WhichBrowser 对象,然后其中的browser是浏览器的信息, OS是平台的信息。
做了个小Demo,可以愉快的访问,来获取版本。效果图如下:

使用:
① 在head中添加如下代码
<script>(function () {var p = [], w = window, d = document, e = f = 0; p.push('ua=' + encodeURIComponent(navigator.userAgent)); e |= w.ActiveXObject ? 1 : 0; e |= w.opera ? 2 : 0; e |= w.chrome ? 4 : 0;e |= 'getBoxObjectFor' in d || 'mozInnerScreenX' in w ? 8 : 0; e |= ('WebKitCSSMatrix' in w || 'WebKitPoint' in w || 'webkitStorageInfo' in w || 'webkitURL' in w) ? 16 : 0;e |= (e & 16 && ({}.toString).toString().indexOf("\n") === -1) ? 32 : 0; p.push('e=' + e); f |= 'sandbox' in d.createElement('iframe') ? 1 : 0; f |= 'WebSocket' in w ? 2 : 0;f |= w.Worker ? 4 : 0; f |= w.applicationCache ? 8 : 0; f |= w.history && history.pushState ? 16 : 0; f |= d.documentElement.webkitRequestFullScreen ? 32 : 0; f |= 'FileReader' in w ? 64 : 0;p.push('f=' + f); p.push('r=' + Math.random().toString(36).substring(7)); p.push('w=' + screen.width); p.push('h=' + screen.height); var s = d.createElement('script');s.src = '//api.whichbrowser.net/rel/detect.js?' + p.join('&'); d.getElementsByTagName('head')[0].appendChild(s);})();</script>
② 具体实现为
<script>function waitForWhichBrowser(cb) {var callback = cb;function wait() {if (typeof WhichBrowser == 'undefined')window.setTimeout(wait, 100);elsecallback();}wait();}waitForWhichBrowser(function () {var Browsers = new WhichBrowser({useFeatures: true,detectCamouflage: true});alert(Browsers.browser + " ");alert(Browsers.os + " ");});</script>
下载:
点击我下载Demo
附件列表
作者:ruicky
出处:http://www.cnblogs.com/ruicky/
欢迎任何形式的转载,未经作者同意,请保留此段声明!


浙公网安备 33010602011771号