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 相关文章推荐
如何实现浏览器上的右键菜单
Jul 10 Javascript
JavaScript 继承的实现
Jul 09 Javascript
JavaScript代码复用模式实例分析
Dec 02 Javascript
js导出txt示例代码
Jan 14 Javascript
jquery append()方法与html()方法的区别及使用介绍
Aug 01 Javascript
js实现漫天星星效果
Jan 19 Javascript
vue-router 中router-view不能渲染的解决方法
May 23 Javascript
vue过渡和animate.css结合使用详解
Jun 14 Javascript
AngularJS实现页面跳转后自动弹出对话框实例代码
Aug 02 Javascript
Vue2.0 v-for filter列表过滤功能的实现
Sep 07 Javascript
基于JavaScript实现猜数字游戏代码实例
Jul 30 Javascript
react中的DOM操作实现
Jun 30 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
一个php作的文本留言本的例子(一)
2006/10/09 PHP
php中的比较运算符详解
2013/10/28 PHP
php中函数前加&amp;符号的作用分解
2014/07/08 PHP
htm调用JS代码
2007/03/15 Javascript
jquery 元素控制(追加元素/追加内容)介绍及应用
2013/04/21 Javascript
JavaScript将字符串转换为整数的方法
2015/04/14 Javascript
理解 JavaScript Scoping &amp; Hoisting(二)
2015/11/18 Javascript
Node.js的npm包管理器基础使用教程
2016/05/26 Javascript
js判断文件格式及大小的简单实例(必看)
2016/10/11 Javascript
JS控制TreeView的结点选择
2016/11/11 Javascript
详解EasyUi控件中的Datagrid
2017/08/23 Javascript
解决Vue打包之后文件路径出错的问题
2018/03/06 Javascript
基于vue.js实现的分页
2018/03/13 Javascript
jQuery插件jsonview展示json数据
2018/05/26 jQuery
javascript实现简单打字游戏
2019/10/29 Javascript
解决vue+ element ui 表单验证有值但验证失败问题
2020/01/16 Javascript
ant design vue导航菜单与路由配置操作
2020/10/28 Javascript
[02:43]中国五虎出征TI3视频
2013/08/02 DOTA
[04:13]2014DOTA2国际邀请赛 专访DC目前形势不容乐观
2014/07/12 DOTA
python设置检查点简单实现代码
2014/07/01 Python
django js实现部分页面刷新的示例代码
2018/05/28 Python
使用python进行文本预处理和提取特征的实例
2018/06/05 Python
python获取中文字符串长度的方法
2018/11/14 Python
django框架基于模板 生成 excel(xls) 文件操作示例
2019/06/19 Python
python3 循环读取excel文件并写入json操作
2020/07/14 Python
HTML5使用DOM进行自定义控制示例代码
2013/06/08 HTML / CSS
TripAdvisor越南:全球领先的旅游网站
2017/09/21 全球购物
杭州联环马网络笔试题面试题
2013/08/04 面试题
合同协议书格式
2014/04/18 职场文书
大学生逃课检讨书
2015/05/04 职场文书
小学入学感言
2015/08/01 职场文书
2016年寒假家长评语
2015/10/10 职场文书
建国70周年的心得体会(2篇)
2019/09/20 职场文书
Python基础之元编程知识总结
2021/05/23 Python
详细谈谈MYSQL中的COLLATE是什么
2021/06/11 MySQL
java executor包参数处理功能 
2022/02/15 Java/Android