JS跳转手机站url的若干注意事项


Posted in Javascript onOctober 18, 2017

引子:

去年年底公司开发手机站平台,经历了前期的用户群、市场调查,产品需求分析,产品原型设计,ui前端到程序开发上线测试等等工作,终于上线。。。此处略去本人作为前端开发的心情。

应该说,我们的手机站平台还是个顽皮小孩子,还有许多需要去学习,去磨练。

我们手机站平台的设计初衷是对接我们已有的PC站平台,简单说就是原来我们所有的用户使用的是我们的PC站服务,现在可以得到一个网站数据与PC站 一样的手机站点。重点是老用户还不收钱,免费用。(PC端网站的客户 想想是不是有点儿小激动呢)上线一段时间,感觉很多客户还是蛮感兴趣的,都在自己的手机上安装了这个那个的二维码扫面软件,对着手机网站的二维码扫啊扫的。

话入正题:

废话不多说,很多客户慕名而来,原来不是我们做PC的客户买了我们的手机站服务,这就产生了从其PC站如何能够跳转到手机站的问题。

我想,通过javascript获取客户端的 navigator.userAgent 之后使用url跳转 是一个不错的方法。

走你-代码:

var isMobile = {
  Android: function() {
    return navigator.userAgent.match(/Android/i) ? true : false;
  },
  BlackBerry: function() {
    return navigator.userAgent.match(/BlackBerry/i) ? true : false;
  },
  iOS: function() {
    return navigator.userAgent.match(/iPhone|iPod/i) ? true : false;
  },
  Windows: function() {
    return navigator.userAgent.match(/IEMobile/i) ? true : false;
  },
  Linux: function() {
    return navigator.userAgent.match(/Linux/i) ? true : false;
  },
  any: function() {
    return (isMobile.Android() || isMobile.BlackBerry() || isMobile.iOS() || isMobile.Windows() || isMobile.Linux());
  }
};
setTimeout(function() {
  if (isMobile.any()) {
    var body = document.getElementsByTagName('body');
    body[0].style.display='none';
    location.href = "http://m.某某.com/";
  }
}, 10);

简单分析:

一、在那些设备上需要跳转URL?

在XP,win7和mac下,一般不做手机站跳转的。

市面上的 Android 、BlackBerry 、iOS 、Windows mobile(phone) 、Linux等系统,为大家所常用的手机端操作系统。火狐的webOS,“远古时代”的诺基亚塞班等等,在国内外好像好没有市场了,不要去考虑。

二、在页面跳转时,存在哪些问题?

1.原PC网站需要加载的资源可能很多,跳转URL之前PC站的页面可能已经呈现,跳转的效果太生硬

解答:js获取终端的特性后,立即将body设置为隐藏

2.使用 window.onload 还是 setTimeout?

解答:setTimeout是由我选择何时执行,而可恶的 window.onload需要我等所有的资源下载后去执行我的方法,故我推荐使用 setTimeout();

小结:

关于终端设备的判断,上面的代码很肤浅的做了很尴尬的 url 跳转,这是不得已的方法。若是服务器端根据客户端的请求头信息来判断设备特性,依此返回不同的资源是更好的选择。

随着移动端设备的发展,很多浏览器能够设置或者自定义修改 客户端的请求头信息,也是这段js可能面临的问题,有待更新呐!

Javascript 相关文章推荐
兼容IE/Firefox/Opera/Safari的检测页面装载完毕的脚本Ext.onReady的实现
Jul 14 Javascript
showModelDialog弹出文件下载窗口的使用示例
Nov 19 Javascript
Javascript中call的两种用法实例
Dec 13 Javascript
javascript为下拉列表动态添加数据项
May 23 Javascript
javascript动态创建表格及添加数据实例详解
May 13 Javascript
JavaScript实现星级评分
Jan 12 Javascript
MvcPager分页控件 适用于Bootstrap
Jun 03 Javascript
Node.js实现连接mysql数据库功能示例
Sep 15 Javascript
微信小程序实现换肤功能
Mar 14 Javascript
关于JavaScript中高阶函数的魅力详解
Sep 07 Javascript
JavaScript变速动画函数封装添加任意多个属性
Apr 03 Javascript
Vue2.0 $set()的正确使用详解
Jul 28 Javascript
vue实现手机号码抽奖上下滚动动画示例
Oct 18 #Javascript
Angular.js实现获取验证码倒计时60秒按钮的简单方法
Oct 18 #Javascript
浅谈Node异步编程的机制
Oct 18 #Javascript
js实现随机点名系统(实例讲解)
Oct 18 #Javascript
原生JS获取元素的位置与尺寸实现方法
Oct 18 #Javascript
详谈commonjs模块与es6模块的区别
Oct 18 #Javascript
从源码看angular/material2 中 dialog模块的实现方法
Oct 18 #Javascript
You might like
php中删除、清空session的方式总结
2015/10/09 PHP
基于PHP的微信公众号的开发流程详解
2020/08/07 PHP
TopList标签和JavaScript结合两例
2007/08/12 Javascript
js中Image对象以及对其预加载处理示例
2013/11/20 Javascript
jquery实现手机发送验证码的倒计时代码
2014/02/12 Javascript
js的延迟执行问题分析
2014/06/23 Javascript
node.js中的http.response.write方法使用说明
2014/12/14 Javascript
JS函数多个参数默认值指定方法分析
2016/11/28 Javascript
Bootstrap列表组学习使用
2017/02/09 Javascript
jQuery Chosen通用初始化
2017/03/07 Javascript
node.js操作mysql简单实例
2017/05/25 Javascript
Angular4学习教程之HTML属性绑定的方法
2018/01/04 Javascript
vue2.0使用swiper组件实现轮播的示例代码
2018/03/03 Javascript
Angularjs之ngModel中的值验证绑定方法
2018/09/13 Javascript
浅谈webpack SplitChunksPlugin实用指南
2018/09/17 Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【圆形情况】
2018/12/13 Javascript
如何利用Node.js与JSON搭建简单的动态服务器
2020/06/16 Javascript
[38:39]KG vs Mineski 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
Python数据结构之栈、队列的实现代码分享
2017/12/04 Python
python实现列表中由数值查到索引的方法
2018/06/27 Python
python字符串和常用数据结构知识总结
2019/05/21 Python
django-rest-framework 自定义swagger过程详解
2019/07/18 Python
Python3离线安装Requests模块问题
2019/10/13 Python
python实现梯度下降法
2020/03/24 Python
浅析NumPy 切片和索引
2020/09/02 Python
详解numpy1.19.4与python3.9版本冲突解决
2020/12/15 Python
纯CSS绘制漂亮的圆形图案效果
2014/05/07 HTML / CSS
很酷的HTML5电子书翻页动画特效
2016/02/25 HTML / CSS
Html5页面二次分享的实现
2018/07/30 HTML / CSS
企业为何需要商业计划书
2013/12/26 职场文书
简短证婚人证婚词
2014/01/09 职场文书
应用英语专业自荐信
2014/01/26 职场文书
优秀应届本科生求职信
2014/07/19 职场文书
2016自主招生教师推荐信范文
2015/03/23 职场文书
2019大学竞选班长发言稿
2019/06/27 职场文书
创业计划书之小型广告公司
2019/10/22 职场文书