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 订制自己的AlertBox(信息提示框)
Jan 09 Javascript
javascript 事件查询综合 推荐收藏
Mar 10 Javascript
Javascript的一种模块模式
Sep 08 Javascript
js利用数组length属性清空和截短数组的小例子
Jan 15 Javascript
js图片处理示例代码
May 12 Javascript
Javascript递归打印Document层次关系实例分析
May 15 Javascript
JS实现表单验证功能(验证手机号是否存在,验证码倒计时)
Oct 11 Javascript
js放到head中失效的原因与解决方法
Mar 07 Javascript
vue中vee validate表单校验的几种基本使用
Jun 25 Javascript
Angular6 发送手机验证码按钮倒计时效果实现方法
Jan 08 Javascript
JavaScript之实现一个简单的Vue示例
Jan 17 Javascript
JS字符串常用操作方法实例小结
Jun 24 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设计模式之代理模式的深入解析
2013/06/13 PHP
php中使用PHPExcel读写excel(xls)文件的方法
2014/09/15 PHP
[原创]PHP字符串中插入子字符串方法总结
2016/05/06 PHP
Zend Framework数据库操作方法实例总结
2016/12/11 PHP
thinkPHP5.0框架应用请求生命周期分析
2017/03/25 PHP
javaScript同意等待代码实现心得
2011/01/01 Javascript
jquery内置验证(validate)使用方法示例(表单验证)
2013/12/04 Javascript
JQuery调用WebServices的方法和4个实例
2014/05/06 Javascript
js加入收藏夹代码(兼容ie/ff/op)
2014/05/16 Javascript
jQuery实现鼠标单击网页文字后在文本框显示的方法
2015/05/06 Javascript
详细分析JavaScript函数定义
2015/07/16 Javascript
Struts2+jquery.form.js实现图片与文件上传的方法
2016/05/05 Javascript
JavaScript暂停和继续定时器的实现方法
2016/07/18 Javascript
jQuery实现点击查看大图并以弹框的形式居中
2016/08/08 Javascript
H5用户注册表单页 注册模态框!
2016/09/17 Javascript
浅析jQuery操作select控件的取值和设值
2016/12/07 Javascript
AngularJs用户登录问题处理(交互及验证、阻止FQ处理)
2017/10/26 Javascript
浅谈vue-cli加载不到dev-server.js的解决办法
2017/11/24 Javascript
webpack多入口文件页面打包配置详解
2018/01/09 Javascript
AngularJS中重新加载当前路由页面的方法
2018/03/09 Javascript
深入理解Vue Computed计算属性原理
2018/05/29 Javascript
轻量级的Web框架Flask 中模块化应用的实现
2017/09/11 Python
对python 匹配字符串开头和结尾的方法详解
2018/10/27 Python
python实现的生成word文档功能示例
2019/08/23 Python
通过python扫描二维码/条形码并打印数据
2019/11/14 Python
python调用函数、类和文件操作简单实例总结
2019/11/29 Python
python matplotlib中的subplot函数使用详解
2020/01/19 Python
详解css3中dispaly的Grid布局与Flex布局
2020/09/11 HTML / CSS
美国女孩洋娃娃店:American Girl
2017/10/24 全球购物
Unix控制后台进程都有哪些进程
2016/09/22 面试题
服装创业计划书范文
2014/02/05 职场文书
自查自纠工作总结
2014/10/15 职场文书
小学生五一劳动节演讲稿
2015/03/18 职场文书
2015庆祝七一建党节94周年活动总结
2015/03/20 职场文书
Django一小时写出账号密码管理系统
2021/04/29 Python
nodejs利用readline提示输入内容实例代码
2021/07/15 NodeJs