这篇文章主要介绍了 js 根据手机客户端浏览器类型,判断跳转官网 / 手机网站多个实例代码, 需要的朋友可以参考下
Javascript 是一种由 Netscape 的 LiveScript 发展而来的原型化继承的基于对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如 Perl,遗留的速度问题,为客户提供更流畅的浏览效果。
实例一、比较简单粗暴缺少点类型判断
- <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>
- -->
- <!--智能手机判断结束-->
实例四、简洁 phperz 推荐使用,如果您有更好的代码可以分享
- <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>
来源: http://www.phperz.com/article/17/0225/266063.html