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

 更新时间:2017年10月18日 09:46:14   投稿:mrr  
去年年底开发了一个手机站平台,遇到了很多坎,今天小编给大家分享下使用JS跳转手机站url的若干注意事项,需要的朋友参考下吧

引子:

去年年底公司开发手机站平台,经历了前期的用户群、市场调查,产品需求分析,产品原型设计,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可能面临的问题,有待更新呐!

相关文章

  • 浅谈页面装载js及性能分析方法

    浅谈页面装载js及性能分析方法

    这篇文章主要简单介绍了页面装载js及性能分析方法的相关资料,需要的朋友可以参考下
    2014-12-12
  • JavaScript获取字符串实际长度(包含中英文)

    JavaScript获取字符串实际长度(包含中英文)

    这篇文章介绍了JavaScript获取字符串实际长度(包含中英文)的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • JavaScript中常见的几种继承方式

    JavaScript中常见的几种继承方式

    这篇文章主要介绍了JavaScript中常见的几种继承方式,继承可以访问父类原型上的方法或属性,实现了方法复用,但是创建子类实例时,不能传父类的参数,子类实例共享了父类构造函数的属性值
    2022-06-06
  • javascript中获取class的简单实现

    javascript中获取class的简单实现

    下面小编就为大家带来一篇javascript中获取class的简单实现。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-07-07
  • 详解js 创建对象的几种方法

    详解js 创建对象的几种方法

    这篇文章主要介绍了js 创建对象的几种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • bootstrap table使用入门基本用法

    bootstrap table使用入门基本用法

    这篇文章主要为大家详细介绍了bootstrap table使用入门基本用法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • js实现点击图片改变页面背景图的方法

    js实现点击图片改变页面背景图的方法

    这篇文章主要介绍了js实现点击图片改变页面背景图的方法,实例分析了javascript操作css与图片的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-02-02
  • js转化毫秒为时间格式代码

    js转化毫秒为时间格式代码

    这篇文章主要介绍了使用js转化毫秒为时间格式的具体实现,需要的朋友可以参考下
    2014-04-04
  • JavaScript bind函数手写教程

    JavaScript bind函数手写教程

    bind()方法主要就是将函数绑定到某个对象,bind()会创建一个函数,函数体内的this对象的值会被绑定到传入bind()第一个参数的值,当然这是绑定哦,不是像call、apply一样直接执行,apply要执行的话还得自己调用
    2022-12-12
  • JavaScript中数据过滤的几种常见方法

    JavaScript中数据过滤的几种常见方法

    JavaScript是一种广泛使用的编程语言,它提供了多种方法来对数据进行过滤,在本文中,我们将介绍JavaScript中常见的几种数据过滤方法,并提供相应的示例,感兴趣的朋友跟随小编一起看看吧
    2023-10-10

最新评论