JS怎么判断客户端类型

这次给大家带来JS怎么判断客户端类型,JS判断客户端类型的注意事项有哪些,下面就是实战案例,一起来看一下。

前言

我们在写响应式布局的时候,总要考虑是否是移动端,基于这个这里总结了4种方法判断客户端是否是ios或者android。分享出来供大家参考学习,下面随着小编来一起看看详细的介绍吧。

方法如下:

1. 第一种:通过判断浏览器的userAgent,用正则来判断是否是ios和Android客户端

User Agent中文名为用户代理,是Http协议中的一部分,属于头域的组成部分,User Agent也简称UA。它是一个特殊字符串头,是一种向访问网站提供你所使用的浏览器类型及版本、操作系统及版本、浏览器内核、等信息的标识。通过这个标 识,用户所访问的网站可以显示不同的排版从而为用户提供更好的体验或者进行信息统计;例如用手机访问谷歌和电脑访问是不一样的,这些是谷歌根据访问者的 UA来判断的。UA可以进行伪装。

浏览器的UA字串的标准格式:浏览器标识 (操作系统标识; 加密等级标识; 浏览器语言) 渲染引擎标识版本信息。但各个浏览器有所不同。

代码如下:

 var u = navigator.userAgent; var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android终端 var isiOS = !!u.match(/(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端 alert('是否是Android:'+isAndroid); alert('是否是iOS:'+isiOS);

登录后复制

2. 第二种:检查是否是移动端(Mobile)、ipad、iphone、微信、QQ等。

2.1 代码如下:

//判断访问终端var browser={ versions:function(){  var u = navigator.userAgent,    app = navigator.appVersion;  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.*/), //是否为移动终端   ios: !!u.match(/(i[^;]+;( U;)? CPU.+Mac OS X/), //ios终端   android: u.indexOf('Android') > -1 || u.indexOf('Adr') > -1, //android终端   iPhone: u.indexOf('iPhone') > -1 , //是否为iPhone或者QQHD浏览器   iPad: u.indexOf('iPad') > -1, //是否iPad   webApp: u.indexOf('Safari') == -1, //是否web应该程序,没有头部与底部   weixin: u.indexOf('MicroMessenger') > -1, //是否微信 (2015-01-22新增)   qq: u.match(/sQQ/i) == " qq" //是否QQ  }; }(), language:(navigator.browserLanguage || navigator.language).toLowerCase()}

登录后复制

2.2 使用方法

/判断是否IE内核if(browser.versions.trident){ alert("is IE"); }//判断是否webKit内核if(browser.versions.webKit){ alert("is webKit"); }//判断是否移动端if(browser.versions.mobile||browser.versions.android||browser.versions.ios){ alert("移动端"); }

登录后复制

2.3 检测浏览器语言

currentLang = navigator.language; //判断除IE外其他浏览器使用语言if(!currentLang){//判断IE浏览器使用语言currentLang = navigator.browserLanguage;}alert(currentLang);

登录后复制

3. 判断iPhone|iPad|iPod|iOS|Android客户端

代码如下:

if (/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent)) { //判断iPhone|iPad|iPod|iOS //alert(navigator.userAgent);  window.location.href ="iPhone.html";} else if (/(Android)/i.test(navigator.userAgent)) { //判断Android //alert(navigator.userAgent);  window.location.href ="Android.html";} else { //pc window.location.href ="pc.html";};

登录后复制

4. 判断pc还是移动端

代码如下:

  //判断是否手机端访问 var userAgentInfo = navigator.userAgent.toLowerCase(); var Agents = ["android", "iphone",    "symbianos", "windows phone",    "ipad", "ipod"]; var ly=document.referrer; //返回导航到当前网页的超链接所在网页的URL for (var v = 0; v = 0&&(ly==""||ly==null)) {   this.location.href='http://m.***.com'; //wap端地址  } }

登录后复制

5. 常用跳转代码

看代码

 // borwserRedirect (function browserRedirect(){  var sUserAgent = navigator.userAgent.toLowerCase();  var bIsIpad = sUserAgent.match(/ipad/i) == 'ipad';  var bIsIphone = sUserAgent.match(/iphone os/i) == 'iphone os';  var bIsMidp = sUserAgent.match(/midp/i) == 'midp';  var bIsUc7 = sUserAgent.match(/rv:1.2.3.4/i) == 'rv:1.2.3.4';  var bIsUc = sUserAgent.match(/ucweb/i) == 'web';  var bIsCE = sUserAgent.match(/windows ce/i) == 'windows ce';  var bIsWM = sUserAgent.match(/windows mobile/i) == 'windows mobile';  var bIsAndroid = sUserAgent.match(/android/i) == 'android';  var pathname = location.pathname  if(bIsIpad || bIsIphone || bIsMidp || bIsUc7 || bIsUc || bIsCE || bIsWM || bIsAndroid ){  window.location.href = 'http://m.geekjc.com'+pathname; //wap端地址  } })(); 

登录后复制

相信看了本文案例你已经掌握了方法,更多精彩请关注【创想鸟】其它相关文章!

推荐阅读:

webpack怎么提取第三方库

webpack+express的多页站点开发实现步骤

vue-cli+webpack怎样搭建vue开发环境

以上就是JS怎么判断客户端类型的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2772577.html

(0)
上一篇 2025年3月8日 13:21:09
下一篇 2025年3月8日 13:21:16

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 关于js设计模式的超详细介绍

    本篇文章给大家分享的内容是关于js设计模式的超详细介绍,有着一定的参考价值,有需要的朋友可以参考一下 js设计模式 Jan 14, 2017 | 学习笔记 | 3387 Hits 目录 前言 单体模式 工厂模式 迭代器模式 装饰者模式 策略…

    2025年3月8日
    200
  • 一些关于js的实用小算法

    本篇文章给大家分享的内容是一些关于js的实用小算法,有着一定的参考价值,有需要的朋友可以参考一下 判断文本是否为回文 定义:如果将一个文本翻转过来,能和原文本完全相等,那么就可以称之为“回文”。 方法一(字符串、数组内置方法) 登录后复制 …

    编程技术 2025年3月8日
    200
  • JS的Object值怎样合并

    这次给大家带来JS的Object值怎样合并,JS的Object值合并注意事项有哪些,下面就是实战案例,一起来看一下。 前言:在日常开发工作中我们可能会遇到js中对象中所有值的复制工作,也有可能是通过electron开发客户端,改版时候面临到…

    编程技术 2025年3月8日
    200
  • 怎样操作jackson解析json字符串时首字母的大小写转换

    这次给大家带来怎样操作jackson解析json字符串时首字母的大小写转换,操作jackson解析json字符串时首字母大小写转换的注意事项有哪些,下面就是实战案例,一起来看一下。 问题 楼主碰到的问题是,在实体类和表中定义的某个字段为RM…

    编程技术 2025年3月8日
    200
  • JS实现单例模式的步奏详解

    这次给大家带来JS实现单例模式的步奏详解,JS实现单例模式的注意事项有哪些,下面就是实战案例,一起来看一下。 传统单例模式 保证一个类仅有一个实例,并提供一个访问它的全局访问点。 实现单例核心思想 无非是用一个变量来标志当前是否已经为某个类…

    编程技术 2025年3月8日
    200
  • JS怎样将json格式数组下载到excel表格里

    这次给大家带来js怎样将json格式数组下载到excel表格里,js将json格式数组下载到excel表格里的注意事项有哪些,下面就是实战案例,一起来看一下。 实例如下: $(document).ready(function(){ $(‘#…

    编程技术 2025年3月8日
    200
  • JS做出移动端触摸轮播效果

    这次给大家带来JS做出移动端触摸轮播效果,JS做出移动端触摸轮播效果的注意事项有哪些,下面就是实战案例,一起来看一下。 下面是移动端手指滑动轮播图的完整代码。 *{margin:0;padding:0;}li{list-style:none…

    2025年3月8日 编程技术
    200
  • JS的多线程运行库Nexus.js使用详解

    这次给大家带来JS的多线程运行库Nexus.js使用详解,使用JS多线程运行库Nexus.js的注意事项有哪些,下面就是实战案例,一起来看一下。 首先,如果你不熟悉这个项目,建议先阅读之前写的一系列文章。如果你不想阅读这些,不用担心。这里面…

    编程技术 2025年3月8日
    200
  • JS操作TXT文本在指定位置插入内容

    这次给大家带来JS操作TXT文本在指定位置插入内容,JS操作TXT文本在指定位置插入内容的注意事项有哪些,下面就是实战案例,一起来看一下。 实例如下所示: function insertAtCursor(myField, myValue) …

    编程技术 2025年3月8日
    200
  • nodejs怎么实现gulp打包功能

    这次给大家带来nodejs怎么实现gulp打包功能,nodejs实现gulp打包功能的注意事项有哪些,下面就是实战案例,一起来看一下。 最近换了家新公司,由于是创业公司,项目基本从零开始搭建。工作几年,也没想过写点什么技术性的东西,今天突然…

    编程技术 2025年3月8日
    200

发表回复

登录后才能评论