JS判断当前使用设备是pc端还是web端(转MirageFireFox)
最近用bootstrap做自适应,发现仍然很难很好的兼容web端和PC端的现实。
仔细观察百度,淘宝,京东等大型网站,发现这些网站都有对应不同客户端的子站。
| 站点 | PC端url | web端url |
|---|---|---|
| 百度 | www.baidu.com | m.baidu.com |
| 淘宝 | www.taobao.com | m.taobao.com |
| 京东 | www.jd.com | m.jd.com |
| 网易 | www.163.com | 3g.163.com |
/*判断当前设备跳转到指定地址。PCurl:PC端地址;WebUel:PC端地址;*/
function judgmentClient(PCurl,WebUel){
var UserClient = navigator.userAgent.toLowerCase();
var IsIPad = UserClient.match(/ipad/i) == "ipad";
var IsIphoneOs = UserClient.match(/iphone os/i) == "iphone os";
var IsMidp = UserClient.match(/midp/i) == "midp";
var IsUc7 = UserClient.match(/rv:1.2.3.4/i) == "rv:1.2.3.4";
var IsUc = UserClient.match(/ucweb/i) == "ucweb";
var IsAndroid = UserClient.match(/android/i) == "android";
var IsCE = UserClient.match(/windows ce/i) == "windows ce";
var IsWM = UserClient.match(/windows mobile/i) == "windows mobile";
if(IsIPad || IsIphoneOs || IsMidp || IsUc7 || IsUc || IsAndroid || IsCE || IsWM){
window.location = WebUel;
}else{
window.location = PCurl;
}
}
这套代码虽然可以直接使用,但会有个调用的问题。
假设现有一个PC页 和 一个Web页,这两个页面onload的时候都调用这个函数,结果是反复调用此函数,页面不停刷新。(有兴趣的朋友可以自行尝试)
起初这个调用bug想了两个小时就是绕不出来。(本菜有点愚钝)
后来终于想明白了,其实就是把这个拆开成两个函数,分开调用就OK了。
function PCjudgment(WebUel){
var UserClient = navigator.userAgent.toLowerCase();
var IsIPad = UserClient.match(/ipad/i) == "ipad";
var IsIphoneOs = UserClient.match(/iphone os/i) == "iphone os";
var IsMidp = UserClient.match(/midp/i) == "midp";
var IsUc7 = UserClient.match(/rv:1.2.3.4/i) == "rv:1.2.3.4";
var IsUc = UserClient.match(/ucweb/i) == "ucweb";
var IsAndroid = UserClient.match(/android/i) == "android";
var IsCE = UserClient.match(/windows ce/i) == "windows ce";
var IsWM = UserClient.match(/windows mobile/i) == "windows mobile";
if(IsIPad || IsIphoneOs || IsMidp || IsUc7 || IsUc || IsAndroid || IsCE || IsWM){
window.location = WebUel;
}
}
// web端调用判断PC设备
function Webjudgment(pcUel){
var UserClient = navigator.userAgent.toLowerCase();
var IsIPad = UserClient.match(/ipad/i) == "ipad";
var IsIphoneOs = UserClient.match(/iphone os/i) == "iphone os";
var IsMidp = UserClient.match(/midp/i) == "midp";
var IsUc7 = UserClient.match(/rv:1.2.3.4/i) == "rv:1.2.3.4";
var IsUc = UserClient.match(/ucweb/i) == "ucweb";
var IsAndroid = UserClient.match(/android/i) == "android";
var IsCE = UserClient.match(/windows ce/i) == "windows ce";
var IsWM = UserClient.match(/windows mobile/i) == "windows mobile";
if(!IsIPad && !IsIphoneOs && !IsMidp && !IsUc7 && !IsUc && !IsAndroid && !IsCE && !IsWM){
window.location = pcUel;
}
}
JS判断当前使用设备是pc端还是web端(转MirageFireFox)的更多相关文章
- 【方法】JS判断当前页面环境:PC端/移动端,安卓/IOS,微信环境/QQ环境等等
[主要知识] 浏览器设备信息:navigator.userAgent(本文中主要用到知识) 浏览器版本信息:navigator.appVersion var ua = navigator.userAg ...
- js判断当前移动设备平台
//js判断当前移动设备平台 var isiOs = false; var isAndroid = false; var isWindowsPhone = false; if(/(iPhone|iPa ...
- 1、移动端 2、后台 3、 移动端,Web 端 4、 PC端
移动端: 1.公众号:停开心 住总物业 2.app: iso Android 停开心,住总停开心 后台:停开心智慧停车管理平台(所有的停车场) 移动端,Web端: 海投OA,公司OA PC端:收费软 ...
- 移动端与Web端疫情数据展示
1.题目要求 2.整体思想 首先是在前两阶段已经完成的echarts可视化.利用Jsoup爬取疫情数据基础上来进行调用与完善.大致思想是在Android Studio上完成交互去调用ecplise中的 ...
- dr-helper项目设计介绍(一个包括移动端和Web端的点餐管理系统)
一.源代码路径 https://github.com/weiganyi/dr-helper 二.界面 通过浏览器訪问Web服务,能够看到界面例如以下: ADT-Bundle编译project生成dr- ...
- js判断当前浏览设备
前端开发经常遇到需要判断用户的浏览设备,是pc端还是移动端,移动端使用的是什么手机系统?android.ios.ipad.windows phone等等,有时候还需要知道用户浏览页面是在微信中打开还是 ...
- js 判断当前操作系统是ios还是android还是电脑端
js判断客户端是否是IOS或者是Android //如果返回true 则说明是Android function is_weixin() { var ua = window.navigator.user ...
- 关于emoji表情,支持在app端发送web端显示,web端发送给app端显示,web与wap端互相显示。
要用到emoji.js和emoji.jquery.js两个插件配合实现三端互通. 1.app端发送的emoji表情----到服务器---服务器存储的是‘问号’,无法显示如图所示: 后台的同学也试验了网 ...
- 接口自动化、移动端、web端自动化如何做?
1.<Python+Appium移动端自动化项目实战>-带您进入APP自动化测试的世界https://yuedu.baidu.com/ebook/765b38a5690203d8ce2f0 ...
随机推荐
- 九度OJ1000
题目描述: 求整数a,b的和. 输入: 测试案例有多行,每行为a,b的值. 输出: 输出多行,对应a+b的结果. 样例输入: 1 2 4 5 6 9 样例输出: 3 9 15 代码实现: #inclu ...
- css 的包含块 、负外边距,字体,文本行高
一.包含块 目的:确定元素的位置和相对大小(%) 1.正常文档流元素和浮动元素 ---- 父元素的 content-box 2.绝对定位元素 ---- 父元素的 padding-box 3.固定定位元 ...
- strtok函数 分类: c++ 2014-11-02 15:24 214人阅读 评论(0) 收藏
strtok函数是cstring文件中的函数 strtok函数是cstring文件中的函数 其功能是截断字符串 原型为:char *strtok(char s[],const char *delin) ...
- [COGS 2051] 王者之剑
Saber大法吼 2051. 王者之剑 ★★★☆ 输入文件:Excalibur.in 输出文件:Excalibur.out 简单对比时间限制:1 s 内存限制:256 MB [题目描述 ...
- [Android FrameWork 6.0源码学习] View的重绘过程之Layout
View绘制的三部曲,测量,布局,绘画现在我们分析布局部分测量部分在上篇文章中已经分析过了.不了解的可以去我的博客里找一下 View的布局和测量一样,都是从ViewRootImpl中发起,ViewRo ...
- TCP 滑动窗口
滑动窗口协议 流量控制方法 PUSH 慢启动 隔一个报文段确认"的策略实际就是因为 delayed ack,同时接收到两个待确认的ACK包时,就立即发送确认包. 滑动窗口实例 解 ...
- vuex状态管理,state,getters,mutations,actons的简单使用(一)
之前的文章中讲过,组件之间的通讯我们可以用$children.$parent.$refs.props.data... 但问题来了,假如项目特别大,组件之间的通讯可能会变得十分复杂... 这个时候了我们 ...
- 邻接表(C++)
adj_list_network_edge.h // 邻接表网边数据类模板 template <class WeightType> class AdjListNetworkEdge { p ...
- mysql获取当前时间,前一天,后一天
负责的项目中,使用的是mysql数据库,页面上要显示当天所注册人数的数量,获取当前的年月日,我使用的是 CURDATE(), 错误的sql语句 eg:SELECT COUNT(*) FROM USER ...
- [机器学习] Apriori算法
适用场合 Apriori算法包含两部分内容:1,发现频繁项集 2,挖掘关联规则. 通俗地解释一下,就是这个意思:1.发现哪些项目常常同时出现 2.挖掘这些常常出现的项目是否存在“如果A那么B”的关系. ...