在电脑版和移动版的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,自己看着办~ |
|