js获取浏览器的版本信息
来源:互联网 发布:石川智晶 知乎 编辑:程序博客网 时间:2024/06/05 16:36
function getbrowserclient() { //engine info var engine = { ie: 0, gecko: 0, webkit: 0, khtml: 0, opera: 0, //full version number ver: null }; //browser info var browser = { ie: 0, firefox: 0, safari: 0, konq: 0, opera: 0, chrome: 0, //detail version number ver: null }; //platform, device and system var system = { win: false, mac: false, x11: false, //mobile device iphone: false, ipod: false, ipad: false, ios: false, android: false, nokiaN: false, winMobile: false, //game system wii: false, ps: false }; //check engine and browser var ua = navigator.userAgent; if (window.opera) { engine.ver = browser.ver = window.opera.version(); engine.opera = browser.opera = parseFloat(engine.ver); } else if (/AppleWebKit\/(\S+)/.test(ua)) { engine.ver = RegExp['$1']; engine.webkit = parseFloat(engine.ver); //make sure whether chrome or safari if (/Chrome\/(\S+)/.test(ua)) { browser.ver = RegExp['$1']; browser.chrome = parseFloat(browser.ver); } else if (/Version\/(\S+)/.test(ua)) { browser.ver = RegExp['$1']; browser.safari = parseFloat(browser.ver); } else { //approximately sure the version number var safariVersion = 1; if (engine.webkit < 100) { safariVersion = 1; } else if (engine.webkit < 312) { safariVersion = 1.2; } else if (engine.webkit < 412) { safariVersion = 1.3; } else { safariVersion = 2; } browser.safari = browser.ver = safariVersion; } } else if (/KHTML\/(\S+)/.test(ua) || /Konqueror\/([^;]+)/.test(ua)) { engine.ver = browser.ver = RegExp['$1']; engine.khtml = browser.konq = parseFloat(engine.ver); } else if (/rv:([^\)]+)\) Gecko\/\d{8}/.test(ua)) { engine.ver = RegExp['$1']; engine.gecko = parseFloat(engine.ver); //make sure whether Firefox if (/Firefox\/(\S+)/.test(ua)) { browser.ver = RegExp['$1']; browser.firefox = parseFloat(browser.ver); } } else if (/MSIE ([^;]+)/.test(ua)) { engine.ver = browser.ver = RegExp['$1']; engine.ie = browser.ie = parseFloat(engine.ver); } browser.ie = engine.ie; browser.opera = engine.opera; //check platform var p = navigator.platform; system.win = p.indexOf('Win') == 0; system.mac = p.indexOf('Mac') == 0; system.x11 = (p == 'X11') || (p.indexOf('Linux') == 0); //check window system if (system.win) { if (/Win(?:dows )?([^do]{2})\s?(\d+\.\d+)?/.test(ua)) { if (RegExp['$1'] == 'NT') { switch (RegExp['$2']) { case '5.0': system.win = '2000'; break; case '5.1': system.win = 'XP'; break; case '6.0': system.win = 'Vista'; break; case '6.1': system.win = '7'; break; default: system.win = 'NT'; break; } } else if (RegExp['$1'] == '9x') { system.win = 'ME'; } else { system.win = RegExp['$1']; } } } //mobile device system.iphone = ua.indexOf('iPhone') > -1; system.ipad = ua.indexOf('iPad') > -1; system.ipod = ua.indexOf('iPod') > -1; system.nokiaN = ua.indexOf('NokiaN') > -1; //window mobile if (system.win == 'CE') { system.winMobile = system.win; } else if (system.win == 'Ph') { if (/Windows Phone OS (\d+.\d+)/.test(ua)) { system.win = 'Phone'; system.winMobile = parseFloat(RegExp['$1']); } } //check ios version if (system.mac && ua.indexOf('Mobile') > -1) { if (/CPU (?:iPhone )?OS (\d+_\d+)/.test(ua)) { system.ios = parseFloat(RegExp.$1.replace('_', '.')); } else { system.ios = 2; //can't check, give temp } } //check android version if (/Android (\d+\.\d+)/.test(ua)) { system.android = parseFloat(RegExp.$1); } //game system system.wii = ua.indexOf('Wii') > -1; system.ps = /playstation/i.test(ua); return { engine: engine, browser: browser, system: system }; }
0 0
- js获取浏览器的版本信息
- js 获取浏览器版本信息
- JS获取浏览器Flash版本信息
- js获取浏览器信息--名称、版本、操作系统
- js 获取浏览器版本信息(全)
- js智能获取浏览器版本UA信息
- js 获取浏览器版本信息(全)
- JS获取智能机浏览器版本信息
- JS获取当前浏览器及版本信息
- js 获取浏览器版本信息(全)
- JS获取客户端信息(屏幕分辨率、浏览器版本、操作系统版本)
- 获取浏览器版本信息
- php:PHP获取浏览器的版本信息
- 获取用户的浏览器以及版本信息
- 获取浏览器的名称与版本信息
- JS获取浏览器信息
- js获取浏览器信息
- JS获取浏览器信息
- 多点定位方法的讨论
- 如何自定View
- Map的底层实现
- leetcode 6 ZigZag Conversion
- 《常见算法和数据结构》元素排序(3)——洗牌算法
- js获取浏览器的版本信息
- 找出数组中出现次数超过一半或者超过1/3的元素
- Mesos的自恢复能力及其核心框架的docker执行思维
- 模拟银行家算法
- 连连看
- Spring之JMS之发送消息
- iOS拨打电话功能
- 快速排序算法
- 算法分析之归并排序——算法整体实现过程