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 相关文章推荐
js验证表单第二部分
Nov 25 Javascript
一个对于js this关键字的问题
Jan 09 Javascript
看了就知道什么是JSON
Dec 09 Javascript
javascript 显示当前系统时间代码
Dec 28 Javascript
javascript实现焦点滚动图效果 具体方法
Jun 24 Javascript
运用JQuery的toggle实现网页加载完成自动弹窗
Mar 18 Javascript
Js保留小数点的4种效果实现代码分享
Apr 12 Javascript
vue判断input输入内容全是空格的方法
Mar 02 Javascript
angular第三方包开发整理(小结)
Apr 19 Javascript
详解Express笔记之动态渲染HTML(新手入坑)
Dec 13 Javascript
JS实现判断移动端PC端功能
Feb 21 Javascript
vue实现移动端触屏拖拽功能
Aug 21 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设计聊天室步步通
2006/10/09 PHP
让codeigniter与swfupload整合的最佳解决方案
2014/06/12 PHP
CakePHP框架Model函数定义方法示例
2017/08/04 PHP
js Function类型
2011/12/04 Javascript
浅谈JS日期(Date)处理函数
2014/12/07 Javascript
JavaScript中eval()函数用法详解
2015/12/14 Javascript
深入理解Ajax的get和post请求
2016/06/02 Javascript
关于Jquery中的bind(),on()绑定事件方式总结
2016/10/26 Javascript
jquery实现简单的瀑布流布局
2016/12/11 Javascript
从零学习node.js之利用express搭建简易论坛(七)
2017/02/25 Javascript
在 Node.js 中使用原生 ES 模块方法解析
2017/09/19 Javascript
老生常谈JS中的继承及实现代码
2018/07/06 Javascript
JavaScript数据结构与算法之检索算法示例【二分查找法、计算重复次数】
2019/02/22 Javascript
微信小程序下拉框搜索功能的实现方法
2019/07/31 Javascript
js实现消灭星星(web简易版)
2020/03/24 Javascript
通过实例解析json与jsonp原理及使用方法
2020/09/27 Javascript
javascript前端实现多视频上传
2020/12/13 Javascript
Python实现豆瓣图片下载的方法
2015/05/25 Python
python脚本设置系统时间的两种方法
2016/02/21 Python
Python及PyCharm下载与安装教程
2017/11/18 Python
Python利用ORM控制MongoDB(MongoEngine)的步骤全纪录
2018/09/13 Python
python3 面向对象__类的内置属性与方法的实例代码
2018/11/09 Python
Python Pandas数据中对时间的操作
2019/07/30 Python
Pandas —— resample()重采样和asfreq()频度转换方式
2020/02/26 Python
Python使用type动态创建类操作示例
2020/02/29 Python
Tensorflow中的降维函数tf.reduce_*使用总结
2020/04/20 Python
Html5定位终极解决方案
2020/02/05 HTML / CSS
酒吧副总经理岗位职责
2013/12/10 职场文书
户外活动策划方案
2014/03/12 职场文书
给医院的感谢信
2015/01/21 职场文书
2015年酒店前台工作总结
2015/04/20 职场文书
2015年社区教育工作总结
2015/05/13 职场文书
小学英语听课心得体会
2016/01/14 职场文书
Mysql - 常用函数 每天积极向上
2021/04/05 MySQL
Python中zipfile压缩包模块的使用
2021/05/14 Python
HTML常用标签超详细整理
2022/03/19 HTML / CSS