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 相关文章推荐
在一个form用一个SUBMIT(或button)分别提交到两个处理表单页面的代码
Feb 15 Javascript
用Div仿showModalDialog模式菜单的效果的代码
Mar 05 Javascript
jquery插件制作教程 txtHover
Aug 17 Javascript
jQuery焦点图轮播特效代码分享(3款)
Sep 05 Javascript
JS实现禁止鼠标右键的功能
Oct 15 Javascript
js模式化窗口问题![window.dialogArguments]
Oct 30 Javascript
jquery事件与绑定事件
Mar 16 Javascript
利用ES6实现单例模式及其应用详解
Dec 09 Javascript
js传递数组参数到后台controller的方法
Mar 29 Javascript
微信小程序实现页面跳转传递参数(实体,对象)
Aug 12 Javascript
ES6中Set和Map用法实例详解
Mar 02 Javascript
区分vue-router的hash和history模式
Oct 03 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入门基础之php代码写法
2011/12/30 PHP
php 调试利器debug_print_backtrace()
2012/07/23 PHP
Codeigniter实现发送带附件的邮件
2015/03/19 PHP
php获取文件后缀的9种方法
2016/03/22 PHP
PHP单例模式简单用法示例
2017/06/23 PHP
解决Laravel自定义类引入和命名空间的问题
2019/10/15 PHP
PHP 面向对象程序设计之类属性与类常量实现方法分析
2020/04/13 PHP
解决PHP Opcache 缓存刷新、代码重载出现无法更新代码的问题
2020/08/24 PHP
js 实现无干扰阴影效果 简单好用(附文件下载)
2009/12/27 Javascript
简单js代码实现selece二级联动(推荐)
2014/02/18 Javascript
处理文本部分内容的TextRange对象应用实例
2014/07/29 Javascript
JQuery的Ajax中Post方法传递中文出现乱码的解决方法
2014/10/21 Javascript
Javascript基础教程之for循环
2015/01/18 Javascript
新手快速学习JavaScript免费教程资源汇总
2015/06/25 Javascript
jQuery实现的调整表格行tr上下顺序
2016/01/10 Javascript
省市联动效果的简单实现代码(推荐)
2016/06/06 Javascript
Javascript 调用 ActionScript 的简单方法
2016/09/22 Javascript
jQuery grep()方法详解及实例代码
2016/10/30 Javascript
jquery插件bootstrapValidator数据验证详解
2016/11/09 Javascript
JS实现一次性弹窗的方法【刷新后不弹出】
2016/12/26 Javascript
vue之数据交互实例代码
2017/06/16 Javascript
webpack打包并将文件加载到指定的位置方法
2018/02/22 Javascript
vue组件挂载到全局方法的示例代码
2018/08/02 Javascript
angular4 获取wifi列表中文显示乱码问题的解决
2018/10/20 Javascript
JavaScript学习笔记之基于定时器实现图片无缝滚动功能详解
2019/01/09 Javascript
Vue 组件注册全解析
2020/12/17 Vue.js
让Python脚本暂停执行的几种方法(小结)
2019/07/11 Python
Python count函数使用方法实例解析
2020/03/23 Python
使用python创建生成动态链接库dll的方法
2020/05/09 Python
俄罗斯香水和化妆品网上商店:NOTINO.ru
2019/12/17 全球购物
几个Shell Script面试题
2012/08/31 面试题
农民工工资支付承诺函
2014/03/31 职场文书
共产党员岗位承诺书
2014/05/29 职场文书
如何利用Matlab制作一款真正的拼图小游戏
2021/05/11 Python
pytorch实现ResNet结构的实例代码
2021/05/17 Python
postgresql如何找到表中重复数据的行并删除
2023/05/08 MySQL