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 Ext JS 状态默认存储时间
Feb 15 Javascript
Whatever:hover 无需javascript让IE支持丰富伪类
Jun 29 Javascript
jquery右下角弹出提示框示例代码
Oct 08 Javascript
window.print打印指定div指定网页指定区域的方法
Aug 04 Javascript
asp.net+js实现金额格式化
Feb 27 Javascript
jQuery简单验证上传文件大小及类型的方法
Jun 02 Javascript
Vue 过渡实现轮播图效果
Mar 27 Javascript
node.JS md5加密中文与php结果不一致的解决方法
May 05 Javascript
记React connect的几种写法(小结)
Sep 18 Javascript
Vue中 v-if/v-show/插值表达式导致闪现的原因及解决办法
Oct 12 Javascript
详解基于vue-cli3快速发布一个fullpage组件
Mar 08 Javascript
layui关闭弹窗后刷新主页面和当前更改项的例子
Sep 06 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+mysqli实现批量替换数据库表前缀的方法
2014/12/29 PHP
Laravel Intervention/image图片处理扩展包的安装、使用与可能遇到的坑详解
2017/11/14 PHP
laravel异步监控定时调度器实例详解
2019/06/21 PHP
php7性能提升的原因详解
2019/10/13 PHP
自己写的Javascript计算时间差函数
2013/10/28 Javascript
JS调试必备的5个debug技巧
2014/03/07 Javascript
Yii2使用Bootbox插件实现自定义弹窗
2015/04/02 Javascript
javascript实现相同事件名称,不同命名空间的调用方法
2015/06/26 Javascript
jquery实现点击变换导航样式的方法
2015/08/31 Javascript
谈谈JavaScript自定义回调函数
2015/10/18 Javascript
将鼠标焦点定位到文本框最后(代码分享)
2017/01/11 Javascript
nodejs入门教程三:调用内部和外部方法示例
2017/04/24 NodeJs
详解webpack进阶之loader篇
2017/08/23 Javascript
Vue实现PopupWindow组件详解
2018/04/28 Javascript
微信小程序实现页面浮动导航
2019/01/28 Javascript
微信小程序引入VANT组件的方法步骤
2019/09/19 Javascript
JS实现数据动态渲染的竖向步骤条
2020/06/24 Javascript
python使用urllib2实现发送带cookie的请求
2015/04/28 Python
python实现多线程抓取知乎用户
2016/12/12 Python
对Python中数组的几种使用方法总结
2018/06/28 Python
Django model反向关联名称的方法
2018/12/15 Python
Python多叉树的构造及取出节点数据(treelib)的方法
2019/08/09 Python
Python上下文管理器用法及实例解析
2019/11/11 Python
python代数式括号有效性检验示例代码
2020/10/04 Python
CSS3悬停效果案例应用
2012/11/21 HTML / CSS
自定义html标记替换html5新增元素
2008/10/17 HTML / CSS
html5清空画布方法(三种)
2017/10/16 HTML / CSS
德国电子产品购物网站:TechInTheBasket德国
2018/12/07 全球购物
文字自荐书范文
2014/02/10 职场文书
环保倡议书50字
2014/05/15 职场文书
考试诚信承诺书
2014/05/23 职场文书
小学运动会口号
2014/06/07 职场文书
收款委托书范本
2014/09/11 职场文书
成品仓管员岗位职责
2015/04/01 职场文书
2016教师读书思廉心得体会
2016/01/23 职场文书
Python数据处理的三个实用技巧分享
2022/04/01 Python