QQ登录

只需要一步,快速开始

APP扫码登录

只需要一步,快速开始

手机号码,快捷登录

手机号码,快捷登录

查看: 1944|回复: 0

[HTML/CSS/JS] JavaScript判断设备类型的实现

[复制链接]

等级头衔

积分成就    金币 : 2841
   泡泡 : 1516
   精华 : 6
   在线时间 : 1294 小时
   最后登录 : 2024-11-21

丰功伟绩

优秀达人突出贡献荣誉管理论坛元老

联系方式
发表于 2021-10-28 09:13:59 | 显示全部楼层 |阅读模式
一、实现思路
9 Q$ r+ O# F* \. W: P       可以通过 JavaScript 来实现判断当前的设备类型:navigator 是 JavaScript 中的一个独立的对象,用于提供用户所使用的浏览器以及操作系统等信息,以 navigator 对象属性的形式来提供。所有浏览器都支持该对象。+ F: k  f( m0 I$ x
       而 navigator 对象有一个 userAgent 属性,会返回用户的设备操作系统和浏览器的信息。 此时可以通过 userAgent 判断是 H5 浏览器还是 PC 浏览器。而 App 不能获取 Window 的浏览器对象 navigator 的。那么可以在之前判断是否存在 navigator,不存在即为 App。
0 u, m7 r* |1 J3 u1 f
  1. function fIsMobile(){
  2.     return /Android|iPhone|iPad|iPod|BlackBerry|webOS|Windows Phone|SymbianOS|IEMobile|Opera Mini/i.test(navigator.userAgent);
  3. }
或者:+ ~- J/ A  l# B8 i4 m
  1. function iswap() {
  2.     var uA = navigator.userAgent.toLowerCase();
  3.     var ipad = uA.match(/ipad/i) == "ipad";
  4.     var iphone = uA.match(/iphone os/i) == "iphone os";
  5.     var midp = uA.match(/midp/i) == "midp";
  6.     var uc7 = uA.match(/rv:1.2.3.4/i) == "rv:1.2.3.4";
  7.     var uc = uA.match(/ucweb/i) == "ucweb";
  8.     var android = uA.match(/android/i) == "android";
  9.     var windowsce = uA.match(/windows ce/i) == "windows ce";
  10.     var windowsmd = uA.match(/windows mobile/i) == "windows mobile";
  11.     if (!(ipad || iphone || midp || uc7 || uc || android || windowsce || windowsmd)) {
  12.         // PC 端
  13.     }else{
  14.         // 移动端
  15.     }
  16. }
二、浏览器宽度区分
* b7 v2 H* X" u/ @  F       我们可以利用js代码,来判断访问者设备屏幕的宽度的大小来确定访客的设备是否为移动设备。
5 b# U+ ?3 N- w
window.screen.availWidth:用来获取浏览器屏幕的宽度。7 n: o0 w8 Q% F# W$ {* ^
window.screen.availHeight:用来获取浏览器屏幕的高度。
  1. <script>
  2. if(window.screen.availWidth<768){
  3.     //移动端
  4. }else{
  5.     //PC端
  6. }
  7. </script>
三、js判断是否ios或Android0 W' }% ?* Q/ }2 f! w0 ?' L
  1. var u = navigator.userAgent;
  2. var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android终端
  3. var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
区分Android、iphone、ipad:
- r: X' \; T3 b& B/ O
  1. ar ua = navigator.userAgent.toLowerCase();
  2. if (/android|adr/gi.test(ua)) {
  3.     // 安卓  
  4. } else if (/\(i[^;]+;( U;)? CPU.+Mac OS X/gi.test(ua)) {
  5.     //苹果  
  6. } else if (/iPad/gi.test(ua)) {
  7.     //ipad  
  8. }
四、js区分判断访客的浏览器
$ b+ S4 x5 j1 v' ~: s3 C2 z  g
  1. var ua = navigator.userAgent.toLowerCase();
  2. if (/msie/i.test(ua) && !/opera/.test(ua)) {
  3.     alert("IE");
  4.     return;
  5. } else if (/firefox/i.test(ua)) {
  6.     alert("Firefox");
  7.     return;
  8. } else if (/chrome/i.test(ua) && /webkit/i.test(ua) && /mozilla/i.test(ua)) {
  9.     alert("Chrome");
  10.     return;
  11. } else if (/opera/i.test(ua)) {
  12.     alert("Opera");
  13.     return;
  14. } else if (/iPad/i) {
  15.     alert("ipad");
  16.     return;
  17. }
  18. if (/webkit/i.test(ua) && !(/chrome/i.test(ua) && /webkit/i.test(ua) && /mozilla/i.test(ua))) {
  19.     alert("Safari");
  20.     return;
  21. } else {
  22.     alert("unKnow");
  23.     }
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|paopaomj.COM ( 渝ICP备18007172号|渝公网安备50010502503914号 )

GMT+8, 2024-11-21 19:23

Powered by paopaomj X3.5 © 2016-2025 sitemap

快速回复 返回顶部 返回列表