比较全的使用JavaScript获取当前网页运行环境的明细,比如操作系统类型,设备类型

简介: 比较全的使用JavaScript获取当前网页运行环境的明细,比如操作系统类型,设备类型

</div><div>var OS = {</div><div>  "WINDOWS": "win",</div><div>  "MACINTOSH": "mac",</div><div>  "LINUX": "linux",</div><div>  "IOS": "iOS",</div><div>  "ANDROID": "Android",</div><div>  "BLACKBERRY": "bb",</div><div>  "WINDOWS_PHONE": "winphone"</div><div> };</div><div>var result = getOS();</div><div>alert(JSON.stringify(result));</div><div>function getOS() {  </div><div>  var userAgent = navigator.userAgent;</div><div>  var platform, result;</div><div>  function getDesktopOS(){</div><div>   var pf = navigator.platform;</div><div>   if (pf.indexOf("Win") != -1 ) { // 说明当前是Windows操作系统</div><div>    var rVersion = /Windows NT (\d+).(\d)/i;</div><div>    var uaResult = userAgent.match(rVersion);</div><div>    var sVersionStr = "";</div><div>    if (uaResult[1] == "6") {</div><div>     if (uaResult[2] == 1) {</div><div>      sVersionStr = "7"; // 说明当前运行在Windows 7 中</div><div>     } else if (uaResult[2] > 1) {</div><div>      sVersionStr = "8"; // 说明当前运行在Windows 8 中</div><div>     }</div><div>    } else {</div><div>     sVersionStr = uaResult[1];</div><div>    }</div><div>    return {"name": OS.WINDOWS, "versionStr": sVersionStr};</div><div>   } else if (pf.indexOf("Mac") != -1) {</div><div>    return {"name": OS.MACINTOSH, "versionStr": ""}; // Macintosh操作系统</div><div>   } else if (pf.indexOf("Linux") != -1) {</div><div>    return {"name": OS.LINUX, "versionStr": ""}; // 说明当前运行在Linux操作系统</div><div>   }</div><div>   return null;</div><div>  }</div><div>  platform = /Windows Phone (?:OS )?([\d.]*)/; // windows phone的正则表达式</div><div>  result = userAgent.match(platform);</div><div>  if (result) {</div><div>   return ({"name": OS.WINDOWS_PHONE, "versionStr": result[1]});</div><div>  }</div><div>  // BlackBerry 10</div><div>  if (userAgent.indexOf("(BB10;") > 0) {  </div><div>   platform = /\sVersion\/([\d.]+)\s/; // BlackBerry的regular expression</div><div>   result = userAgent.match(platform);</div><div>   if (result) {</div><div>    return {"name": OS.BLACKBERRY, "versionStr": result[1]};</div><div>   } else {</div><div>    return {"name": OS.BLACKBERRY, "versionStr": '10'};</div><div>   }</div><div>  }</div><div>  // iOS, Android, BlackBerry 6.0+:</div><div>  platform = /\(([a-zA-Z ]+);\s(?:[U]?[;]?)([\D]+)((?:[\d._]*))(?:.*[\)][^\d]*)([\d.]*)\s/;</div><div>  result = userAgent.match(platform);</div><div>  if (result) {</div><div>   var appleDevices = /iPhone|iPad|iPod/;</div><div>   var bbDevices = /PlayBook|BlackBerry/;</div><div>   if (result[0].match(appleDevices)) {</div><div>    result[3] = result[3].replace(/_/g, ".");</div><div>    return ({"name": OS.IOS, "versionStr": result[3]}); // iOS操作系统</div><div>   } else if (result[2].match(/Android/)) {</div><div>    result[2] = result[2].replace(/\s/g, "");</div><div>    return ({"name": OS.ANDROID, "versionStr": result[3]}); // Android操作系统</div><div>   } else if (result[0].match(bbDevices)) {</div><div>    return ({"name": OS.BLACKBERRY, "versionStr": result[4]}); // Blackberry</div><div>   }</div><div>  }</div><div>  //Android平台上的Firefox浏览器</div><div>  platform = /\((Android)[\s]?([\d][.\d]*)?;.*Firefox\/[\d][.\d]*/;</div><div>  result = userAgent.match(platform);</div><div>  if (result) {</div><div>   return ({"name": OS.ANDROID, "versionStr": result.length == 3 ? result[2] : ""});</div><div>  }</div><div>  // Desktop</div><div>  return getDesktopOS();</div><div> }</div><div>


目录
相关文章
|
5天前
|
存储 JavaScript 前端开发
使用JavaScript构建动态交互式网页:从基础到实践
【10月更文挑战第12天】使用JavaScript构建动态交互式网页:从基础到实践
22 1
|
9天前
|
JavaScript 前端开发 安全
深入理解TypeScript:增强JavaScript的类型安全性
【10月更文挑战第8天】深入理解TypeScript:增强JavaScript的类型安全性
18 0
|
28天前
|
编解码 前端开发 JavaScript
javascript检测网页缩放演示代码
javascript检测网页缩放演示代码
|
1月前
|
Web App开发 JavaScript 前端开发
添加浮动按钮点击滚动到网页底部的纯JavaScript演示代码 IE9、11,Maxthon 1.6.7,Firefox30、31,360极速浏览器7.5.3.308下测试正常
添加浮动按钮点击滚动到网页底部的纯JavaScript演示代码 IE9、11,Maxthon 1.6.7,Firefox30、31,360极速浏览器7.5.3.308下测试正常
|
9天前
|
存储 JavaScript 前端开发
【JavaScript】网页交互的灵魂舞者
本文介绍了 JavaScript 的三种引入方式(行内、内部、外部)和基础语法,包括变量、数据类型、运算符、数组、函数和对象等内容。同时,文章还详细讲解了 jQuery 的基本语法和常用方法,如 `text()`、`html()`、`val()`、`attr()` 和 `css()` 等,以及如何插入和删除元素。通过示例代码和图解,帮助读者更好地理解和应用这些知识。
9 1
【JavaScript】网页交互的灵魂舞者
|
19天前
|
JavaScript 前端开发 Linux
在 Node.js 和 Electron 中获取设备 UUID 的最佳实践
【JS】在 Node.js 和 Electron 中获取设备 UUID 的最佳实践
30 1
用CSS+JavaScript打造网页中的选项卡
用CSS+JavaScript打造网页中的选项卡
|
9天前
|
JavaScript 前端开发
JavaScript返回判断类型有哪些?
JavaScript返回判断类型有哪些?
18 0
|
15天前
|
Web App开发 缓存 前端开发
前端RAG:使用Transformers.js手搓纯网页版RAG(二)- 基于qwen1.5-0.5B
本文继续探讨了RAG的后半部分,通过在浏览器中运行qwen1.5-0.5B模型实现了增强搜索全流程。然而,由于浏览器与模型性能限制,该方案更适合研究、离线及高隐私场景。文章提供了完整的前端代码,让读者能够动手尝试。此外,详细介绍了代码框架、知识库准备、模型初始化及问答实现等步骤,并展示了实际运行效果。受限于当前技术,除非在离线或高隐私环境下,网页大模型的应用仍需进一步优化。
|
15天前
|
存储 自然语言处理 文字识别
纯前端RAG:使用Transformers.js实现纯网页版RAG(一)
本文将分两部分教大家如何在网页中实现一个RAG系统,本文聚焦于深度搜索功能。通过浏览器端本地执行模型,可实现文本相似度计算和问答匹配,无需依赖服务器。RAG搜索基于高维向量空间,即使不完全匹配也能找到意义相近的结果。文中详细介绍了如何构建知识库、初始化配置、向量存储及相似度计算,并展示了实际应用效果。适用于列表搜索、功能导航、文档查询及表单填写等多种场景。