文档章节

Navigator 对象,能够清楚地知道浏览器的相关信息

o
 osc_y8yehimr
发布于 2019/03/20 17:47
字数 1427
阅读 7
收藏 0

精选30+云产品,助力企业轻松上云!>>>

Navigator 对象属性

appCodeName属性

功能:返回浏览器的代码名。该属性是一个只读的字符串。

语法:navigator.appCodeName

总结:在所有以Netscape代码为基础的浏览器中,它的值是"Mozilla"。为了兼容起见,在Microsoft的浏览器中,它的值也是"Mozilla",同时在safari在浏览器的console里运行navigator.appCodeName得出的结果还是"Mozilla"。所以这个看起来并不实用,因为IE、chrome、safari返回的都是“Mozilla”;

appName属性

功能:返回所使用浏览器的名称。该属性是一个只读的字符串。

语法:navigator.appName

总结:由于兼容性问题,HTML5 规范允许该属性返回 "Netscape" 。在chrome、safari的里面都是返回"Netscape"。该属性并不一定能返回正确的浏览器名称。在基于 Gecko 的浏览器 (例如 Firefox)和基于 WebKit 的浏览器(例如 Chrome 和 Safari)中,返回的浏览器名称都是 "Netscape"。

appVersion属性【已废弃】

功能:返回浏览器的平台和版本信息。该属性是一个只读的字符串。

语法:navigator.appVersion

总结:它可能只包含一个版本数字,如 "5.0",还可能包含一些其他的相关信息。由于兼容性问题,HTML5规范允许该属性返回 "4.0"。不要指望该属性返回正确的值。该特性已经从 Web 标准中删除,虽然一些浏览器目前仍然支持它,但也许会在未来的某个时间停止支持,请尽量不要使用该特性。

browserLanguage属性【大部分浏览器尝试也都比较支持,尽量不使用】

功能:返回当前浏览器的语言。该属性是一个只读的字符串。

语法:navigator.browserLanguage

总结:--

cookieEnabled属性【大部分浏览器尝试也都比较支持,尽量不使用】

功能:返回指明浏览器中是否启用 cookie 的布尔值。该属性是一个只读的字符串。

语法:navigator.cookieEnabled

总结:--

cpuClass属性

功能:返回浏览器系统的 CPU 等级。该属性是一个只读的字符串。

语法:navigator.cpuClass

总结:--

platform属性

功能:返回运行浏览器的操作系统平台。该属性是一个只读的字符串。

语法:navigator.platform

总结:platform 可能是: "Win32", "Linux i686", "MacPPC", "MacIntel", 等,在一定程度上可以用来区分移动端和pc端,但不是很好的方案。

systemLanguage属性【大部分浏览器尝试也都比较支持,尽量不使用】

功能:返回 OS 使用的默认语言。该属性是一个只读的字符串。

语法:navigator.systemLanguage

总结:--

product属性

功能:该属性返回当前浏览器的产品名称。该属性是一个只读的字符串。

语法:navigator.product

总结:该属性不一定返回一个真实的产品名称。Gecko 和 WebKit 浏览器返回 "Gecko" 作为该属性的值。

userAgent属性【重点】

功能:返回当前浏览器发送服务器的用户代理(user-agent)头部的值(字符串)。该属性是一个只读的字符串。

语法:navigator.userAgent

总结:先看看chrome、safari、ios、android的返回值:

 1 chrome:
 2     Mozilla/5.0 
 3     (Macintosh; Intel Mac OS X 10_12_6) 
 4     AppleWebKit/537.36 (KHTML, like Gecko) 
 5     Chrome/61.0.3163.91 Safari/537.36
 6 safari:
 7     Mozilla/5.0 
 8     (Macintosh; Intel Mac OS X 10_12_6) 
 9     AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 
10     Safari/604.1.38
11 ios11刘海X:
12     Mozilla/5.0 
13     (iPhone; CPU iPhone OS 11_0 like Mac OS X) 
14     AppleWebKit/604.1.38 (KHTML, like Gecko) 
15     Version/11.0 Mobile/15A372 Safari/604.1
16 ipad:
17     Mozilla/5.0 
18     (iPad; CPU OS 9_1 like Mac OS X) 
19     AppleWebKit/601.1.46 (KHTML, like Gecko)
20     Version/9.0 Mobile/13B143 Safari/601.1
21 galxy sansum:
22     Mozilla/5.0 
23     (Linux; Android 5.0; SM-G900P Build/LRX21T) 
24     AppleWebKit/537.36 (KHTML, like Gecko) 
25     Chrome/61.0.3163.91 Mobile Safari/537.36
26 安装uc浏览器:
27     Mozilla/5.0 
28     (Linux; U; Android 6.0.1; zh-CN; Mi Note 2 Build/MXB48T)
29     AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 
30     Chrome/40.0.2214.89 UCBrowser/11.4.9.941 Mobile Safari/537.36
31 winphone:
32     Mozilla/5.0 
33     (Linux; Android 5.1.1; Nexus 6 Build/LYZ28E) 
34     AppleWebKit/537.36 (KHTML, like Gecko) 
35     Chrome/61.0.3163.91 Mobile Safari/537.36
36 hybrid方法的可能:
37     Mozilla/5.0 
38     (iPhone; CPU iPhone OS 11_0 like Mac OS X) 
39     AppleWebKit/604.1.38 (KHTML, like Gecko) 
40     Mobile/15A372 weibo/80011134

 一般来讲,它是在 navigator.appCodeName 的值之后加上斜线和 navigator.appVersion 的值构成的。

例子:

  • 判断当前页面所在的环境是不是微信内置浏览器
function isWeiXin () {
  var ua = window.navigator.userAgent.toLowerCase();
  if (ua.match(/MicroMessenger/i) == 'micromessenger') {
    return true;
  } else {
    return false;
  }
}
  • 判断苹果、安卓、pc
if (/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent)) { //判断iPhone|iPad|iPod|iOS
  window.location.href ="iPhone.html";
} else if (/(Android)/i.test(navigator.userAgent)) {  //判断Android
  window.location.href ="Android.html";
} else { //pc
  window.location.href ="pc.html";
};
  • 正则表达式判断浏览器类型
function userBrowser(){   
    var browserName=navigator.userAgent.toLowerCase();   
    if(/msie/i.test(browserName) && !/opera/.test(browserName)){   
        alert("IE");   
        return ;   
    }else if(/firefox/i.test(browserName)){   
        alert("Firefox");   
        return ;   
    }else if(/chrome/i.test(browserName) && /webkit/i.test(browserName) && /mozilla/i.test(browserName)){   
        alert("Chrome");   
        return ;   
    }else if(/opera/i.test(browserName)){   
        alert("Opera");   
        return ;   
    }else if(/webkit/i.test(browserName) &&!(/chrome/i.test(browserName) && /webkit/i.test(browserName) && /mozilla/i.test(browserName))){   
        alert("Safari");   
        return ;   
    }else{   
        alert("unKnow");   
    }   
}

userLanguage属性【大部分浏览器尝试也都比较支持,尽量不使用】

功能:返回 OS 的自然语言设置。该属性是一个只读的字符串。

语法:navigator.userLanguage

总结:--

作用(navigator.userAgent简称UA)

  • 统计用户浏览器使用情况。有些浏览器说被多少人使用了,实际上就可以通过判断每个IP的UA来确定这个IP是用什么浏览器访问的,以得到使用量的数据。
  • 根据用户使用浏览器的不同,显示不同的排版从而为用户提供更好的体验。有些网站会根据这个来调整打开网站的类型,如是手机的就打开wap,显示非手机的就打开pc常规页面。用手机访问谷歌和电脑访问是不一样的,这些是谷歌根据访问者的UA来判断的。
o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。

暂无文章

Spark Summit North America 202006 高清 PPT 下载

为期五天的 Spark Summit North America 2020在美国时间 2020-06-22 ~ 06-26 举行。由于今年新冠肺炎的影响,本次会议第一次以线上的形式进行。这次会议虽然是五天,但是前两天是培训,后面三...

osc_z9t307rr
17分钟前
14
0
矩阵计算与AI革命:可将计算性能提高150倍的异构计算

本文翻译自Wikibon矩阵计算与AI革命系列研究文章。 如今异构计算(Heterogeneous Compute,HC)已经部署在消费类移动设备中,与传统架构相比可以将矩阵工作负载的性能提高50倍。同时,这也将...

osc_ml6lx2h4
18分钟前
11
0
smart 后台 使用说明

乐观锁 说明 如果想实现如下需求: 当要更新一条记录的时候,希望这条记录没有被别人更新,确保当前只有一个人在操作。 乐观锁的实现原理: 取出记录时,获取当前 version 2 更新时,带上这个 ...

奔跑的android
19分钟前
3
0
关于win10的hype-v与VMWARE启动冲突的解决方法

升级win10后,在卸载hype-v重启电脑后仍然报错,解决的办法是只需要直接使用管理员身份打命令提示符,然后执行以下命令即可: bcdedit /set hypervisorlaunchtype off...

osc_l7zl78wt
20分钟前
16
0
操作系统设计中的加电引导

作者:丁宋涛 系统启动过程概述 在掀下电脑开机按钮后,电源就会开始向主板和其他外围设备供电。初始状态下的电压还不太稳定,因此并不会立即开始指令的执行。此时,主板上的控制芯片组会发出重...

osc_kz2s8mnr
22分钟前
18
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部