广告
返回顶部
首页 > 资讯 > 精选 >JavaScript中怎么判断前端应用运行环境
  • 471
分享到

JavaScript中怎么判断前端应用运行环境

2023-06-05 03:06:09 471人浏览 安东尼
摘要

javascript中怎么判断前端应用运行环境,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。我们部署在某些云平台或者WEB服务器上的前端应用,既可以用PC端浏览器访问,也可以用

javascript中怎么判断前端应用运行环境,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

我们部署在某些云平台或者WEB服务器上的前端应用,既可以用PC端浏览器访问,也可以用手机上的浏览器访问。

在前端应用里,有时候我们需要根据运行环境的不同做出对应处理。比如下面这段逻辑,如果判断出应用当前是运行在手机上,则需要设置对应的viewport。

JavaScript中怎么判断前端应用运行环境

if (this.isMobile()) {     var viewport = document.querySelector("meta[name=viewport]");     if (viewport) {           viewport.setAttribute('content', 'width = ' + window.innerWidth + ', height = ' + window.innerHeight + ', maximum-scale = 1.25, minimum-scale = 1.25');      }}

JavaScript中怎么判断前端应用运行环境

那么如何实现isMobile函数呢?

我们打开Chrome开发工具,在console标签页输入navigator,回车,会发现这个对象包含了非常多的有用信息。

JavaScript中怎么判断前端应用运行环境

其中有个字段platfORM: 我如果在安装了windows系统的电脑上使用Chrome,该值为Win32。

JavaScript中怎么判断前端应用运行环境

另一个重要的字段为userAgent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (Khtml, like Gecko) Chrome/67.0.3396.99 Safari/537.36

下面这段不到100行的JavaScript代码通过使用正则表达式处理navigator对象中的platform和userAgent字段来判断当前前端应用运行的环境,支持Windows/linux/Macintosh三种操作系统iOS/Android/BlackBerry/Windows Phone等移动平台。

代码如下。您也可以在我的GitHub上找到这段代码。执行后,会弹出检测出的运行环境和版本号。

https://github.com/i042416/KnowlegeRepository/blob/master/practice/264_getOS.html

JavaScript中怎么判断前端应用运行环境

JavaScript中怎么判断前端应用运行环境

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

看完上述内容,你们掌握JavaScript中怎么判断前端应用运行环境的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注编程网精选频道,感谢各位的阅读!

--结束END--

本文标题: JavaScript中怎么判断前端应用运行环境

本文链接: https://www.lsjlt.com/news/240933.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • JavaScript中怎么判断前端应用运行环境
    JavaScript中怎么判断前端应用运行环境,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。我们部署在某些云平台或者Web服务器上的前端应用,既可以用PC端浏览器访问,也可以用...
    99+
    2023-06-05
  • Vue-Cli怎么在index.html中进行环境判断
    这篇文章主要介绍“Vue-Cli怎么在index.html中进行环境判断”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Vue-Cli怎么在index.html中进行环境判断”文章能帮助大家解决问题。...
    99+
    2023-07-05
  • Android应用中是怎么判断程序是在前台运行还是在后台运行的
    本篇文章为大家展示了Android应用中是怎么判断程序是在前台运行还是在后台运行的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。具体方法如下:public static boolean Frontd...
    99+
    2023-05-31
    android roi
  • Android应用中怎么判断服务是否运行
    这期内容当中小编将会给大家带来有关Android应用中怎么判断服务是否运行,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。实现代码: public boolean isServiceWork(Context...
    99+
    2023-05-31
    android roi
  • Android中怎么判断一个应用是否在运行
    Android中怎么判断一个应用是否在运行,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。在一个应用中,或一个Service 、Receiver中有时候需要判断一个应用是否正...
    99+
    2023-05-30
    android
  • KDE应用怎么在GNOME环境下运行
    这篇文章将为大家详细讲解有关KDE应用怎么在GNOME环境下运行,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。GNODE和KDE两款桌面环境在视觉上的差异是显而易见的,那么如何让一种环境下的应用无误地移植...
    99+
    2023-06-16
  • vue怎么使用sass根据环境进行样式判断区分
    这篇文章主要介绍“vue怎么使用sass根据环境进行样式判断区分”,在日常操作中,相信很多人在vue怎么使用sass根据环境进行样式判断区分问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vue怎么使用sass...
    99+
    2023-07-05
  • 怎么在JavaScript中使用for循环判断质数
    Java有哪些集合类Java中的集合主要分为四类:1、List列表:有序的,可重复的;2、Queue队列:有序,可重复的;3、Set集合:不可重复;4、Map映射:无序,键唯一,值不唯一。怎么在JavaScript中使用for循环判断质数?...
    99+
    2023-06-14
  • 怎么判断.NET Core应用程序是以管理员身份运行的
    这篇文章主要介绍了怎么判断.NET Core应用程序是以管理员身份运行的的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么判断.NET Core应用程序是以管理员身份运行的文章都会有所收获,...
    99+
    2023-06-29
  • 怎么在Windows笔记本上调试运行在iOS设备上的前端应用
    本篇文章为大家展示了怎么在Windows笔记本上调试运行在iOS设备上的前端应用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。我在每天工作中需要在不同的移动设备上测试我们开发的前端应用是否正常工作,...
    99+
    2023-06-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作