分享

手机自动访问网站手机版转到电脑版(pc)的方法

 周旋图书馆 2014-08-18
在电脑版和移动版的footer里面加上手动切换链接,实现手动版本切换功能。
最简单的方法是:uaredirect.js中其实已经自带了中断机制:#fromapp 
所以,只要在切换链接后面加上 #fromapp 就可以避免js跳转到移动版了!
如果,你想换成其他中断参数,可以修改百度提供的uaredirect.js,将代码中的fromapp 改成你要的标识即可,比如pc,所以在手机上只要访问 http://www.#pc 就可以正常切换到电脑版了!


如下是另一种带上参数的方法:
给移动版的切换链接带上一个参数,再修改 uaredirect.js,当发现链接后面带了指定参数时,就直接return,而不再进行UA判断,避免再次跳转的尴尬。。。

说干就干,在oschina找到如下2中获取url后面参数的方法:

 

/*参数值中有等于号的情况(“=”)*/

        function getUrlRequest(){

                var url = location.search; //获取url中"?"符后的字串

                var theRequest = new Object();

                if (url.indexOf("?") != -1) {

                    var str = url.substr(1);

                    if (str.indexOf("&") != -1) {

                        strs = str.split("&");

                        for (var i = 0; i < strs.length; i++) {

                            theRequest[strs[i].split("=")[0]] = unescape(strs[i].split("=")[1]);

                        }

                    } else {

                        var key = str.substring(0,str.indexOf("="));

                        var value = str.substr(str.indexOf("=")+1);

                        theRequest[key] = decodeURI(value);

                    }

                }

                return theRequest;

       }

 

然后如下修改uaredirect.js

//获取url后面参数

function getUrlRequest(){

                 var url = location.search;

                 var theRequest = new Object();

                 if (url.indexOf("?") != -1) {

                     var str = url.substr(1);

                     if (str.indexOf("&") != -1) {

                         strs = str.split("&");

                         for (var i = 0; i < strs.length; i++) {

                             theRequest[strs[i].split("=")[0]] = unescape(strs[i].split("=")[1]);

                         }

                     } else {

                         var key = str.substring(0,str.indexOf("="));

                         var value = str.substr(str.indexOf("=")+1);

                         theRequest[key] = decodeURI(value);

                     }

                 }

                 return theRequest;

         }

 

function uaredirect(f) {

     var canshu=getUrlRequest();

    try {

        if (canshu["type"] == "pc") { //当检测到url后面带了type=pc参数时,停止执行.

            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

            }

        }

    }

};?

 

最后,在移动版主题的footer里面加上如下代码:

<?php wp_reset_query();if ( is_home()){ ?>

<a title="电脑版" href="http://www.?type=pc">电脑版</a>

<?php } ?>

 

最新补充:冏。。。那上面的内容都是白忙活了,仅供参考,仅供参考。。。。

如果,你想换成其他中断参数,可以修改百度提供的uaredirect.js,将代码中的fromapp 改成你要的标识即可,比如张戈就修改成了pc,所以在手机上只要访问 http://#pc 就可以正常切换到电脑版了!

那么,文章最后那一大段footer代码,也可以将里面的?type=pc改成自定义的中断参数了,比如 #pc,自己看着办~

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多