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 编写匿名函数的几种方法
Feb 21 Javascript
一个基于jquery的图片切换效果
Jul 06 Javascript
JavaScript实现的GBK、UTF8字符串实际长度计算函数
Aug 27 Javascript
JavaScript将取代AppleScript?
Sep 18 Javascript
JavaScript使用循环和分割来替换和删除元素实例
Oct 13 Javascript
JavaScript中的数学运算介绍
Dec 29 Javascript
JavaScript检测鼠标移动方向的方法
May 22 Javascript
jQuery代码实现实时获取时间
Jan 29 Javascript
vue 项目常用加载器及配置详解
Jan 22 Javascript
animate.css在vue项目中的使用教程
Aug 05 Javascript
通过javascript实现段落的收缩与展开
Jun 26 Javascript
Vue中axios的封装(报错、鉴权、跳转、拦截、提示)
Aug 20 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
《Pokemon Sword·Shield》系列WEB动画《薄明之翼》第2话声优阵容公开!
2020/03/06 日漫
记录一次排查PHP脚本执行卡住的问题
2016/12/27 PHP
基于win2003虚拟机中apache服务器的访问
2017/08/01 PHP
求得div 下 img的src地址的js代码
2007/02/28 Javascript
推荐20家国外的脚本下载网站
2011/04/28 Javascript
jquery遍历筛选数组的几种方法和遍历解析json对象
2013/12/13 Javascript
JS正则表达式比较常见用法
2016/01/26 Javascript
基于JavaScript判断浏览器到底是关闭还是刷新(超准确)
2016/02/01 Javascript
jquery实现的判断倒计时是否结束代码
2016/02/05 Javascript
JS实现密码框的显示密码和隐藏密码功能示例
2016/12/26 Javascript
利用Javascript裁剪图片并存储的简单实现
2017/03/13 Javascript
Nodejs模块载入运行原理
2018/02/23 NodeJs
微信小程序使用wxParse解析html的方法教程
2018/07/06 Javascript
vue使用el-upload上传文件及Feign服务间传递文件的方法
2019/03/15 Javascript
vue-element-admin 菜单标签失效的解决方式
2019/11/12 Javascript
vue路由分文件拆分管理详解
2020/08/13 Javascript
[50:28]LGD女子学院第三期 DOTA2复仇之魂教学
2013/12/24 DOTA
Python装饰器decorator用法实例
2014/11/10 Python
Python实现身份证号码解析
2015/09/01 Python
python文件操作相关知识点总结整理
2016/02/22 Python
python 日期操作类代码
2018/05/05 Python
Django中ORM外键和表的关系详解
2019/05/20 Python
如何通过雪花算法用Python实现一个简单的发号器
2019/07/03 Python
Pycharm 2020最新永久激活码(附最新激活码和插件)
2020/09/17 Python
Python-opencv 双线性插值实例
2020/01/17 Python
浅谈matplotlib默认字体设置探索
2021/02/03 Python
Stefania Mode美国:奢华设计师和时尚服装
2018/01/07 全球购物
自我评价个人范文
2013/12/16 职场文书
酒店门卫岗位职责
2013/12/29 职场文书
2014乡镇党政班子四风问题思想汇报
2014/09/14 职场文书
2015年党员个人剖析材料
2014/12/18 职场文书
廉洁自律承诺书2015
2015/01/22 职场文书
房地产公司财务总监岗位职责
2015/04/03 职场文书
2016新年感言
2015/08/03 职场文书
2019年度开业庆典祝福语大全!
2019/07/05 职场文书
PyCharm配置KBEngine快速处理代码提示冲突、配置命令问题
2021/04/03 Python