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|iOSwindow.location.href ="iPhone.html";
} else if (/(Android)/i.test(navigator.userAgent)) {  //判断Androidwindow.location.href ="Android.html";
} else { //pcwindow.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来判断的。

转载于:https://www.cnblogs.com/jameBo/p/10566471.html

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

  1. DOM windows对象 navigator对象 详细介绍

    目录 BOM Window对象是什么 全局作用域 Window对象的属性 window对象与self属性 Window对象的方法 用户的浏览器产品 今日金句 今日心情 BOM Window对象是什么 ...

  2. JS window对象 Navigator对象 Navigator 对象包含有关浏览器的信息,通常用于检测浏览器与操作系统的版本。...

    Navigator对象 Navigator 对象包含有关浏览器的信息,通常用于检测浏览器与操作系统的版本. 对象属性: 查看浏览器的名称和版本,代码如下: <script type=" ...

  3. js的navigator对象的使用(浏览器信息)

    window.navigator 对象包含有关访问者浏览器的信息. <!DOCTYPE html> <html> <body> <div id="e ...

  4. 学习 JS navigator 对象

    集合 描述 IE F O plugins[] 返回对文档中所有嵌入式对象的引用. 该集合是一个 Plugin 对象的数组,其中的元素代表浏览器已经安装的插件.Plug-in 对象提供的是有关插件的信息 ...

  5. 25 navigator对象

    技术交流QQ群:1027579432,欢迎你的加入! 1.navigator对象 navigator对象包含有关浏览器的信息,它有很多属性,我们最常用的是userAgent,该属性可以返回由客户机发送 ...

  6. Navigator 对象 深入研究

    为什么80%的码农都做不了架构师?>>>    一.navigator Navigator 对象包含有关浏览器的信息. ==注释:没有应用于 navigator 对象的公开标准,不过 ...

  7. Navigator 对象

    这是浏览器的对象. 定义:Navigator 对象包含有关浏览器的信息. <script>//关于浏览器的信息var x = navigator;document.write(" ...

  8. javascript Navigator对象属性和方法

    Navigator对象 Navigator 对象包含的属性描述了正在使用的浏览器.可以使用这些属性进行平台专用的配置.虽然这个对象的名称显而易见 的是 Netscape 的 Navigator 的浏览 ...

  9. navigator对象介绍

    <html> <head><title> 测试navigator对象 </title> <body><script>docume ...

最新文章

  1. 兰大本科生发31篇论文遭质疑,本人及校方回应!
  2. 基于SharePoint 2013的论坛解决方案[开源]
  3. VS远程调试(Visual Studio)远程连接到linux cmake(跨平台开发)(适用于VS2019,且远程目标平台cmake版本大于等于3.8)
  4. DC/DC变换器的典型拓扑
  5. ubuntu下git更改默认编辑器
  6. Silverlight 5 Beta新特性[4]文本缩进控制
  7. activiti7 和业务_华电集团电子商务平台非招标业务操作指南
  8. (87)FPGA锁存器与触发器-面试必问(十一)(第18天)
  9. 更改tomcat的根目录路径
  10. Welcome-to-Swift-05控制流(Control Flow )
  11. 十年工龄的程序员为你揭示最危害程序员职业生涯的三大观念
  12. android 网页取词,有道词典屏幕取词怎么用?,你知道吗?在浏览网页
  13. udp客户端 Java_java UDP通信客户端与服务器端实例分析
  14. vscode 文件高亮插件_实用的Visual Studio Code插件
  15. Discussion: 神经网络neural network与计量经济学模型econometric model比较
  16. Adobe FLASH CS6 安装错误解决方法
  17. HDU1757(矩阵快速幂+简单的矩阵构造)
  18. 几何分布的期望和方差公式推导_平方差公式证明推导过程及运用详解(数学简便计算方法之一)...
  19. 石家庄科技工程职业学院计算机系,石家庄科技工程职业学院学生社团
  20. 游戏里面的3d人物角色模型是怎么样制作的?

热门文章

  1. 全国计算机等级考试题库二级C操作题100套(第61套)
  2. 全国计算机等级考试题库二级C操作题100套(第40套)
  3. 五大板块(5)——字符串
  4. c语言基础回顾 —— 其他知识点
  5. linux 查询 lib信息,怎么查看linux是否使用 libarchive
  6. Php面试题之背人过桥,梦见背人过桥好不好?
  7. mysql中使用BETWEEN  AND
  8. mysql使用 CONCAT(字段,字段) 函数拼接
  9. selenium拖动元素java_【自动化测试】Java+Selenium操作页面元素(合集)
  10. linux centos 分区,linux centos 分区