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 相关文章推荐
javascript面向对象的方式实现的弹出层效果代码
Jan 28 Javascript
JavaScript实现QueryString获取GET参数的方法
Jul 02 Javascript
jquery toolbar与网页浮动工具条具体实现代码
Jan 12 Javascript
AngularJS的一些基本样式初窥
Jul 27 Javascript
js实现获取当前时间是本月第几周的方法
Aug 11 Javascript
表单验证插件Validation应用的实例讲解
Oct 10 Javascript
Easyui笔记2:实现datagrid多行删除的示例代码
Jan 14 Javascript
ES6新数据结构Map功能与用法示例
Mar 31 Javascript
angularjs实现table表格td单元格单击变输入框/可编辑状态示例
Feb 21 Javascript
es6中Promise 对象基本功能与用法实例分析
Feb 23 Javascript
vue组件入门知识全梳理
Sep 21 Javascript
TypeScript中条件类型精读与实践记录
Oct 05 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 APC配置文件2套和参数详解
2014/06/11 PHP
thinkphp整合微信支付代码分享
2016/11/24 PHP
Yii2框架控制器、路由、Url生成操作示例
2019/05/27 PHP
北京奥运官方网站幻灯切换效果flash版打包下载
2008/01/30 Javascript
JS OffsetParent属性深入解析
2014/01/13 Javascript
JavaScript 学习笔记之操作符
2015/01/14 Javascript
javascript事件冒泡和事件捕获详解
2015/05/26 Javascript
JS中处理时间之setUTCMinutes()方法的使用
2015/06/12 Javascript
图解js图片轮播效果
2015/12/20 Javascript
JSON 的正确用法探讨:Pyhong、MongoDB、JavaScript与Ajax
2016/05/15 Javascript
基于jQuery实现滚动刷新效果
2017/01/09 Javascript
将angular-ui的分页组件封装成指令的方法详解
2017/05/10 Javascript
vue组件开发之用户无限添加自定义填写表单的方法
2018/08/28 Javascript
微信小程序实现单选功能
2018/10/30 Javascript
js+canvas实现画板功能
2020/09/13 Javascript
Python  __getattr__与__setattr__使用方法
2008/09/06 Python
python 获取et和excel的版本号
2009/04/09 Python
Pthon批量处理将pdb文件生成dssp文件
2015/06/21 Python
小米5s微信跳一跳小程序python源码
2018/01/08 Python
Tensorflow 查看变量的值方法
2018/06/14 Python
对python 数据处理中的LabelEncoder 和 OneHotEncoder详解
2018/07/11 Python
使用TensorFlow实现SVM
2018/09/06 Python
Django安装配置mysql的方法步骤
2018/10/15 Python
python实现视频分帧效果
2019/05/31 Python
python如何统计代码运行的时长
2019/07/24 Python
Pytorch mask_select 函数的用法详解
2020/02/18 Python
详解python tcp编程
2020/08/24 Python
Kmeans均值聚类算法原理以及Python如何实现
2020/09/26 Python
python批量检查两个对应的txt文件的行数是否一致的实例代码
2020/10/31 Python
python分布式爬虫中消息队列知识点详解
2020/11/26 Python
CSS3 background-image颜色渐变的实现代码
2018/09/13 HTML / CSS
Geekbuying波兰:购买中国电子产品
2019/10/20 全球购物
药物学专业学生的自我评价
2013/10/27 职场文书
授权委托书怎么写
2014/04/03 职场文书
卖房协议书
2014/04/11 职场文书
优秀工会工作者事迹材料
2014/06/02 职场文书