JS如何实现网站中PC端和手机端自动识别并跳转对应的代码


Posted in Javascript onJanuary 08, 2020

1.  代码场景:

JS如何实现网站中PC端和手机端自动识别并跳转对应的代码

描述:在项目中,一般我们会使用响应式布局的方式或者借助bootstrap等插件来做响应式的网站。但是根据业务的需求,手机端可能会在功能上精简很多,我们也会写两套代码,分别用来实现PC端和手机端的功能。此时,就存在一个问题。项目在部署的时候只会使用一个地址,不会针对手机和PC端代码分别进行部署。这个时候就需要我们通过去识别视口分辨率的大小,来自动去跳转对应的代码。

2. 实现方式:

目前网上有很多的方法用来实现PC端和手机端的代码跳转,但我只用了一种实现方式。其他的暂时还没有尝试,希望可以跟大家学到更多的解决方案。在此特别感谢<<--老蒋部落-->>的方法给予了我很大的帮助。

此处贴出当前的JS代码:

<script type="text/javascript">
 
 function mobilePcRedirect() {
 var sUserAgent= navigator.userAgent.toLowerCase();
 var bIsIpad= sUserAgent.match(/ipad/i) == "ipad";
 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 (bIsIpad || bIsIphoneOs || bIsMidp || bIsUc7 || bIsUc || bIsAndroid || bIsCE || bIsWM) {
  window.location.href= '手机端跳转页面URL';
 } else {
  window.location= 'PC端跳转页面URL';
 }
 };
 
 mobilePcRedirect();
 
</script>

将此方法分别写在手机端和PC端公共的Common.js中,然后在对应位置写入对应的路径即可。

例如:手机端公共JS中代码如下

// 实现网站自动跳转电脑PC端与手机端不同页面
function mobilePcRedirect() {
 var sUserAgent= navigator.userAgent.toLowerCase();
 var bIsIpad= sUserAgent.match(/ipad/i) == "ipad";
 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 (bIsIpad || bIsIphoneOs || bIsMidp || bIsUc7 || bIsUc || bIsAndroid || bIsCE || bIsWM) {
 console.log("手机端跳转页面URL");
 } else {
 console.log("PC端跳转页面URL"); 
    // 注:此时写入的是PC端首页跳转路径
   window.location.href = getBasePath() + "/education/new_index.html";
 }
};
mobilePcRedirect();

JS如何实现网站中PC端和手机端自动识别并跳转对应的代码

反之,PC端公共JS中同样的写法即可。

3. 拓展内容(如何获取项目的根路径?)

获取项目名称:

/**
 * 获取项目名称 如:/video_learning
 **/
 
function getProjectName() {
 var strPath = window.document.location.pathname;
 var postPath = strPath.substring(0,strPath.substr(1).indexOf('/')+1);
 return postPath;
}

获取项目全路径:

/**
 * 获取项目全路径 如:http://localhost:8080/video_learning
 * */
 
function getBasePath(){
 //获取当前网址
 var curWwwPath=window.document.location.href;
 
 //获取主机地址之后的目录
 var pathName=window.document.location.pathname;
 var pos=curWwwPath.indexOf(pathName);
 
 //获取地址到端口号
 var localhostPath=curWwwPath.substring(0,pos);
 
 //项目名
 var projectName=pathName.substring(0,pathName.substr(1).indexOf('/')+1); 
 return (localhostPath+projectName);
}

本次分享已完成,大家若有更好的方法或者意见欢迎指正学习。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript面向对象编程(一) 实例代码
Jun 25 Javascript
不要在cookie中使用特殊字符的原因分析
Jul 13 Javascript
Js 弹出框口并返回值的两种常用方法
Dec 30 Javascript
JavaScript数组深拷贝和浅拷贝的两种方法
Apr 16 Javascript
JavaScript中对象property的读取和写入方法介绍
Dec 30 Javascript
ExpressJS入门实例
Jan 14 Javascript
js密码强度检测
Jan 07 Javascript
深入理解jquery自定义动画animate()
May 24 Javascript
检查表单元素的值是否为空的实例代码
Jun 16 Javascript
H5移动端适配 Flexible方案
Oct 24 Javascript
JavaScript中常用的3种弹出提示框(alert、confirm、prompt)
Nov 10 Javascript
vue打包通过image-webpack-loader插件对图片压缩优化操作
Nov 12 Javascript
js判断浏览器的环境(pc端,移动端,还是微信浏览器)
Dec 24 #Javascript
你可能从未使用过的11+个JavaScript特性(小结)
Jan 08 #Javascript
你知道JavaScript Symbol类型怎么用吗
Jan 08 #Javascript
js实现多个标题吸顶效果
Jan 08 #Javascript
Vue v-model组件封装(类似弹窗组件)
Jan 08 #Javascript
jquery实现吸顶导航效果
Jan 08 #jQuery
JS实现网站吸顶条
Jan 08 #Javascript
You might like
支持oicq头像的留言簿(二)
2006/10/09 PHP
PHP输出当前进程所有变量/常量/模块/函数/类的示例
2013/11/07 PHP
取得单条网站评论以数组形式进行输出
2014/07/28 PHP
PHP实现基于文本的摩斯电码生成器
2016/01/11 PHP
Aster vs Newbee BO3 第二场2.18
2021/03/10 DOTA
js left,right,mid函数
2008/06/10 Javascript
DWR Ext 加载数据
2009/03/22 Javascript
基于Jquery的温度计动画效果
2010/06/18 Javascript
使用javascript实现判断当前浏览器
2015/04/14 Javascript
js模拟微博发布消息
2017/02/23 Javascript
详谈javascript精度问题与调整
2017/07/08 Javascript
VSCode中如何利用d.ts文件进行js智能提示
2018/04/13 Javascript
Js中使用正则表达式验证输入是否有特殊字符
2018/09/07 Javascript
Vue循环中多个input绑定指定v-model实例
2020/08/31 Javascript
[01:09]模型精美,特效酷炫!TI9不朽宝藏Ⅰ鉴赏
2019/05/10 DOTA
[01:08:56]DOTA2-DPC中国联赛 正赛 Magma vs LBZS BO3 第一场 2月7日
2021/03/11 DOTA
Python制作简易注册登录系统
2016/12/15 Python
Python爬虫实例_城市公交网络站点数据的爬取方法
2018/01/10 Python
Python实现备份MySQL数据库的方法示例
2018/01/11 Python
使用Python控制摄像头拍照并发邮件
2019/04/23 Python
Python使用Beautiful Soup爬取豆瓣音乐排行榜过程解析
2019/08/15 Python
python GUI库图形界面开发之PyQt5美化窗体与控件(异形窗体)实例
2020/02/25 Python
Python3获取cookie常用三种方案
2020/10/05 Python
python 下划线的不同用法
2020/10/24 Python
以特惠价提供在线奢侈品购物:FRMODA.com
2018/01/25 全球购物
介绍一下linux的文件权限
2014/07/20 面试题
房地产员工找工作的自我评价
2013/11/15 职场文书
七年级英语教学反思
2014/01/15 职场文书
团干部培训方案
2014/06/03 职场文书
个人授权委托书范本格式
2014/10/12 职场文书
介绍信怎么写
2015/01/30 职场文书
建国大业观后感
2015/06/01 职场文书
初中体育课教学反思
2016/02/16 职场文书
2016年幼儿园庆六一开幕词
2016/03/04 职场文书
Win11查看设备管理器
2022/04/19 数码科技
大脑的记忆过程在做数据压缩,不同图形也有共同的记忆格式
2022/04/29 数码科技