您好!欢迎来到源码码网

织梦网站在电脑端访问手机端页面自动跳转至对应的PC端

  • 建站技巧
  • 来源:源码码网
  • 编辑:admin
  • 时间:2021-09-03 16:29
  • 阅读:2013

最近给客户部署了一套织梦的网站源码,由于要求手机端和PC端同步,所以就对移动端进行了适配。但是由于织梦移动端的模板代码是生成在m文件夹下,而对移动端又绑定了相应的二级域名。所以造成了,网站在收录的时候,收录了m文件下的html页面,但是当在电脑端查看收录页面时,会发现有很多m路径下的收录页面,当访问的时候,打开的是移动网站的页面,这样对用户体验不好,所以需要做相应的跳转,以下的解决方法是建立在PC端是静态页面、而移动端是动态调用的基础之上,如果移动端页是静态页面,请自行查找解决办法。


移动端首页跳转至PC端首页的代码:

<script type="text/javascript">

   /*判断手机端访问*/
   var isMobile = {
     Android:function(){
       return navigator.userAgent.match(/Android/i) 
       ? true:false;
     },

     BlackBerry:function(){
       return navigator.userAgent.match(/BlackBerry/i) 
       ? true:false;
     },

     iOS:function(){
       return navigator.userAgent.match(/iPhone|iPad|iPod/i) 
       ? true:false;
     },

     Windows:function(){
       return navigator.userAgent.match(/IEMobile/i) 
       ? true:false;
     },

     any:function(){
       return (isMobile.Android()||isMobile.BlackBerry() 
       ||isMobile.iOS()||isMobile.Windows());
     }

   };

     if(!isMobile.any()) {
       window.location.href = "PC端网址";
    }
 </script>


移动端文章页面跳转至PC端代码:

<script type="text/javascript">

   /*判断手机端访问*/
   var isMobile = {
   Android:function(){
      return navigator.userAgent.match(/Android/i) 
      ? true:false;
   },

    BlackBerry:function(){
      return navigator.userAgent.match(/BlackBerry/i) 
      ? true:false;
   },

   iOS:function(){
      return navigator.userAgent.match(/iPhone|iPad|iPod/i)
      ? true:false;
   },

   Windows:function(){
      return navigator.userAgent.match(/IEMobile/i)
      ? true:false;
   },

   any:function(){
      return (isMobile.Android()||isMobile.BlackBerry() 
      || isMobile.iOS()||isMobile.Windows());
   }

  };

    if(!isMobile.any()) {
      window.location.href = "{dede:field.id runphp='yes'}
      $id=@me;@me='';$url=GetOneArchive($id);
      @me=$url['arcurl'];{/dede:field.id}";
 }
 </script>


image.png


移动端列表页面跳转至PC端代码:

把以下代码加到 /include/helpers/extend.helper.php 文件最后。

if ( ! function_exists('itemCurUrl'))
{
    /**
     * 获取当前列表页或内容页的URL
     * 未经大量测试,一定会有不如意的地方,使用时注意测试观察
     *
     * 列表页使用方法:
     * dede:field.id runphp='yes'}@me=itemCurUrl(@me,'list');
     {/dede:field.id}
     * 内容页使用方法:
     * 
     dede:field.id runphp='yes'}@me=itemCurUrl(@me,'view');
     {/dede:field.id}
     *
     * @param int $id 列表ID或文章ID
     * @param string $type 分类,list:列表页,view:内容页
     * @return string
     */
function itemCurUrl($id, $type='list') {
  global $dsql;
  if($type == 'list'){
    $sql="SELECT * FROM `dede_arctype` WHERE `id`='$id' ";
    $info=$dsql->GetOne($sql);
    $url=GetOneTypeUrlA($info);
      return $url;
    }else{
      $arr = GetOneArchive($id);
      if(!empty($arr['ismake'])){ // 静态页面
        return $arr['arcurl'];
      }else{ // 动态页面
        return '/plus/view.php?aid='.$arr['aid'];
     }
   }
  }
}


然后在列表页的head部分加入以下代码:

<script type="text/javascript">

   /*判断手机端访问*/
   var isMobile = {
   Android: function () {
     return navigator.userAgent.match(/Android/i) 
     ? true:false;
   },

   BlackBerry:function(){
     return navigator.userAgent.match(/BlackBerry/i) 
     ? true:false;
   },

   iOS:function(){
     return navigator.userAgent.match(/iPhone|iPad|iPod/i) 
     ? true:false;
   },

   Windows:function(){
     return navigator.userAgent.match(/IEMobile/i) 
     ? true:false;
   },

   any:function(){
     return (isMobile.Android()||isMobile.BlackBerry() 
     || isMobile.iOS()||isMobile.Windows());
   }

 };

    if (!isMobile.any()) {
     window.location.href = "{dede:field.id runphp='yes'}
     @me=itemCurUrl(@me,'list');{/dede:field.id}"
   }
 </script>


以上代码由本站亲自测试,可正常运行。


特别声明:
1、如无特殊说明,内容均为本站原创发布,转载请注明出处;
2、部分转载文章已注明出处,转载目的为学习和交流,如有侵犯,请联系客服删除;
3、编辑非《源码码网》的文章均由用户编辑发布,不代表本站立场,如涉及侵犯,请联系删除;
全部评论(0)
推荐阅读
  • 原生小程序和封装的小程序有什么区别
  • 原生小程序和封装的小程序有什么区别
  • 原生小程序和封装的小程序是两种不同的开发模式,主要区别在于开发方式、性能表现、代码维护以及跨平台能力。为了让你更清晰地理解,我们可以把“原生”比作用钢筋水泥直接盖楼,而“封装”则是用预制板或套件来组装楼。以下是详细的对比分析:1.定义与本质原生小程序:定义: 直接使用微信官方提供的开发工具、语法和API进行开发。语言: 使用微信自己定义的一套技术栈(WXML(微信标记语言)做结构、WXSS(微信样式表)做样式、JS
  • 行业资讯
  • 来源:源码码网
  • 编辑:源码码网
  • 时间:2026-03-06 11:54
  • 阅读:179
  • 深度解读:一颗“感知”气息的MEMS传感器,如何定义雾化设备的交互未来?
  • 深度解读:一颗“感知”气息的MEMS传感器,如何定义雾化设备的交互未来?
  • 消费电子与物联网设备智能化普及,人与机器之间的交互方式早已不再局限于按键的“咔哒”声。从智能手机的触控滑动,到智能音箱的语音唤醒,交互正朝着更自然、更无感的方向演进。而在电子雾化设备(如雾化器、电子烟)这一细分领域,一种看似微小却至关重要的交互变革正在发生:如何精准、可靠地识别用户的“吸气”动作?答案,藏在了一颗不足3毫米见方的微型芯片里——MEMS气流压力开关传感器。我们不谈晦涩的术语,而是以一颗具体的产品——MS2202AA-M05
  • 源码教程
  • 来源:源码码网
  • 编辑:源码码网
  • 时间:2026-03-06 11:41
  • 阅读:40
  • 基于NetCore(Razor Page)开发的Cms建站系统MIT协议
  • 基于NetCore(Razor Page)开发的Cms建站系统MIT协议
  • FytSoaCms一款基于NetCore2.2/3.1(RazorPage)功能强大的Cms建站系统,支持前后端分离。简介:模块化:全新的架构和模块化的开发机制,便于灵活扩展和二次开发。模型/栏目/分类信息体系:通过栏目和模型绑定,以及不同的模型类型,不同栏目可以实现差异化的功能,轻松实现诸如资讯、下载、讨论和图片等功能。通过分类信息和栏目绑定,可以自动建立索引表,轻松实现复杂的信息检索。FytSoa是一套基于NetCore+SqlS
  • 开发工具
  • 来源:gitee
  • 编辑:源码码网
  • 时间:2026-01-24 22:21
  • 阅读:278
  • 基于JAVA开发的企业级平台微信公众号管理系统SmartWx
  • 基于JAVA开发的企业级平台微信公众号管理系统SmartWx
  • SmartWx微信公众号管理系统是一个完整的微信公众号web操作版,直接编译即可运行。让用户不再用关心微信的底层接口,直接使用页面进行操作,简单方便。包括服务器绑定、文本管理、图文管理、菜单管理、粉丝管理、群发消息等。技术框架开发语言:JAVA数据库:MYSQLJAVA开发框架:SpringMVC+Spring+Mybatis缓存框架:j2cache前端开发框架:Layui+JQuery+html前台模板引擎:art-templat
  • 源码教程
  • 来源:gitee
  • 编辑:源码码网
  • 时间:2026-01-24 21:53
  • 阅读:272
  • 前后端分离的Java快速开发平台renren-security可免费商用
  • 前后端分离的Java快速开发平台renren-security可免费商用
  • renren-security是一个轻量级的,前后端分离的Java快速开发平台,能快速开发项目并交付【接私活利器】采用SpringBoot3.x、Shiro、MyBatis-Plus、Vue3、TypeScript、ElementPlus、VueRouter、Pinia、Axios、Vite框架,开发的一套权限系统,极低门槛,拿来即用。设计之初,就非常注重安全性,为企业系统保驾护航,让一切都变得如此简单。提供了代码生成器,只
  • 源码教程
  • 来源:gitee
  • 编辑:源码码网
  • 时间:2026-01-23 13:03
  • 阅读:174
联系客服
源码代售 源码咨询 技术开发 联系客服
029-84538663
手机版

扫一扫进手机版
返回顶部