百度判断手机终端并自动跳转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 相关文章推荐
Web层改进II-用xmlhttp 无声息提交复杂表单
Jan 22 Javascript
js游戏人物上下左右跑步效果代码分享
Aug 28 Javascript
基于jquery实现鼠标滚轮驱动的图片切换效果
Oct 26 Javascript
jQuery position() 函数详解以及jQuery中position函数的应用
Dec 14 Javascript
基于Javascript实现弹出页面效果
Jan 01 Javascript
Bootstrap所支持的表单控件实例详解
May 16 Javascript
BootStrap table表格插件自适应固定表头(超好用)
Aug 24 Javascript
vuex实现简易计数器
Oct 27 Javascript
纯js实现倒计时功能
Jan 06 Javascript
使用vue.js2.0 + ElementUI开发后台管理系统详细教程(二)
Jan 21 Javascript
Angular2进阶之如何避免Dom误区
Apr 02 Javascript
vue 使用vue-i18n做全局中英文切换的方法
Oct 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
PHP的5个安全措施小结
2012/07/17 PHP
PHP实现简单的新闻发布系统实例
2015/07/28 PHP
深入理解PHP之OpCode原理详解
2016/06/01 PHP
PHP区块查询实现方法分析
2018/05/12 PHP
php中钩子(hook)的原理与简单应用demo示例
2019/09/03 PHP
JS Excel读取和写入操作(模板操作)实现代码
2010/04/11 Javascript
JSQL SQLProxy 的 php 版本代码
2010/05/05 Javascript
angular简介和其特点介绍
2015/01/29 Javascript
js实现带按钮的上下滚动效果
2015/05/12 Javascript
WEB前端实现裁剪上传图片功能
2016/10/17 Javascript
纯js实现悬浮按钮组件
2016/12/17 Javascript
原生JS和jQuery操作DOM对比总结
2017/01/19 Javascript
从零学习node.js之详解异步控制工具async(八)
2017/02/27 Javascript
nodejs个人博客开发第一步 准备工作
2017/04/12 NodeJs
vue2.0父子组件间通信的实现方法
2017/04/19 Javascript
PHP7新特性简述
2017/06/11 Javascript
通过命令行生成vue项目框架的方法
2017/07/12 Javascript
webpack 1.x升级过程中的踩坑总结大全
2017/08/09 Javascript
深入浅析Vue.js计算属性和侦听器
2018/05/05 Javascript
请求时token过期自动刷新token操作
2020/09/11 Javascript
Python使用add_subplot与subplot画子图操作示例
2018/06/01 Python
Python 实现子类获取父类的类成员方法
2019/01/11 Python
Python代码块及缓存机制原理详解
2019/12/13 Python
为什么黑客都用python(123个黑客必备的Python工具)
2020/01/31 Python
python数据抓取3种方法总结
2021/02/07 Python
html5中使用hotcss.js实现手机端自适配的方法
2020/04/23 HTML / CSS
C#中类(class)与结构(struct)的异同
2013/11/03 面试题
写自荐信要注意什么
2013/12/26 职场文书
迅雷Cued工作心得体会
2014/01/27 职场文书
乡镇食品安全责任书
2014/07/28 职场文书
音乐剧猫观后感
2015/06/04 职场文书
谢师宴家长答谢词
2015/09/30 职场文书
Canvas三种动态画圆实现方法说明(小结)
2021/04/16 Javascript
如何理解Vue前后端数据交互与显示
2021/05/10 Vue.js
OpenCV-Python实现怀旧滤镜与连环画滤镜
2021/06/09 Python
电脑无法安装Windows 11怎么办?无法安装Win11的解决方法
2021/11/21 数码科技