最近用DEDECMS做了一个企业站,PC和移动站都做好了以后,一直有一个问题没有能解决:移动端访问PC站实现对应页面跳转,361源码网小编查了很多方法,因为DEDE官方的手机跳转是动态的,不太想用,所以361就用JS的方法实现静态页面直接的跳转,下面写下具体方法,方便大家参考:
PS:这里不考虑移动端搜索引擎优化,需要通过JS判断是否移动端,然后确定是否跳转到指定页面就行了:
1、添加js文件,代码如下,名字随意命(暂时命名为m.js):
//判断是否移动端,如果是则跳转到指定的URL地址2、在需要做跳转的页面引用JS,调用方法(这里根据自己的js所放路径和名字自行修改:
<script src="/js/m.js"></script>
3、因为DedeCMS的内容页和栏目页都是模版控制生成,不可能在每个生成的页面都加上这段代码,这里需要变通一下,在模版中加一次即可,主要分为栏目/列表页和文章页加代码,以361草根学习网为例,移动站点的域名为m.vevb.com,pc对应的文章页和栏目页后缀相同:
文章页调用代码:
<script src="/js/m.js"></script>栏目/列表页调用的代码:
<script src="/js/m.js"></script>4、加上一个首页的调用代码:
<script src="/js/m.js"></script>还有一种方法是利用百度官方的方式实现跳转,思路是一样的,同样需要加一个js文件,代码如下:
function uaredirect(f){try{if(document.getElementById("bdmark")!=null){return}varb=false;if(arguments[1]){var e=window.location.host;vara=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){varc=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){varh=f.substr(e+3)}else{var h=f}var g=/^www/./;if(g.test(h)){h=h.substr(4)}return h};if(c==d){return1}else{var c=this.getdomain(c);var b=this.getdomain(d);if(c==b){return1}else{c=c.replace(".","//.");var a=new RegExp("//."+c+"$");if(b.match(a)){return 2}else{return0}}}};调用代码为:
<script src="/js/uaredirect.js" type="text/javascript"></script>然后更新全站,再用移动端访问pc网址就可以完美实现跳转。同理,我们要是从移动站访问pc站改怎么做呢?下一讲,我们就来讲《PC访问移动端页面如何正确跳转》。希望大家到时候也能有所收获。
新闻热点
疑难解答