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 相关文章推荐
JS的事件绑定深入认识
Jun 26 Javascript
javascript实现网页屏蔽Backspace事件,输入框不屏蔽
Jul 21 Javascript
原生js实现图片轮播特效
Dec 18 Javascript
Vue2.0利用 v-model 实现组件props双向绑定的优美解决方案
Mar 13 Javascript
Angular2数据绑定详解
Apr 18 Javascript
jQuery实现动画、消失、显现、渐出、渐入效果示例
Sep 06 jQuery
详解Vue项目部署遇到的问题及解决方案
Jan 11 Javascript
layer.js之回调销毁对话框的例子
Sep 11 Javascript
基于js实现抽红包并分配代码实例
Sep 19 Javascript
从Node.js事件触发器到Vue自定义事件的深入讲解
Jun 26 Javascript
vue 在methods中调用mounted的实现操作
Aug 07 Javascript
Vue实现手机计算器
Aug 17 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 5.3 下载时 VC9、VC6、Thread Safe、Non Thread Safe的区别分析
2011/03/28 PHP
PHP中的排序函数sort、asort、rsort、krsort、ksort区别分析
2014/08/18 PHP
php判断并删除空目录及空子目录的方法
2015/02/11 PHP
yii2使用gridView实现下拉列表筛选数据
2017/04/10 PHP
JavaScript 弹出窗体点击按钮返回选择数据的实现
2010/04/01 Javascript
JavaScript 一行代码,轻松搞定浮动快捷留言-V2升级版
2010/04/02 Javascript
深入理解JavaScript系列(7) S.O.L.I.D五大原则之开闭原则OCP
2012/01/15 Javascript
js动画(animate)简单引擎代码示例
2012/12/04 Javascript
随鼠标上下滚动的jquery代码
2013/12/05 Javascript
jquery操作对象数组元素方法详解
2014/11/26 Javascript
浅谈javascript中基本包装类型
2015/06/03 Javascript
Javascript实现快速排序(Quicksort)的算法详解
2015/09/06 Javascript
AngularJS基础教程之简单介绍
2015/09/27 Javascript
JavaScript必知必会(七)js对象继承
2016/06/08 Javascript
详解JS-- 浮点数运算处理
2016/11/28 Javascript
jQuery代码实现实时获取时间
2017/01/29 Javascript
react-router4 嵌套路由的使用方法
2017/07/24 Javascript
bootstrap fileinput实现文件上传功能
2017/08/23 Javascript
JS实现获取进今年第几天是周几的方法分析
2018/06/27 Javascript
react-native使用leanclound消息推送的方法
2018/08/06 Javascript
webpack4 处理SCSS的方法示例
2018/09/03 Javascript
基于Vue 服务端Cookies删除的问题
2018/09/21 Javascript
微信小程序 导入图标实现过程详解
2019/10/11 Javascript
[38:41]2014 DOTA2国际邀请赛中国区预选赛 LGD VS CNB
2014/05/22 DOTA
[00:20]TI9观赛名额抽取Ⅱ
2019/07/24 DOTA
pandas读取CSV文件时查看修改各列的数据类型格式
2019/07/07 Python
django项目登录中使用图片验证码的实现方法
2019/08/15 Python
Python全局锁中如何合理运用多线程(多进程)
2019/11/06 Python
让IE6、IE7、IE8支持CSS3的脚本
2010/07/20 HTML / CSS
html5 跨文档消息传输示例探讨
2013/04/01 HTML / CSS
中东地区最大的奢侈品市场:The Luxury Closet
2019/04/09 全球购物
香港网上花店:FlowerAdvisor香港
2019/05/30 全球购物
仓库保管员岗位职责
2013/12/20 职场文书
计划生育汇报材料
2014/12/26 职场文书
学校会议通知范文
2015/04/15 职场文书
志愿者工作心得体会
2016/01/15 职场文书