首页 > 编程语言 >JavaScript判断系统和浏览器

JavaScript判断系统和浏览器

时间:2024-08-16 10:49:19浏览次数:10  
标签:判断 return JavaScript else sys test userAgent 浏览器

在做项目的时候,Web端需要适配移动端,且部分参数需要判断对应系统或浏览器。

在IOS中,因为高版本的系统Safari浏览器采用了Mac的内核,所以导致普通的判断无法识别到对应系统。
(userAgent.match(/(Macintosh)/) && navigator.maxTouchPoints >= 1) 能有效识别是apple端,且是触屏的,通过此方法能识别高版本的IOS_Safari。

Navigator 接口的 maxTouchPoints 只读属性返回当前设备支持的最大同时触摸接触点数。

if (navigator.maxTouchPoints > 1) {
  // 浏览器支持多点触控
}

识别对应系统和浏览器代码:

/* 匹配系统 */
function detectDeviceType(userAgent) {
  if (/(iPhone|iPad|iPod|iOS)/i.test(userAgent) || (userAgent.match(/(Macintosh)/) && navigator.maxTouchPoints >= 1)) {
    return 'iOS';
  }
  else if (/android/i.test(userAgent)) {
    return 'Android';
  }
  else {
    return 'PC';
  }
}
/* 匹配浏览器 */
function detectBrowser(userAgent) {
  if (/(edg|edge|edgios|edga|edg)/i.test(userAgent)) {
    return 'Edge';
  } else if (/(chrome|crios|crmo)/i.test(userAgent) && !/(edg|edge)/i.test(userAgent)) {
    return 'Chrome';
  } else if (/(firefox|fxios)/i.test(userAgent)) {
    return 'Firefox';
  } else if (/safari/i.test(userAgent) && !/(chrome|crios|crmo|edg)/i.test(userAgent)) {
    return 'Safari';
  } else if (/xiaomi/i.test(userAgent)) {
    return 'Xiaomi';
  } else if (/huawei/i.test(userAgent)) {
    return 'Huawei';
  } else if (/samsung/i.test(userAgent)) {
    return 'Samsung';
  } else {
    return 'Other';
  }
}
/*系统_浏览器*/
function joinSource() {
  const userAgent = navigator.userAgent.toLowerCase();
  var sys = detectDeviceType(userAgent);
  if (sys == "PC") {
    return "PC_Browser";
  } else if (sys == "Android") {
    return sys + "_" + detectBrowser(userAgent);
  } else if (sys == "iOS") {
    return sys + "_" + detectBrowser(userAgent);
  }
}

 

标签:判断,return,JavaScript,else,sys,test,userAgent,浏览器
From: https://www.cnblogs.com/LaoPaoEr/p/18362457

相关文章

  • postgres.new:在浏览器中构建与AI协作的开源Postgres沙盒
      每周跟踪AI热点新闻动向和震撼发展想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领域的领跑者。点击订阅,与未来同行!订阅:https://......
  • 0-JavaScript入门
    1.1JS用途JavaScript属于一门脚本语言,可用于前端给网页添加一些动态效果。也可用于node平台,开发服务器React、Vue框架底层也是通过JS实现1.2JS组成前端分为三层层次用途HTML(结构层)利用语义化标签搭建网页CSS(样式层)利用样式进行美化网页、进行网页布局J......
  • 用JavaScript做超级玛丽小游戏
    一、前言前几天用JS实现扫雷和贪吃蛇(通过HTML的DOM节点实现基本界面,界面背景简单,交互简单)。比较复杂的是植物大战僵尸,不同的关卡设置单独的函数。所以还比较难。超级玛丽通过canvas实现背景,交互很复杂,功能很多,JS代码完全是有汇编语言反编译成C语言,然后把C语言转换成JS实现的......
  • TypeScript 之 JavaScript文件类型检查
    启用对JavaScript文件的类型检查在TypeScript编译选项compilerOptions全部配置项中,可以通过以下2个属性配置JavaScriptSupport:allowJs是否允许编译JavaScript文件。默认值是false。在默认情况下,TypeScript编译器只处理.ts、.tsx和.d.ts文件,不会编译.js......
  • Python编程 - 判断语句与循环语句
    目录前言一、运算符二、判断语句三、循环语句总结前言第一篇主要讲的是较为基础的知识,如变量,关键字和输入输出等,接下来主要讲判断语句,将判断语句之前需要先扩展上篇文章中的运算符,运算符搭配判断语句使用,让我们拭目以待!!一、运算符这里拓展的运算符有比较运......
  • JavaScript 中,`'10' < '1'` 的结果为 `false`,原因
    在JavaScript中,'10'<'1'的结果为false,这是因为JavaScript在进行比较操作时,会将字符串按照字符编码进行比较,而不是将它们转换为数字。字符编码比较:字符串'10'的第一个字符是'1',而字符串'1'的第一个字符也是'1'。由于两个字符串的第一个字符相同,所以JavaScript......
  • Google浏览器下载与命令行启动环境配置
    Google下载地址:https://www.google.cn/intl/zh-CN/chrome/cmd输入chrome显示chrome不是内部或外部命令【cmd启动命令】chrome.exe--start-maximized--remote-debugging-port=2929--user-data-dir="D:\google_cache\2929"如果提示显示chrome不是内部或外部命令就按照......
  • 前端进阶——浏览器篇
     浏览器如何工作(一)进程架构 浏览器的工作过程复杂而高效,其核心在于其进程架构的设计。以下是对浏览器进程架构的详细解析:一、浏览器的主要进程现代浏览器大多采用多进程多线程的架构,以Chrome浏览器为例,其主要进程包括:浏览器进程(BrowserProcess):功能:作为浏览器的主进......
  • File构造方法,成员方法,判断功能,基本获取功能
    packagecom.shujia.day16.ketang;importjava.io.File;/*File:是所有文件或者文件夹的路径抽象表现形式,对文件进行操作每次都需要创建文件的对象构造方法:publicFile(Stringpathname)通过将给定的路径名字符串转换为抽象路径名来创建新......
  • 浏览器后门:保护影子 IT 的新前线
    浏览器扩展是网络犯罪分子的主要目标。这不仅仅是消费者的问题,也是企业对抗影子IT的新领域。最终,扩展权限越多,攻击面就越大。研究表明,平均每个企业的生态系统中都有近1500个浏览器扩展程序-即使是一个不良插件也可能导致声誉、财务和隐私问题。展望未来,管理员需要加......