当前位置: 移动技术网 > IT编程>开发语言>JavaScript > JS跳转手机站url的若干注意事项

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

2017年12月12日  | 移动技术网IT编程  | 我要评论

引子:

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

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网