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中Eval函数的使用说明
Oct 11 Javascript
html的DOM中Event对象onblur事件用法实例
Jan 21 Javascript
jquery原理以及学习技巧介绍
Nov 11 Javascript
jquery实现列表上下移动功能
Feb 25 Javascript
jQuery Dialog对话框事件用法实例分析
May 10 Javascript
jquery分隔Url的param方法(推荐)
May 25 Javascript
限制文本框只能输入数字||只能是数字和小数点||只能是整数和浮点数
May 27 Javascript
AngularJS 视图详解及示例代码
Aug 17 Javascript
Canvas 制作动态进度加载水球详解及实例代码
Dec 09 Javascript
vue bootstrap小例子一枚
Jun 09 Javascript
详解JavaScript的变量
Apr 04 Javascript
原生js实现照片墙效果
Oct 13 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 保留小数点
2009/04/21 PHP
thinkphp模板赋值与替换实例简述
2014/11/24 PHP
php页面,mysql数据库转utf-8乱码,utf-8编码问题总结
2015/08/27 PHP
javascript中的循环语句for语句深入理解
2014/04/04 Javascript
For循环中分号隔开的3部分的执行顺序探讨
2014/05/27 Javascript
JavaScript的面向对象编程基础
2015/08/13 Javascript
jQuery使用$.ajax进行异步刷新的方法(附demo下载)
2015/12/04 Javascript
Java遍历集合方法分析(实现原理、算法性能、适用场合)
2016/04/25 Javascript
Node.js websocket使用socket.io库实现实时聊天室
2017/02/20 Javascript
支付宝小程序自定义弹窗dialog插件的实现代码
2018/11/30 Javascript
jQuery实现轮播图效果demo
2020/01/11 jQuery
基于javascript实现碰撞检测
2020/03/12 Javascript
JS sort排序详细使用方法示例解析
2020/09/27 Javascript
Nest.js环境变量配置与序列化详解
2021/02/21 Javascript
python实现的重启关机程序实例
2014/08/21 Python
Python压缩和解压缩zip文件
2015/02/14 Python
巧用python和libnmapd,提取Nmap扫描结果
2016/08/23 Python
Python 专题一 函数的基础知识
2017/03/16 Python
Python使用asyncio包处理并发详解
2017/09/09 Python
Python读取英文文件并记录每个单词出现次数后降序输出示例
2018/06/28 Python
python将一组数分成每3个一组的实例
2018/11/14 Python
python读取txt文件,去掉空格计算每行长度的方法
2018/12/20 Python
python如何实现word批量转HTML
2020/09/30 Python
移动端解决悬浮层(悬浮header、footer)会遮挡住内容的3种方法
2015/03/27 HTML / CSS
网上常见的一份Linux面试题(多项选择部分)
2014/09/09 面试题
do you have any Best Practice for testing
2016/06/04 面试题
办公室助理岗位职责
2013/12/25 职场文书
聚美优品广告词改编
2014/03/14 职场文书
2014镇党委书记党建工作汇报材料
2014/11/02 职场文书
2015年社区民政工作总结
2015/04/21 职场文书
2016年小学“我们的节日·中秋节”活动总结
2016/04/05 职场文书
一文帮你理解PReact10.5.13源码
2021/04/03 Javascript
使用python向MongoDB插入时间字段的操作
2021/05/18 Python
python 开心网和豆瓣日记爬取的小爬虫
2021/05/29 Python
AJAX实现省市县三级联动效果
2021/10/16 Javascript
Python进程池与进程锁之语法学习
2022/04/11 Python