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 相关文章推荐
jQuery右键菜单contextMenu使用实例
Sep 28 Javascript
利用json获取字符出现次数的代码
Mar 22 Javascript
JavaScript搜索字符串并将搜索结果返回到字符串的方法
Apr 06 Javascript
jQuery实现仿美橙互联两级导航菜单效果完整实例
Sep 17 Javascript
JavaScript编写点击查看大图的页面半透明遮罩层效果实例
May 09 Javascript
jQuery Ztree行政地区树状展示(点击加载)
Nov 09 Javascript
Angular.JS去掉访问路径URL中的#号详解
Mar 30 Javascript
深入理解node.js之path模块
May 03 Javascript
JavaScript适配器模式详解
Oct 19 Javascript
node.js命令行教程图文详解
May 27 Javascript
JS document对象简单用法完整示例
Jan 14 Javascript
详解vue v-model
Aug 31 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
table标签的结构与合并单元格的实现方法
2013/07/24 PHP
php 在线导入mysql大数据程序
2015/06/11 PHP
php简单创建zip压缩文件的方法
2016/04/30 PHP
源码分析 Laravel 重复执行同一个队列任务的原因
2017/12/25 PHP
Laravel Eloquent ORM 实现查询表中指定的字段
2019/10/17 PHP
修改file按钮的默认样式实现代码
2013/04/23 Javascript
Node.js中的事件驱动编程详解
2014/08/16 Javascript
JavaScript函数节流概念与用法实例详解
2016/06/20 Javascript
详解如何使用webpack打包JS
2018/06/21 Javascript
微信小程序实现的日期午别医生排班表功能示例
2019/01/09 Javascript
使用pm2部署node生产环境的方法步骤
2019/03/09 Javascript
Vue起步(无cli)的啊教程详解
2019/04/11 Javascript
Element Steps步骤条的使用方法
2020/07/26 Javascript
[44:01]2018DOTA2亚洲邀请赛3月30日 小组赛B组 EG VS paiN
2018/03/31 DOTA
[10:05]DOTA2-DPC中国联赛 正赛 iG vs PSG.LGD 选手采访
2021/03/11 DOTA
使用python提取html文件中的特定数据的实现代码
2013/03/24 Python
python使用PyV8执行javascript代码示例分享
2013/12/04 Python
使用Python制作获取网站目录的图形化程序
2015/05/04 Python
Django如何防止定时任务并发浅析
2019/05/14 Python
Python Pandas数据中对时间的操作
2019/07/30 Python
PySide2出现“ImportError: DLL load failed: 找不到指定的模块”的问题及解决方法
2020/06/10 Python
keras分类模型中的输入数据与标签的维度实例
2020/07/03 Python
python3.6中anaconda安装sklearn踩坑实录
2020/07/28 Python
Django实现随机图形验证码的示例
2020/10/15 Python
Python 删除List元素的三种方法remove、pop、del
2020/11/16 Python
canvas学习笔记之2d画布基础的实现
2019/02/21 HTML / CSS
使用HTML5中的contentEditable来将多行文本自动增高
2016/03/01 HTML / CSS
Bench加拿大官方网站:英国城市服装品牌
2017/11/03 全球购物
Sephora丝芙兰马来西亚官方网站:国际化妆品购物
2018/03/15 全球购物
街头时尚在线:JESSICABUURMAN
2019/06/16 全球购物
Java面试题及答案
2012/09/08 面试题
总监职责范文
2013/11/09 职场文书
《谁的本领大》教后反思
2014/04/25 职场文书
2015年乡镇安全生产工作总结
2015/05/19 职场文书
怎样写好演讲稿题目?
2019/08/21 职场文书
七年级作文之冬景
2019/11/07 职场文书