js根据手机客户端浏览器类型,判断跳转官网/手机网站多个实例代码


Posted in Javascript onApril 30, 2016

实例一、比较简单粗暴缺少点类型判断

<script type="text/javascript"> 
    
        var sUserAgent = navigator.userAgent.toLowerCase(); 
        var bIsIpad = sUserAgent.match(/ipad/i) == "ipad"; 
        var bIsIphoneOs = sUserAgent.match(/iphone os/i) == "iphone os"; 
        var bIsMidp = sUserAgent.match(/midp/i) == "midp"; 
        var bIsUc7 = sUserAgent.match(/rv:1.2.3.4/i) == "rv:1.2.3.4"; 
        var bIsUc = sUserAgent.match(/ucweb/i) == "ucweb"; 
        var bIsAndroid = sUserAgent.match(/android/i) == "android"; 
        var bIsCE = sUserAgent.match(/windows ce/i) == "windows ce"; 
        var bIsWM = sUserAgent.match(/windows mobile/i) == "windows mobile"; 
        if (bIsIpad || bIsIphoneOs || bIsMidp || bIsUc7 || bIsUc || bIsAndroid || bIsCE || bIsWM ){ 
          window.location.href="3g.php";
        } 
      
         
</script>

实例二、代码工整,很多的函数都基于这个增加的功能

<script>
	var pc_style = ""
	var browser = {
	versions: function () {
	var u = navigator.userAgent, app = navigator.appVersion;
	return {
	trident: u.indexOf('Trident') > -1,
	presto: u.indexOf('Presto') > -1,
	webKit: u.indexOf('AppleWebKit') > -1,
	gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1,
	mobile: !!u.match(/AppleWebKit.*Mobile.*/) || !!u.match(/AppleWebKit/) && u.indexOf('QIHU') && u.indexOf('QIHU') > -1 && u.indexOf('Chrome') < 0,
	ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/),
	android: u.indexOf('Android') > -1 || u.indexOf('Linux') > -1,
	iPhone: u.indexOf('iPhone') > -1 || u.indexOf('Mac') > -1,
	iPad: u.indexOf('iPad') > -1,
	webApp: u.indexOf('Safari') == -1,
	ua: u
	};
	}(),
	language: (navigator.browserLanguage || navigator.language).toLowerCase()
	}

	if (browser.versions.mobile && !browser.versions.iPad) {
	this.location = "此处输入跳转微站首页地址";
	}
</script>

实例三、增加了一些功能

<!--智能手机判断开始-->
<!--
	 <script type = "text/javascript" language = "javascript" >
	Function.prototype.bind = function (bindObj, args) {
	var _self = this;
	return function () {
		return _self.apply(bindObj, [].concat(args))
	}
};
function $(id) {
	return "string" == typeof id ? document.getElementById(id) : id;
};

var browser = {
	versions : function () {
		var u = navigator.userAgent,
		app = navigator.appVersion;
		return {
			trident : u.indexOf('Trident') > -1,
			presto : u.indexOf('Presto') > -1,
			webKit : u.indexOf('AppleWebKit') > -1,
			gecko : u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1,
			mobile : !!u.match(/AppleWebKit.*Mobile.*/) || !!u.match(/AppleWebKit/),
			ios : !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/),
			android : u.indexOf('Android') > -1 || u.indexOf('Linux') > -1,
			iPhone : u.indexOf('iPhone') > -1 || u.indexOf('Mac') > -1,
			iPad : u.indexOf('iPad') > -1,
			webApp : u.indexOf('Safari') == -1,
			QQbrw : u.indexOf('MQQBrowser') > -1,
			ucLowEnd : u.indexOf('UCWEB7.') > -1,
			ucSpecial : u.indexOf('rv:1.2.3.4') > -1,
			ucweb : function () {
				try {
					return parseFloat(u.match(/ucweb\d+\.\d+/gi).toString().match(/\d+\.\d+/).toString()) >= 8.2
				} catch (e) {
					if (u.indexOf('UC') > -1) {
						return true;
					} else {
						return false;
					}
				}
			}
			(),
			Symbian : u.indexOf('Symbian') > -1,
			ucSB : u.indexOf('Firefox/1.') > -1
		};
	}
	()
}
var _gaq = _gaq || [];
(function (win, browser, undefined) {
	var rf = document.referrer;
	if (rf === "" || rf.toLocaleLowerCase().indexOf(".xiu.com") === -1) {
		var defaultJumpDomain = "";
		if (defaultJumpDomain == "www") {
			return;
		}
		if (defaultJumpDomain == "m") {
			window.location.href = "http://wap.xiu.com/?from=pc";
			return;
		}
		if (screen == undefined || screen.width < 810) {
			if (browser.versions.iPad == true) {
				return;
			}
			if (browser.versions.webKit == true || browser.versions.mobile == true || browser.versions.ios == true || browser.versions.iPhone == true || browser.versions.ucweb == true || browser.versions.ucSpecial == true) {
				win.location.href = "http://wap.xiu.com/?from=pc";
				return;
			}
			if (browser.versions.Symbian) {
				win.location.href = "http://wap.xiu.com/";
			}
		}
	}
})(window, browser);

 </script>
-->
<!--智能手机判断结束-->

实例四、简洁三水点靠木推荐使用,如果您有更好的代码可以分享

<script type="text/javascript">
var browser = {
	versions : function () {
		var u = navigator.userAgent,
		app = navigator.appVersion;
		return {
			trident : u.indexOf('Trident') > -1,
			presto : u.indexOf('Presto') > -1,
			webKit : u.indexOf('AppleWebKit') > -1,
			gecko : u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1,
			mobile : !!u.match(/AppleWebKit.*Mobile.*/) || !!u.match(/AppleWebKit/),
			ios : !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/),
			android : u.indexOf('Android') > -1 || u.indexOf('Linux') > -1,
			iPhone : u.indexOf('iPhone') > -1 || u.indexOf('Mac') > -1,
			iPad : u.indexOf('iPad') > -1,
			webApp : u.indexOf('Safari') == -1,
			QQbrw : u.indexOf('MQQBrowser') > -1,
			weiXin : u.indexOf('MicroMessenger') > -1,
			ucLowEnd : u.indexOf('UCWEB7.') > -1,
			ucSpecial : u.indexOf('rv:1.2.3.4') > -1,
			ucweb : function () {
				try {
					return parseFloat(u.match(/ucweb\d+\.\d+/gi).toString().match(/\d+\.\d+/).toString()) >= 8.2
				} catch (e) {
					if (u.indexOf('UC') > -1) {
						return true;
					} else {
						return false;
					}
				}
			}
			(),
			Symbian : u.indexOf('Symbian') > -1,
			ucSB : u.indexOf('Firefox/1.') > -1
		};
	}
	(),
	liulanqi : navigator.userAgent
}
if (browser.versions.QQbrw){
document.write("qq浏览器");
}else
{
document.write("其它浏览器"+browser.liulanqi);
}
</script>
Javascript 相关文章推荐
让iframe子窗体取父窗体地址栏参数(querystring)
Oct 13 Javascript
EasyUI中的tree用法介绍
Nov 01 Javascript
cnblogs 代码高亮显示后的代码复制问题解决实现代码
Dec 14 Javascript
用js一次改变多个input的readonly属性值的方法
Jun 11 Javascript
JavaScript中对DOM节点的访问、创建、修改、删除
Nov 16 Javascript
String字符串截取的四种方式总结
Nov 28 Javascript
Bootstrap基本样式学习笔记之表格(2)
Dec 07 Javascript
红黑树的插入详解及Javascript实现方法示例
Mar 26 Javascript
JS数组去重常用方法实例小结【4种方法】
May 28 Javascript
JS实现随机抽选获奖者
Nov 07 Javascript
学前端,css与javascript重难点浅析
Jun 11 Javascript
js实现限定范围拖拽的示例
Oct 26 Javascript
js判断手机浏览器操作系统和微信浏览器的方法
Apr 30 #Javascript
js实现的万能flv网页播放器代码
Apr 30 #Javascript
js实现的下拉框二级联动效果
Apr 30 #Javascript
js实现精确到秒的日期选择器完整实例
Apr 30 #Javascript
js简单倒计时实现代码
Apr 30 #Javascript
一个用jquery写的判断div滚动条到底部的方法【推荐】
Apr 29 #Javascript
浅析jquery如何判断滚动条滚到页面底部并执行事件
Apr 29 #Javascript
You might like
php出现Cannot modify header information问题的解决方法大全
2008/04/09 PHP
php简单开启gzip压缩方法(zlib.output_compression)
2013/04/13 PHP
codeigniter显示所有脚本执行时间的方法
2015/03/21 PHP
PHP学习笔记之session
2018/05/06 PHP
当jQuery遭遇CoffeeScript的时候 使用分享
2011/09/17 Javascript
JavaScript中圆括号()和方括号[]的特殊用法疑问解答
2013/08/06 Javascript
js点击出现悬浮窗效果不使用JQuery插件
2014/01/20 Javascript
一个JavaScript操作元素定位元素的实例
2014/10/29 Javascript
javascript实现图像循环明暗变化的方法
2015/02/25 Javascript
JS实现双击编辑可修改状态的方法
2015/08/14 Javascript
教你如何终止JQUERY的$.AJAX请求
2016/02/23 Javascript
基于BootStrap Metronic开发框架经验小结【三】下拉列表Select2插件的使用
2016/05/12 Javascript
vue2.0+webpack环境的构造过程
2016/11/08 Javascript
JS/jQuery判断DOM节点是否存在的简单方法
2016/11/24 Javascript
jQuery validate插件功能与用法详解
2016/12/15 Javascript
Jquery实时监听input value的实例
2017/01/26 Javascript
Vue 2.x教程之基础API
2017/03/06 Javascript
React 子组件向父组件传值的方法
2017/07/24 Javascript
使用Node.js在深度学习中做图片预处理的方法
2019/09/18 Javascript
深入理解Python中的super()方法
2017/11/20 Python
centos 安装python3.6环境并配置虚拟环境的详细教程
2018/02/22 Python
python3 flask实现文件上传功能
2020/03/20 Python
numpy向空的二维数组中添加元素的方法
2018/11/01 Python
python利用selenium进行浏览器爬虫
2019/04/25 Python
python读取并定位excel数据坐标系详解
2019/06/26 Python
Python实现个人微信号自动监控告警的示例
2019/07/03 Python
Python绘制堆叠柱状图的实例
2019/07/09 Python
Python3+PyInstall+Sciter解决报错缺少dll、html等文件问题
2019/07/15 Python
Python Django 实现简单注册功能过程详解
2019/07/29 Python
Django微信小程序后台开发教程的实现
2020/06/03 Python
美国南部最大的家族百货公司:Belk
2017/01/30 全球购物
以工厂直接定价的传奇性能:Ben Hogan Golf
2019/01/04 全球购物
飞利浦西班牙官方网站:Philips西班牙
2020/02/17 全球购物
周年庆典邀请函范文
2014/01/23 职场文书
个人主要事迹材料
2014/08/26 职场文书
辞职信模板(中英文版)
2015/02/27 职场文书