用indexOf判断设备
通过userAgent去判断,先判断是否为移动端,可以判断是iOS终端和Android终端,也可以具体到应用进行判断微信,微博,qq访问。
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>用indexof判断设备</title> </head> <body> <a href="javascript:;" id="J_checkplatformbtn">用indexOf判断设备</a><script> window.onload=function(){ var browser = { versions: function() { var u = navigator.userAgent, ua = navigator.userAgent.toLowerCase(); return { //内核,比如ie,firefox,chrome,opera,苹果 trident: u.indexOf('Trident') > -1, //IE内核 gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1, //火狐内核 webkit: u.indexOf('AppleWebKit') > -1, //苹果、谷歌内核 presto: u.indexOf('Presto') > -1, //opera内核 //终端,操作系统,比如PC端,os,移动端,ios,android mobile: !!u.match(/AppleWebKit.*Mobile.*/), //是否为移动终端 ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios终端 android: u.indexOf('Android') > -1 || u.indexOf('Linux') > -1, //android终端或uc浏览器 //设备,比如iphone,ipad iphone: u.indexOf('iPhone') > -1, //是否为iPhone或者QQHD浏览器 ipad: u.indexOf('iPad') > -1, //是否iPad //应用程序,比如Safari浏览器,UC浏览器,微信,微博,QQ webapp: u.indexOf('Safari') == -1, //是否web应用程序,没有头部与底部 wechat: ua.match(/MicroMessenger/i) == "micromessenger", //微信 weibo: ua.match(/WeiBo/i) == "weibo", //微博 qq: ua.match(/QQ/i) == "qq" //qq }; }(), language: (navigator.browserLanguage || navigator.language).toLowerCase() //检测浏览器语言 }; //检查设备, mainFun function checkDevice(){ if (browser.versions.mobile) { //在移动端浏览器打开 if (browser.versions.ios) { //在IOS浏览器打开 alert('ios操作系统'+ navigator.userAgent); }if (browser.versions.android) { //在安卓浏览器打开 alert('android操作系统'+ navigator.userAgent); }if (browser.versions.iphone) { //在iphone中打开 alert('iphone设备'+ navigator.userAgent); }if (browser.versions.ipad) { //在ipad中打开 alert('ipad设备'+ navigator.userAgent); }if (browser.versions.webapp) { //在webapp中打开 alert('webapp应用程序'+ navigator.userAgent); }if (browser.versions.wechat) { //在微信中打开 alert('wechat应用程序'+ navigator.userAgent); }if (browser.versions.weibo) { //在新浪微博客户端打开 alert('weibo应用程序'+ navigator.userAgent); }if (browser.versions.qq) { //在QQ空间打开 alert('qq应用程序'+ navigator.userAgent); } } else { //在PC端浏览器打开 if (browser.versions.trident) { //在IE浏览器打开 alert('在IE浏览器打开'+ navigator.userAgent); }if (browser.versions.gecko) { //在火狐浏览器打开 alert('在火狐浏览器打开'+ navigator.userAgent); }if (browser.versions.webkit) { //在苹果、谷歌浏览器打开 alert('在苹果、谷歌浏览器打开'+ navigator.userAgent); }if (browser.versions.presto) { //在opera浏览器打开 alert('在opera浏览器打开'+ navigator.userAgent); } } }; function addEvent(obj,type,handle){ try{ // Chrome、FireFox、Opera、Safari、IE9.0及其以上版本 obj.addEventListener(type,handle,false); }catch(e){ try{ // IE8.0及其以下版本 obj.attachEvent('on' + type,handle); }catch(e){ // 早期浏览器 obj['on' + type] = handle; } } } //这里使用 try{ ... } catch(e){ ... } 代替 if ... else... 语句,避免浏览器出现错误提示。 var triggerbtn=document.getElementById('J_checkplatformbtn'); addEvent(triggerbtn,'click',checkDevice); } </script> </body> </html>
用indexOf判断设备的更多相关文章
- 用indexOf判断设备是否是PC端?
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- js判断设备,跳转app应用、android市场或者AppStore
js移动设备判断方法大全 <!DOCTYPE html> <html> <head> <meta charset="UTF-8" > ...
- js检查判断设备
js检查判断设备 var navigatorType = {}; var u=navigator.userAgent; navigatorType.IsIE= u.indexOf('Trident') ...
- IOS判断设备是否已越狱
转自:http://www.cnblogs.com/supercheng/archive/2012/12/05/2804166.html - (BOOL)isJailbroken { BOOL jai ...
- JS判断设备终端(PC,iPad,iPhone,android,winPhone)和浏览器
JS判断设备终端(PC,iPad,iPhone,android,winPhone)和浏览器 var ua = navigator.userAgent; var browser = {}, weixin ...
- 判断iPhone和iPad 判断设备版本
//判断iPhone和iPad #define IS_IPHONE (!IS_IPAD) #define IS_IPAD (UI_USER_INTERFACE_IDIOM() != UIUserInt ...
- 调用[[UIDevice currentDevice] userInterfaceIdiom]==UIUserInterfaceIdiomPad判断设备
将模拟器改为Ipad时,调用[[UIDevice currentDevice] userInterfaceIdiom]==UIUserInterfaceIdiomPad判断设备是否为Ipad,但程序并 ...
- (原) Jquery 判断设备是PC端,还是移动端
判断设备是PC端,还是移动端 var ua = navigator.userAgent.toLocaleLowerCase(); var pf = navigator.platform.toLocal ...
- Android之判断设备网络连接状态,并判断连接方式
在Android开发过程中,对于一个需要连接网络的Android设备,对设备的网络状态检测是很有必要的!有很多的App都需要连接网络.判断设备是否已经连接网络,并且在连接网络的状态下判断是wifi无线 ...
随机推荐
- Currency Exchange(Bellman-ford)
Currency Exchange Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 21349 Accepted: 765 ...
- Python 常用函数大体分类
==================系统库函数================ 字符串函数 举例数学函数 import math val=math.sin(3.14/6) val=math.sin(m ...
- poj3295
Tautology Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 10453 Accepted: 3967 Descri ...
- Linux 磁盘的组成
基本结构 磁道,扇区,柱面和磁头数 硬盘最基本的组成部分是由坚硬金属材料制成的涂以磁性介质的盘片,不同容量硬盘的盘片数不等.每个盘片有两面,都可记录信息. 每个磁道被分成许多扇形的区域,每个区域叫一个 ...
- Android 云服务器的搭建和友盟APP自动更新功能的实现
setContentView(R.layout.activity_splash); //Bmob SDK初始化--只需要这一段代码即可完成初始化 //请到Bmob官网(http://www.bmob. ...
- spring中context:property-placeholder/元素
1.有些参数在某些阶段中是常量 比如 :a.在开发阶段我们连接数据库时的连接url,username,password,driverClass等 b.分布式应用中client端访问server端所用的 ...
- 面向侧面的程序设计AOP-------《二》本质
本文转载自张逸:晴窗笔记 AOP技术本质 2.2.1 技术概览 AOP(Aspect-Oriented Programming,面向方面编程),可以说是OOP(Object-Oriented Prog ...
- cocos2d-x如何解决图片显示模糊问题
转载http://zhidao.baidu.com/link?url=JTUKP5quGfMQixLZSvtC2XlKMkQDyQbYW72_DRyD6KDRpkLs8_6poQtKkwsyqzU8q ...
- PHP 转换接口编码
2014年10月20日 10:45:19 有些时候调用接口的时候返回数据的编码不是utf-8的,需要转码 foreach ($arrInfo as $k => $v) { $encodeing ...
- Java for LeetCode 071 Simplify Path
Given an absolute path for a file (Unix-style), simplify it. For example, path = "/home/", ...