百度判断手机终端并自动跳转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 相关文章推荐
10个新的最有前途的JavaScript框架
Mar 12 Javascript
JavaScript中的onerror事件概述及使用
Apr 01 Javascript
js写的评论分页(还不错)
Dec 23 Javascript
AngularJS语法详解(续)
Jan 23 Javascript
JavaScript焦点事件、鼠标事件和滚轮事件使用详解
Jan 15 Javascript
js实现简单排列组合的方法
Jan 27 Javascript
Angularjs 事件指令详细整理
Jul 27 Javascript
vue根据值给予不同class的实例
Sep 29 Javascript
解决layui-table单元格设置为百分比在ie8下不能自适应的问题
Sep 28 Javascript
解决vue页面渲染但dom没渲染的操作
Jul 27 Javascript
JavaScript 原型与原型链详情
Nov 02 Javascript
vue 自定义的组件绑定点击事件
Apr 21 Vue.js
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面向对象的使用教程 简单数据库连接
2006/11/25 PHP
PHP中使用CURL获取页面title例子
2015/01/07 PHP
PHP 实现 WebSocket 协议原理与应用详解
2020/04/22 PHP
用js实现下载远程文件并保存在本地的脚本
2008/05/06 Javascript
javascript针对DOM的应用实例(一)
2012/04/15 Javascript
javascript修改表格背景色实例代码分享
2013/12/10 Javascript
微信企业号开发之微信考勤百度地图定位
2015/09/11 Javascript
关于JSON与JSONP简单总结
2016/08/16 Javascript
vue项目中axios使用详解
2018/02/07 Javascript
vue中axios解决跨域问题和拦截器的使用方法
2018/03/07 Javascript
JSON基本语法及与JavaScript的异同实例分析
2019/01/04 Javascript
基于javascript处理nginx请求过程详解
2020/07/07 Javascript
[02:55]2018DOTA2国际邀请赛勇士令状不朽珍藏Ⅲ饰品一览
2018/08/01 DOTA
Python下的twisted框架入门指引
2015/04/15 Python
Python实现多线程抓取妹子图
2015/08/08 Python
Python分支结构(switch)操作简介
2018/01/17 Python
Python线性回归实战分析
2018/02/01 Python
python清除字符串中间空格的实例讲解
2018/05/11 Python
Python将字符串常量转化为变量方法总结
2019/03/17 Python
python assert的用处示例详解
2019/04/01 Python
pyqt5 实现在别的窗口弹出进度条
2019/06/18 Python
pycharm快捷键汇总
2020/02/14 Python
Django项目uwsgi+Nginx保姆级部署教程实现
2020/04/19 Python
html5构建触屏网站之touch事件介绍
2013/01/07 HTML / CSS
美国运动鞋和运动服零售商:Footaction
2017/04/07 全球购物
zooplus波兰:在线宠物店
2019/07/21 全球购物
研究生自我鉴定范文
2013/10/30 职场文书
优秀志愿者事迹材料
2014/02/03 职场文书
交通事故协议书范文
2014/04/16 职场文书
优秀团员事迹材料1000字
2014/08/20 职场文书
小区门卫岗位职责范本
2014/08/24 职场文书
县政府领导班子“四风”方面突出问题整改措施
2014/09/23 职场文书
领导干部整治奢华浪费之风思想汇报
2014/10/07 职场文书
mybatis使用oracle进行添加数据的方法
2021/04/27 Oracle
教你一步步实现一个简易promise
2021/11/02 Javascript
详解Python中__new__方法的作用
2022/03/31 Python