首页 网站运营正文

dedecms自动跳转到移动版页面

前言:

一般安装好dedecms程序,并且选装了wap模块的话,默认情况下PC页面模板中就有了跳转移动端的代码。但有时候在调整或全新做模板或其它操作搞丢了的话,就需要再添加进来了,这里就列出原生代码和其它代码。

我的网站重新模板时就忘了加跳转代码,用手机打开就不能跳转到手机版,所以只能添加了。

那么问题来了,dedecms添加跳转手机版的代码是同一个吗?

u=1976760431,2473894990&fm=26&gp=0.jpg

需求:

用移动设备打开首页,就自动跳转到移动版的首页

用移动设备打开文章列表页,就自动跳转到移动版的列表页

用移动设备打开文章页,就自动跳转到移动版的文章页


从这几个需求来看,想想肯定都不是一个代码了,因为相同代码,就实现不了在列表页转到对应的列表页,文章页转不到对应的文章页了。


代码实现:


在模板index.htm 的头部加入如入代码:

<meta http-equiv="mobile-agent" content="format=xhtml;url={dede:global.cfg_mobileurl/}/index.php">
<script type="text/javascript">if(window.location.toString().indexOf('pref=padindex') != -1){}else{if(/AppleWebKit.*Mobile/i.test(navigator.userAgent) || (/MIDP|SymbianOS|NOKIA|SAMSUNG|LG|NEC|TCL|Alcatel|BIRD|DBTEL|Dopod|PHILIPS|HAIER|LENOVO|MOT-|Nokia|SonyEricsson|SIE-|Amoi|ZTE/.test(navigator.userAgent))){if(window.location.href.indexOf("?mobile")<0){try{if(/Android|Windows Phone|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent)){window.location.href="{dede:global.cfg_mobileurl/}/index.php";}else if(/iPad/i.test(navigator.userAgent)){}else{}}catch(e){}}}}</script>



在模板list_article.htm 的头部加入如入代码:

<meta http-equiv="mobile-agent" content="format=xhtml;url={dede:global.cfg_mobileurl/}/list.php?tid={dede:field.id/}">
<script type="text/javascript">if(window.location.toString().indexOf('pref=padindex') != -1){}else{if(/AppleWebKit.*Mobile/i.test(navigator.userAgent) || (/MIDP|SymbianOS|NOKIA|SAMSUNG|LG|NEC|TCL|Alcatel|BIRD|DBTEL|Dopod|PHILIPS|HAIER|LENOVO|MOT-|Nokia|SonyEricsson|SIE-|Amoi|ZTE/.test(navigator.userAgent))){if(window.location.href.indexOf("?mobile")<0){try{if(/Android|Windows Phone|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent)){window.location.href="{dede:global.cfg_mobileurl/}/list.php?tid={dede:field.id/}";}else if(/iPad/i.test(navigator.userAgent)){}else{}}catch(e){}}}}</script>


在模板article_article.htm 的头部加入如入代码:

<meta http-equiv="mobile-agent" content="format=xhtml;url={dede:global.cfg_mobileurl/}/view.php?aid={dede:field.id/}">
<script type="text/javascript">if(window.location.toString().indexOf('pref=padindex') != -1){}else{if(/AppleWebKit.*Mobile/i.test(navigator.userAgent) || (/MIDP|SymbianOS|NOKIA|SAMSUNG|LG|NEC|TCL|Alcatel|BIRD|DBTEL|Dopod|PHILIPS|HAIER|LENOVO|MOT-|Nokia|SonyEricsson|SIE-|Amoi|ZTE/.test(navigator.userAgent))){if(window.location.href.indexOf("?mobile")<0){try{if(/Android|Windows Phone|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent)){window.location.href="{dede:global.cfg_mobileurl/}/view.php?aid={dede:field.id/}";}else if(/iPad/i.test(navigator.userAgent)){}else{}}catch(e){}}}}</script>


但经过我测试,发现上面的代码在部份 安卓的firefox上跳转不了,其它或苹果手机就可以,说明兼容性不强。找了一个更强的代码,不过只能固定转到一个页面,所以只能用在首页了,列表页和文章页就不行,放了的话从移动端访问某个文章页也会跳到首页,不很利于SEO

<script>
    //手机网站的url 只需改这一处地方即可。
    var mobileUrl = 'https://www.jiepaimm.com/m';
    var mobileAgent = new Array("iphone", "ipod", "ipad", "android", "mobile", "blackberry", "webos", "incognito", "webmate", "bada", "nokia", "lg", "ucweb", "skyfire");
    var browser = navigator.userAgent.toLowerCase();
    var isMobile = false;
    for (var i=0; i<mobileAgent.length; i++){
        if (browser.indexOf(mobileAgent[i])!=-1){
            isMobile = true;
            break;
        }
    }
    if(isMobile){
        //当前是手机或平板等小屏设备浏览,自动跳转到手机网站
        location.href = mobileUrl;
    }
 </script>


总之,这样操作后,算是完美解决dedecms自动跳转移动端的效果吧!希望能帮助到大家!

评论