判断浏览器是否为手机端 is mobile

一个网站,我做了PC端手机端,我的需求是用户默认打开网站是PC端PC端在业务功能代码加载之前,立马判断是否为手机浏览器,若是手机浏览器则立马跳转到手机端页面。

其实,我们只需要一个npm包来解决这个问题。

这个包是is-mobile,周下载量接近两万。
它的核心代码如下:

function isMobile (ua) {if (!ua && typeof navigator != 'undefined') ua = navigator.userAgent;if (ua && ua.headers && typeof ua.headers['user-agent'] == 'string') {ua = ua.headers['user-agent'];}if (typeof ua != 'string') return false;return /(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(ua) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(ua.substr(0,4));
}

我们可以直接复制这段代码在自己index.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/416158.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

qt银行排队系统服务器代码,QT银行叫号排队系统

【实例简介】这个项目是基于windows下开发的,与sqlite数据库的结合使用,实现模拟银行的叫号排队机【实例截图】【核心代码】xiangmu└── xiangmu├── banksystem│ ├── banksystem.pro│ ├── banksystem.pro.user│ ├── banksystem.p…

list基本运用

1 #include<iostream>2 #include<list>3 using namespace std;4 list<int>list1,list2;5 void Creat_List(){6 // 空链表 7 list<int> L0; 8 9 // 建一个含个默认值是的元素的链表 10 list<int> L1(9); 11 12 …

支付宝 PEM routines:PEM_read_bio:no start line

今天在做支付宝开发&#xff0c;将密钥赋给变量&#xff0c;然在在签名的时候就直接报错&#xff0c;PEM routines:PEM_read_bio:no start line。 Error: error:0906D06C:PEM routines:PEM_read_bio:no start lineat Sign.sign (internal/crypto/sig.js:85:26)at signWithPriv…

加密服务器显示到期,注册加密卡成功了,打开软件还是提示演示到期了,怎么解决?...

期间,费用 期间,费用亦称期间成本&#xff0c;与一定期间相联系&#xff0c;直接从企业当期销售收入中扣除的费用。从企业的损益确定来看&#xff0c;期间费用与产品销售成本、产品销售税金及附加一起从产品销售收入中扣除后作为企业当期的营业利润。当期的期间费用是全额从当期…

支付宝 错误代码 insufficient-isv-permissions 错误原因: ISV权限不足,建议在开发者中心检查签约是否已经生效

我刚申请完&#xff0c;就进行测试&#xff0c;发现报错insufficient-isv-permissions。 排查一下&#xff0c;发现我在测试的时候&#xff0c;直接使用了支付宝正式请求地址&#xff1a;https://openapi.alipay.com/gateway.do。 我们需要做的&#xff0c;是把正式地址换成测…

施乐700彩机服务器显示c4,施乐彩色数码复印机故障代码大全

施乐彩色数码复印机是办公单位常用的设备之一&#xff0c;但是使用时间较长难免会出现故障&#xff0c;最常见的就是复印机代码报错&#xff0c;以下就是闪租闪修小编整理复印机代码报错含义&#xff0c;希望能对广大用户有所帮助。003-205机器序列号不一致004-415寿命已尽004-…

pm2常用的命令

这里只列举了我常用的命令&#xff1a; 1、启动server.js应用程序 pm2 start app.js 2、 启动server.js并设置程序名称为hehe-api pm2 start server.js --name"hehe-api" 3、当文件变化时自动重启应用 pm2 start app.js --watch 4、查看pm2启动的所有的应用程…

linux 下 .sh 文件语法

转自&#xff1a;http://blog.sina.com.cn/s/blog_54f82cc201010hfz.html 介绍&#xff1a; 1 开头 程序必须以下面的行开始&#xff08;必须方在文件的第一行&#xff09;&#xff1a;#!/bin/sh符号#!用来告诉系统它后面的参数是用来执行该文件的程序。在这个例子中我们使用/b…

x3250m6系列服务器,IBM服务器X3250 M6 E3-1230v6 8GB 4x3.5 C110 300W 无驱

品牌&#xff1a; 联想(Lenovo)商品名称&#xff1a;联想(Lenovo) IBM X3250 M6 1U机架式服务器主机 E3-1230V6 标配 8G内存 无硬盘商品编号&#xff1a;1004823156店铺&#xff1a;广州德致商城商品产地&#xff1a;中国大陆内存 &#xff1a;1x8GB UDIMMRAID &#xff1a;标配…

ssh WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!

解决办法很简单&#xff1a; ssh-keygen -R <IP地址>

jfinal项目部署服务器,jfinal undertow项目再集成JDK,一键安装系统服务,让部署再快一点...

经常由于本地的开发环境和服务器上的生产环境不同&#xff0c;导致项目部署过程中会遇到各种插曲&#xff0c;现在有了jfinal undertow&#xff0c;终于可以摆脱tomcat等各种配置&#xff0c;但是开发环境的JDK和服务器上的JDK版本不一定一致&#xff0c;比如我面临的情况是&am…

pm2 守护 nuxt

下面的配置&#xff0c;亲测成功 1、首先根据nuxt第一步生成文件 npm run build 2、使用pm2实现nuxt进程守护 pm2 start npm -- run start 或将进程命名为nuxt-demo pm2 start npm --name "nuxt-demo" -- run start

numpy细碎知识点

np.random.rand() 基于python自带模块random的random函数的一个延伸吧,生成指定数量的列表 np.random.rand(a,b) 参数a,b均为整型,生成含有a个元素的元组,每个元组含有b个0到1的随机浮点数 import numpy as npa np.random.rand(5,3) print a[[ 0.18261252 0.38151419 0.4458…

前端学习(2536) request和response

Request 和 Response 对象起到了服务器与客户机之间的信息传递作用。Request 对象用于接收客户端浏览器提交的数据&#xff0c;而 Response 对象的功能则是将服务器端的数据发送到客户端浏览器。 一、Request对象的五个集合&#xff1a; QueryString&#xff1a;用以获取客户…

宝塔面板 mongodb 允许外网访问

需要修改一下配置。 将bindIp&#xff1a;127.0.0.1 修改为 0.0.0.0

前端学习(2538):slice

slice() 方法返回一个新的数组对象&#xff0c;这一对象是一个由 begin 和 end 决定的原数组的浅拷贝&#xff08;包括 begin&#xff0c;不包括end&#xff09;。原始数组不会被改变。 const animals [ant, bison, camel, duck, elephant]; console.log(animals.slice(2)); …