用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无线 ...
随机推荐
- hibernate中几个接口作用
1.Configuration 类 Configuration 类负责管理 Hibernate 的配置信息,包括数据库的URL.用户名.密码.JDBC驱动类,数据库Dialect,数据库连接池等,其加 ...
- 输入的全角字符转换成半角字符--css、js、ASP.NET
我们经常需要用户在表单中输入数字,用户不小心使用了全角状态输入数字,但是在程序中全角的数字是不能直接转换为数字的.这种全角数字的错误处理起来就有些麻烦了.对一些没有经验用户来说明明已经输入数字了,怎么 ...
- Linux中常用的查看系统信息的命令
导读 Linux是一个神奇而又高效的操作系统,学完Linux对Linux系统有一个熟悉的了解后,你需要了解下这些实用的查看系统信息的命令. 查看系统版本命令 uname 谈到系统版本就一定会想到una ...
- Public and Private Interfaces in ruby
Your latest client is a bank, and they’ve tasked you with requiring customers to enter their passwor ...
- 白手起家搭建django app
$django-admin.py startproject web2 $cd web2/ $python manage.py startapp blog $vim web2/settings.py 注 ...
- LNK2005 连接错误解决办法
nafxcwd.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new(unsigned int)" (??2@ ...
- TCP/IP协议原理【转载】
前述 各种L2数据网具有不同的通信协议与帧结构,其网络节点设备可以是各种类型的数据交换机(X.25.FR.Ethernet和ATM等分组交换机):而L3数据网(IP网或internet) ...
- ZooKeeper 安装部署
一.解压 tar -zxvf zookeeper-3.3.5.tar.gz 二.将zookeeper-3.3.4/conf目录下面的 zoo_sample.cfg修改为zoo.cfg,配置文件内容如下 ...
- Android 云服务器的搭建和友盟APP自动更新功能的实现
setContentView(R.layout.activity_splash); //Bmob SDK初始化--只需要这一段代码即可完成初始化 //请到Bmob官网(http://www.bmob. ...
- LInux 安全测试
[CVE-2013-2094]Linux PREF_EVENTS Local Root 2.6.37-3.8.10 x86_64 踩(0)http://zone.wooyun.org/content/ ...