DedeCMS移动端访问pc网址自动跳转m网址

DedeCMS移动端访问pc网址自动跳转m网址

DedeCMS移动适配成功后,有一个问题一直烦扰余斗,虽然首页可以用百度官方的跳转方法实现跳转,但是手机端访问网站的内页pc网址时,不会自主跳转到相对应的移动站点,查询了很多方法,只有JS跳转可以完美实现,余斗今天就把教程写出来,希望可以帮到大家(这里不考虑移动端搜索引擎优化,需要通过JS判断是否移动端,然后确定是否跳转到指定页面就行了):

1、添加js文件,代码如下,名字随意命(余斗的为m.js):

//判断是否移动端,如果是则跳转到指定的URL地址


function browserRedirect(url) {

       
//只读的字符串,声明了浏览器用于 HTTP 请求的用户代理头的值

       
var sUserAgent =
navigator.
userAgent.
toLowerCase();

       
var bIsIphoneOs = sUserAgent.
match(/iphone os/i) ==
“iphone os”;

       
var bIsMidp = sUserAgent.
match(/midp/i) ==
“midp”;

       
var bIsUc7 = sUserAgent.
match(/rv:
1.2.3.4/i) ==
“rv:1.2.3.4”;

       
var bIsUc = sUserAgent.
match(/ucweb/i) ==
“ucweb”;

       
var bIsAndroid = sUserAgent.
match(/android/i) ==
“android”;

       
var bIsCE = sUserAgent.
match(/windows ce/i) ==
“windows ce”;

       
var bIsWM = sUserAgent.
match(/windows mobile/i) ==
“windows mobile”;

       
if (bIsIphoneOs || bIsMidp || bIsUc7 || bIsUc || bIsAndroid || bIsCE || bIsWM) {

               
window.
location.
replace(url);

        }

}

2、在需要做跳转的页面引用JS,调用方法(这里根据自己的js所放路径和名字自行修改:

<script
src=
“/js/m.js”></script>

<script
type=
“text/javascript”>browserRedirect(
“http://m.yudouyudou.com/yudoubiji”);</script>

3、因为DedeCMS的内容页和栏目页都是模版控制生成,不可能在每个生成的页面都加上这段代码,这里需要变通一下,在模版中加一次即可,主要分为栏目/列表页和文章页加代码,以余斗博客为例,移动站点的域名为m.yudouyudou.com,pc对应的文章页和栏目页后缀相同:

文章页调用代码:

<script
src=
“/js/m.js”></script>

<script
type=
“text/javascript”>browserRedirect(
“http://m.yudouyudou.com{dede:field name=’arcurl’/}”);</script>

栏目/列表页调用的代码:

<script
src=
“/js/m.js”></script>

<script
type=
“text/javascript”>browserRedirect(
“http://m.yudouyudou.com{dede:type typeid=’0′ row=1}[field:typelink/]{/dede:type}”);</script>

4、加上一个首页的调用代码:

<script
src=
“/js/m.js”></script>

<script
type=
“text/javascript”>browserRedirect(
“http://m.yudouyudou.com”);</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}}}};

调用代码为:

<script
src=
“/js/uaredirect.js”
type=
“text/javascript”></script>

<script
type=
“text/javascript”>uaredirect(
“http://m.yudouyudou.com”,
“http://www.yudouyudou.com”);</script>

然后更新全站,再用移动端访问pc网址就可以完美实现跳转。同理,我们要是从移动站访问pc站改怎么做呢?请点击手机端访问PC端页面如何正确跳转。

分享到 :
相关推荐