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 ...
随机推荐
- js实现轮播图效果(附源码)--原生js的应用
1.js实现轮播图效果 <!DOCTYPE html><html lang="en"><head> <meta charset=" ...
- git相关的学习资料
1, 一个比较详细的git使用说明: http://blog.jobbole.com/78960/
- css简单实现五角星评分、点赞收藏、展示评分(半颗星、1/3颗星)
1.前言 之前做的好几个项目中,都会遇到打分,评分,点赞这样的需求,写了很多次,每次需要再写的时候,就会翻出之前写过的代码,然后copy过来.总觉得这样的话没有进步,没有把知识放进脑袋里,所以,自己花 ...
- word2vec原理(一) CBOW与Skip-Gram模型基础
word2vec原理(一) CBOW与Skip-Gram模型基础 word2vec原理(二) 基于Hierarchical Softmax的模型 word2vec原理(三) 基于Negative Sa ...
- suffix tree
文章出处:http://www.cnblogs.com/snowberg/archive/2011/10/21/2468588.html 3 What is a Suffix Tree Suf ...
- 页面嵌套frame,Selenium定位问题
有时候,什么定位元素的方法都试过了,还是定位不到元素,就考虑frame切换问题 driver.switchTo().frame("定位到的frame元素"); //接下来就可以在这 ...
- 敏捷视界:Scrum起源、Scrum术语
Scrum起源 Scrum的原始含义 Scrum原始含义是指英式橄榄球次要犯规时在犯规地点对阵争球.争球双方各有8个队员参与,各方出3名前锋队员,并肩各站成一横排,面对面躬身互相顶肩,中间形成一条通道 ...
- 扩展Python模块系列(一)----开发环境配置
本系列将介绍如何用C/C++扩展Python模块,使用C语言编写Python模块,添加到Python中作为一个built-in模块.Python与C之间的交互目前有几种方案: 1. 原生的Python ...
- 有关XSS的一个系列教程
在乌云发现了一个有关XSS的教程,目前有21篇,够我慢慢儿学的了. 这个系列教程的地址:http://www.wooyun.org/whitehats/心伤的瘦子/page/1 几个常见的语句 < ...
- 吃奶酪 洛谷 p1433
题目描述 房间里放着n块奶酪.一只小老鼠要把它们都吃掉,问至少要跑多少距离?老鼠一开始在(0,0)点处. 输入输出格式 输入格式: 第一行一个数n (n<=15) 接下来每行2个实数,表示第i块 ...