js判断PC端与移动端跳转

发布时间 - 2026-01-11 00:12:54    点击率:

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

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

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

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

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

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

下面小编为大家分享网站常用的判断代码

pc自动跳移动端

(function() {
      if (/Android|webOS|iPhone|iPad|Windows Phone|iPod|BlackBerry|SymbianOS|Nokia|Mobile|Opera Mini/i.test(navigator.userAgent)) {
        var siteName = window.location.pathname;
        if (url.indexOf("?pc") < 0) {
          try {
				if (typeof siteName !== "undefined") {
            	window.location.href = "https://m." + siteName
          		} 
          } catch (e) {}
        }
      }
    })();

移动端自动跳pc端

;(function() {
  var reWriteUrl = function(url) {
    if (url) {
      var Splits = url.split("/"),
      siteName = window.location.pathname;
      if (typeof siteName !== "undefined") {
        return "https://www." + siteName
      }
    }
  };
  if (!/Android|webOS|iPhone|iPad|Windows Phone|iPod|BlackBerry|SymbianOS|Nokia|Mobile|Opera Mini/i.test(navigator.userAgent)) {
    var url = window.location.href;
    var pathname = window.location.pathname;
    if (url.indexOf("?m") < 0) {
      try {
        window.location.href = reWriteUrl(url)
      } catch(e) {}
    }
  }
})();

正确的判断应该为:

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判断pc和手机跳转  # js判断手机端跳转  # 详解JS判断页面是在手机端还是在PC端打开的方法  # 两款JS脚本判断手机浏览器类型跳转WAP手机网站  # 使用JS判断移动端手机横竖屏状态  # js判断手机访问或者PC的几个例子(常用于手机跳转)  # JavaScript获取移动设备型号的实现代码(JS获取手机型号和系统)  # JavaScript判断是否手机浏览器的五种方法  # 是因为  # 才会  # 才发现  # 火狐  # 跳转  # 大家分享  # 去见  # 小编  # 很复杂  # 不完整  # 跳转到  # 第一层  # 打印出来  # 在网上  # 网上  # webOS  # js  # brush  # Android  # function 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: javascript中的数组方法有哪些_如何利用数组方法简化数据处理  如何快速登录WAP自助建站平台?  Win11怎么恢复误删照片_Win11数据恢复工具使用【推荐】  Laravel的辅助函数有哪些_Laravel常用Helpers函数提高开发效率  如何在阿里云服务器自主搭建网站?  Java遍历集合的三种方式  北京专业网站制作设计师招聘,北京白云观官方网站?  网站优化排名时,需要考虑哪些问题呢?  Win11怎么设置默认图片查看器_Windows11照片应用关联设置  Win11怎么关闭透明效果_Windows11辅助功能视觉效果设置  Laravel如何处理CORS跨域请求?(配置示例)  移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?  学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?  想要更高端的建设网站,这些原则一定要坚持!  高防服务器租用指南:配置选择与快速部署攻略  Laravel怎么生成二维码图片_Laravel集成Simple-QrCode扩展包与参数设置【实战】  Laravel API资源(Resource)怎么用_格式化Laravel API响应的最佳实践  Laravel Debugbar怎么安装_Laravel调试工具栏配置指南  Laravel如何发送邮件和通知_Laravel邮件与通知系统发送步骤  如何快速生成专业多端适配建站电话?  Bootstrap CSS布局之列表  canvas 画布在主流浏览器中的尺寸限制详细介绍  什么是javascript作用域_全局和局部作用域有什么区别?  Win11搜索不到蓝牙耳机怎么办 Win11蓝牙驱动更新修复【详解】  Laravel如何监控和管理失败的队列任务_Laravel失败任务处理与监控  如何快速搭建自助建站会员专属系统?  Laravel如何实现API资源集合?(Resource Collection教程)  Thinkphp 中 distinct 的用法解析  如何确认建站备案号应放置的具体位置?  Laravel如何集成Inertia.js与Vue/React?(安装配置)  如何快速上传建站程序避免常见错误?  详解Android图表 MPAndroidChart折线图  如何在腾讯云服务器上快速搭建个人网站?  Laravel项目如何进行性能优化_Laravel应用性能分析与优化技巧大全  如何实现建站之星域名转发设置?  如何在建站之星网店版论坛获取技术支持?  手机网站制作与建设方案,手机网站如何建设?  Laravel怎么自定义错误页面_Laravel修改404和500页面模板  如何挑选优质建站一级代理提升网站排名?  三星网站视频制作教程下载,三星w23网页如何全屏?  如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?  laravel怎么用DB facade执行原生SQL查询_laravel DB facade原生SQL执行方法  Claude怎样写结构化提示词_Claude结构化提示词写法【教程】  Laravel如何使用Spatie Media Library_Laravel图片上传管理与缩略图生成【步骤】  香港服务器选型指南:免备案配置与高效建站方案解析  laravel怎么使用数据库工厂(Factory)生成带有关联模型的数据_laravel Factory生成关联数据方法  Laravel如何实现用户密码重置功能?(完整流程代码)  WEB开发之注册页面验证码倒计时代码的实现  Laravel如何使用withoutEvents方法临时禁用模型事件  今日头条AI怎样推荐抢票工具_今日头条AI抢票工具推荐算法与筛选【技巧】