用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无线 ...
随机推荐
- 键盘上各键对应的ASCII码与扫描码
键盘上各键对应的ASCII码与扫描码 vbKeyLButton 0x1 鼠标左键vbKeyRButton 0x2 鼠标右键vbKeyCancel 0x3 CANCEL 键vbKeyMButton 0x ...
- Java中Properties类的操作
知识学而不用,就等于没用,到真正用到的时候还得重新再学.最近在看几款开源模拟器的源码,里面涉及到了很多关于Properties类的引用,由于Java已经好久没用了,而这些模拟器大多用Java来写,外加 ...
- Linux rpm安装问题解决
1.安装时提示:warning: *.rpm: Header V3 RSA/SHA256 Signature, keykey ID c105b9de: NOKEY 解决的方法就是在rpm 语句后面加上 ...
- shell中常用的命令方法
<1>Linux Shell 脚本中字符串的连接方法 [root@localhost company]# var1=/etc/[root@localhost company]# var3= ...
- php __set() __get() __isset() __unset()四个方法的应用
一般来说,总是把类的属性定义为private,这更符合现实的逻辑.但是,对属性的读取 和赋值操作是非常频繁的,因此在PHP5 中,预定义了两个函数“__get()”和“__set()”来获 取和赋值其 ...
- 【Hibernate】Hibernate系列3之配置文件详解
配置文件详解 3.1.配置文件 连接池性能优化:http://www.cnblogs.com/xdp-gacl/p/4002804.html
- 【转】Spring@Autowired注解与自动装配
1 配置文件的方法 我们编写spring 框架的代码时候.一直遵循是这样一个规则:所有在spring中注入的bean 都建议定义成私有的域变量.并且要配套写上 get 和 set方法. Boss ...
- iOS 和Android中的正则表达式简单使用
ios 中需要使用NSRegularExpression类,NSTextCheckingResult类. 下面给出最基本的实现代码 NSRegularExpression *regex = [NSRe ...
- xcode 和 android studio中在Mac系统下的自动对齐快捷键
这个快捷键太常用了,又总忘记,记录下. xcode ctrl+i android studio win+alt+L
- (转)SQL SERVER的锁机制(一)——概述(锁的种类与范围)
锁定:通俗的讲就是加锁.锁定是 Microsoft SQL Server 数据库引擎用来同步多个用户同时对同一个数据块的访问的一种机制. 定义:当有事务操作时,数据库引擎会要求不同类型的锁定,如相关数 ...