当前位置:主页 > javascript教程 > js判断PC端与移动端跳转

如何用js判断PC端与移动端跳转

发布:2020-01-09 15:01:32 164


给网友朋友们带来一篇js判断PC端移动端相关的编程文章,网友郗梦安根据主题投稿了本篇教程内容,涉及到js、PC端、移动端、js判断PC端与移动端跳转相关内容,已被524网友关注,下面的电子资料对本篇知识点有更加详尽的解释。

js判断PC端与移动端跳转

在网上看到很多这样类似的代码,但是有的很复杂,或者有的没有判断完全,上次经理去见完客户回来讲,使用苹果浏览打开pc端(pc已经做了识别跳转)会自动跳转到移动端的网页去,后来经测试才发现

document.writeln(" 是否为移动终端: "+browser.versions.mobile+"</br>");  //打印出来 true

所以在完整版的代码中 第一层if 判断一直是true

以上的原因是因为,网上流传的判断为: 

mobile: !! u.match(/AppleWebKit.*Mobile.*/) || !! u.match(/AppleWebKit/), //是否为移动终端

判断不完整才会造成这种原因。

正确的判断应该为:

mobile: !! u.match(/AppleWebKit.*Mobile.*/) || !! u.match(/AppleWebKit/) && u.indexOf('QIHU') && u.indexOf('QIHU') > -1 && u.indexOf('Chrome') < 0, //是否为移动终端

测试程序代码

var browser = {
 versions: function() {
  var u = navigator.userAgent;
  return {
   trident: u.indexOf('Trident') > -1,
   presto: u.indexOf('Presto') > -1,
   webKit: u.indexOf('AppleWebKit') > -1,
   gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1,
   mobile: !! u.match(/AppleWebKit.*Mobile.*/) || !! u.match(/AppleWebKit/) && u.indexOf('QIHU') && u.indexOf('QIHU') > -1 && u.indexOf('Chrome') < 0,
   ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/),
   android: u.indexOf('Android') > -1 || u.indexOf('Linux') > -1,
   iPhone: u.indexOf('iPhone') > -1 || u.indexOf('Mac') > -1,
   iPad: u.indexOf('iPad') > -1,
   webApp: u.indexOf('Safari') == -1
  }
 } (),
 language:(navigator.browserLanguage || navigator.language).toLowerCase()
};
document.writeln("语言版本: "+browser.language+"</br>");
document.writeln(" 是否为移动终端: "+browser.versions.mobile+"</br>");
document.writeln(" ios终端: "+browser.versions.ios+"</br>");
document.writeln(" android终端: "+browser.versions.android+"</br>");
document.writeln(" 是否为iPhone: "+browser.versions.iPhone+"</br>");
document.writeln(" 是否iPad: "+browser.versions.iPad+"</br>");
document.writeln(navigator.userAgent+"</br>");

完整版,运用于项目代码

/*
*
* 判断PC端与WAP端
*/
var mobile_bs = {
 versions: function() {
  var u = navigator.userAgent;
  return {
   trident: u.indexOf('Trident') > -1, //IE内核
   presto: u.indexOf('Presto') > -1, //opera内核
   webKit: u.indexOf('AppleWebKit') > -1, //苹果、谷歌内核
   gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1, //火狐内核
   mobile: !! u.match(/AppleWebKit.*Mobile.*/) || !! u.match(/AppleWebKit/) && u.indexOf('QIHU') && u.indexOf('QIHU') > -1 && u.indexOf('Chrome') < 0, //是否为移动终端
   ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios终端
   android: u.indexOf('Android') > -1 || u.indexOf('Linux') > -1, //android终端或者uc浏览器
   iPhone: u.indexOf('iPhone') > -1 || u.indexOf('Mac') > -1, //是否为iPhone或者QQHD浏览器
   iPad: u.indexOf('iPad') > -1,  //是否iPad
   webApp: u.indexOf('Safari') == -1 //是否web应该程序,没有头部与底部
  }
 } ()
};
if (mobile_bs.versions.mobile) {
 if (mobile_bs.versions.android || mobile_bs.versions.iPhone || mobile_bs.versions.iPad || mobile_bs.versions.ios) {
  window.location.href = "移动端网址";
 }
}; 

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持码农之家!


参考资料

相关文章

  • JS实现动态添加DOM节点和事件的实例

    发布:2019-09-16

    这篇文章主要介绍了JS实现动态添加DOM节点和事件的方法,涉及javascript事件响应及针对页面dom元素节点与属性的动态操作相关实现技巧,需要的朋友可以参考下


  • JS实现一个带AI的井字棋游戏的实例讲解

    发布:2019-11-25

    这篇文章主要介绍了基于JavaScript实现一个带AI的井字棋游戏源码,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下


  • 浅析Java线程Dump分析工具jstack解析及使用环境

    发布:2019-06-04

    这篇文章主要介绍了Java线程Dump分析工具jstack解析及使用场景,具有一定借鉴价值,需要的朋友可以参考下


  • 浅谈nodejs中的类定义和继承的套路

    浅谈nodejs中的类定义和继承的套路

    发布:2022-06-14

    为网友们分享了关于nodejs的教程,本篇文章主要介绍了浅谈nodejs中的类定义和继承的套路,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧


  • JavaScript Canvas绘制圆形时钟效果代码实例

    发布:2020-03-17

    这篇文章主要为大家详细介绍了JavaScript Canvas绘制圆形时钟效果的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下


  • java和jsp之间的request传值实例

    发布:2021-05-20

    这篇文章主要给大家介绍了关于java和jsp之间的request传值方法的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧


  • JS实现延迟隐藏功能的代码

    发布:2019-12-18

    下面小编就为大家分享一篇JS实现延迟隐藏功能的方法(类似QQ头像鼠标放上展示信息),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧


  • javascript DOM节点获取方法代码

    发布:2019-08-03

    下面小编就为大家带来一篇老生常谈javascript DOM节点获取。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧


网友讨论