百度判断手机终端并自动跳转js代码及使用实例


Posted in Javascript onJune 11, 2014

百度目前为站长提供了判断手机终端类型并自动实现跳转的js脚本,极大的方便了广大站长及web开发人员。其js脚本的使用方法极其简单。

<script src="http://siteapp.baidu.com/static/webappservice/uaredirect.js" type="text/javascript"></script>

<SCRIPT type=text/javascript>uaredirect("手机站","WEB站");</SCRIPT>

其中最为核心的js脚本格式化代码如下所示:
function uaredirect(f) {

    try {

        if (document.getElementById("bdmark") != null) {

            return

        }

        var b = false;

        if (arguments[1]) {

            var e = window.location.host;

            var a = window.location.href;

            if (isSubdomain(arguments[1], e) == 1) {

                f = f + "/#m/" + a;

                b = true

            } else {

                if (isSubdomain(arguments[1], e) == 2) {

                    f = f + "/#m/" + a;

                    b = true

                } else {

                    f = a;

                    b = false

                }

            }

        } else {

            b = true

        }

        if (b) {

            var c = window.location.hash;

            if (!c.match("fromapp")) {

                if ((navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i))) {

                    location.replace(f)

                }

            }

        }

    } catch(d) {}

}

function isSubdomain(c, d) {

    this.getdomain = function(f) {

        var e = f.indexOf("://");

        if (e > 0) {

            var h = f.substr(e + 3)

        } else {

            var h = f

        }

        var g = /^www\./;

        if (g.test(h)) {

            h = h.substr(4)

        }

        return h

    };

    if (c == d) {

        return 1

    } else {

        var c = this.getdomain(c);

        var b = this.getdomain(d);

        if (c == b) {

            return 1

        } else {

            c = c.replace(".", "\\.");

            var a = new RegExp("\\." + c + "$");

            if (b.match(a)) {

                return 2

            } else {

                return 0

            }

        }

    }

};

建议站长及web开发人员使用如下压缩后的js脚本
function uaredirect(f){try{if(document.getElementById("bdmark")!=null){return}var b=false;if(arguments[1]){var e=window.location.host;var a=window.location.href;if(isSubdomain(arguments[1],e)==1){f=f+"/#m/"+a;b=true}else{if(isSubdomain(arguments[1],e)==2){f=f+"/#m/"+a;b=true}else{f=a;b=false}}}else{b=true}if(b){var c=window.location.hash;if(!c.match("fromapp")){if((navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i))){location.replace(f)}}}}catch(d){}}function isSubdomain(c,d){this.getdomain=function(f){var e=f.indexOf("://");if(e>0){var h=f.substr(e+3)}else{var h=f}var g=/^www\./;if(g.test(h)){h=h.substr(4)}return h};if(c==d){return 1}else{var c=this.getdomain(c);var b=this.getdomain(d);if(c==b){return 1}else{c=c.replace(".","\\.");var a=new RegExp("\\."+c+"$");if(b.match(a)){return 2}else{return 0}}}};

PS:在此小编为大家推荐几款javascript格式化美化与压缩工具,类似上述的百度跳转代码压缩与格式化就可使用下述工具实现:

C语言风格/HTML/CSS/json代码格式化美化工具:
http://tools.3water.com/code/ccode_html_css_json

在线JavaScript代码美化、格式化工具:
http://tools.3water.com/code/js

JavaScript代码美化/压缩/格式化/加密工具:
http://tools.3water.com/code/jscompress

JavaScript在线压缩工具:
http://tools.3water.com/code/js_yasuo

JavaScript在线格式化工具(基于beautify.js插件):
http://tools.3water.com/code/js_beautify

Javascript 相关文章推荐
禁止F5等快捷键的JS代码
Mar 06 Javascript
JQuery.uploadify 上传文件插件的使用详解 for ASP.NET
Jan 22 Javascript
js时间比较示例分享(日期比较)
Mar 05 Javascript
jQuery带箭头提示框tooltips插件集锦
Nov 17 Javascript
js获取对象、数组的实际长度,元素实际个数的实现代码
Jun 08 Javascript
使用contextMenu插件实现Bootstrap table弹出右键菜单
Feb 20 Javascript
JS中实现函数return多个返回值的实例
Feb 21 Javascript
ES6中Symbol类型用法实例详解
Apr 06 Javascript
jQuery实现的简单无刷新评论功能示例
Nov 08 jQuery
基于jQuery实现定位导航位置效果
Nov 15 jQuery
layui 给数据表格加序号的方法
Aug 20 Javascript
vue实现匀速轮播效果
Jun 29 Javascript
js获取日期:昨天今天和明天、后天
Jun 11 #Javascript
js使用栈来实现10进制转8进制与取除数及余数
Jun 11 #Javascript
删除javascript中注释语句的正则表达式
Jun 11 #Javascript
Jquery自定义button按钮的几种方法
Jun 11 #Javascript
教你用jquery实现iframe自适应高度
Jun 11 #Javascript
浅析jQuery中调用ajax方法时在不同浏览器中遇到的问题
Jun 11 #Javascript
控制文字内容的显示与隐藏示例
Jun 11 #Javascript
You might like
Zend 输出产生XML解析错误
2009/03/03 PHP
如何使用Linux的Crontab定时执行PHP脚本的方法
2011/12/19 PHP
PHP提示Notice: Undefined variable的解决办法
2012/11/24 PHP
PHP的构造方法,析构方法和this关键字详细介绍
2013/10/22 PHP
php中get_object_vars()方法用法实例
2015/02/08 PHP
基于PHP实现的事件机制实例分析
2015/06/18 PHP
php计算整个目录大小的方法
2015/06/19 PHP
php输出控制函数和输出函数生成静态页面
2019/06/27 PHP
Js四则运算函数代码
2012/07/21 Javascript
浏览器打开层自动缓慢展开收缩实例代码
2013/07/04 Javascript
Javascript学习笔记之 对象篇(四) : for in 循环
2014/06/24 Javascript
JavaScript闭包函数访问外部变量的方法
2014/08/27 Javascript
javascript框架设计读书笔记之数组的扩展与修复
2014/12/02 Javascript
EasyUi 打开对话框后控件赋值及赋值后不显示的问题解决办法
2017/01/19 Javascript
基于 webpack2 实现的多入口项目脚手架详解
2017/06/26 Javascript
Vue filters过滤器的使用方法
2017/07/14 Javascript
Vue组件模板形式实现对象数组数据循环为树形结构(实例代码)
2017/07/31 Javascript
解决vue build打包之后首页白屏的问题
2018/03/06 Javascript
vue.js中$set与数组更新方法
2018/03/08 Javascript
Vue项目使用CDN优化首屏加载问题
2018/04/01 Javascript
React之PureComponent的使用作用
2018/07/10 Javascript
JavaScript继承与聚合实例详解
2019/01/22 Javascript
vue 组件销毁并重置的实现
2020/01/13 Javascript
vue项目创建步骤及路由router
2020/01/14 Javascript
[07:43]《辉夜杯》公开赛晋级外卡赛战队—TRG训练生活探秘
2015/12/11 DOTA
[01:05:52]DOTA2-DPC中国联赛 正赛 Ehome vs Aster BO3 第一场 2月2日
2021/03/11 DOTA
使用Python中的cookielib模拟登录网站
2015/04/09 Python
python2与python3中关于对NaN类型数据的判断和转换方法
2018/10/30 Python
Python使用pdb调试代码的技巧
2020/05/03 Python
Django之腾讯云短信的实现
2020/06/12 Python
python创建文本文件的简单方法
2020/08/30 Python
10种CSS3实现的loading动画,挑一个走吧?
2020/11/16 HTML / CSS
学习雷锋精神活动总结
2015/02/06 职场文书
2015年安全生产月工作总结
2015/07/27 职场文书
2019年国庆祝福语(70句)
2019/09/19 职场文书
Python之基础函数案例详解
2021/08/30 Python