Js之Navigator对象「建议收藏」

Js之Navigator对象「建议收藏」敬请关注博客,后期不断更新优质博文,谢谢Window对象的navigator属性引用的是包含浏览器厂商和版本信息的Navigator对象。Navigator对象的命名是为了纪念Netscape之后NavigatorBU览器译注2,不过所有其他的浏览器也支持它(IE还支持clientlnformation属性,它作为navigator的厂商中立同义词。遗憾的是,其他浏览器并不支持这一更直观…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

敬请关注博客,后期不断更新优质博文,谢谢
Window对象的navigator属性引用的是包含浏览器厂商和版本信息的Navigator对象。Navigator对象的命名是为了纪念Netscape之后NavigatorBU览器译注2,不过所有其他的浏览器也支持它(IE还支持clientln formation属性,它作为navigator的厂商中立同义
词。遗憾的是,其他浏览器并不支持这一更直观的属性命名)。过去,Navigator对象通常被脚本用来确定它们是在IE中还是在Netscape中运行。这种浏览器嗅探方法有问题,因为它要求随着新浏览器和现有浏览器的新版本的引入而不断地
调整。如今,有一种更好的功能测试方法(参见13.4.3节),只需要测试所需要的功能(即,方法或属性),而不是偎设特定的浏览器版本及其功能。然而,浏览器嗅探有时候仍然有价值。这样的一种情况是,当需要解决存在于某个特定
的浏览器的特定版本中的特殊的bug时。Navigator对象有4个属性用于提供关于运行中的浏览器的版本信息,并且可以使用这些属性进行浏览器嗅探。

appName
Web浏览器的全称。在IE中,这就是“Microsoft Internet Explorer”。在Firefox中,该属性就是“Netscape”。为了兼容现存的浏览器嗅探代码,其他浏览器通常也取值为“Netscape”。
appVersion
此属性通常以数字开始,并跟着包含浏览器厂商和版本信息的详细字符串。字符串前面的数字通常是4.0或5.0,表示它是第4或第5代兼容的浏览器。appVersion字符串没有标准的格式,所以,没有办法直接用它来判断浏览器的类型。
userAgent
浏览器.在它的USER-AGENT HTTP头部中发送的字符串。这个属性通常包含appVersion中的所有信息,并且常常也可能包含其他的细节。和appVersion-样,它也没有标准的格式。由于这个属性包含绝大部分信息,因此浏览器嗅探代码通常用它来嗅探。
platform
在其上运行浏览器的操作系统(并且可能是硬件)的字符串。Navigator属性的复杂性正说明了浏览器嗅探对于处理客户端兼容性问题是没有太大帮助的。在Web的早期,人们写了大量的浏览器特定代码用于测试类似于navigator.appName
的属性。在开发新浏览器的时候,浏览器厂商发现为了让现有网站显示正确,它们需要把appName设置为“Netscape”。类似的做法使得appVersion的起始数字失去了意义,而现在的浏览器嗅探代码必须要依赖于比之前复杂很多的navigator.userAgent字符串。
例14-3展示了如何用正则表达式(摘自iQuery)从navigator.userAgent中抽取浏览器名称和版本号的方法。

复制代码
例14-3:使用navigator.userAgent~-进行浏览器嗅探
//为客户端嗅探定义browser.name和browser.version,这里使用了jOuery l.4.1中的代码
//name和number都是字符串,对于不同的浏览器输出的结果也是不一样的,检测结果如下:
J|
//”webkit”:Safari或Chrome;版本号是Webkit的版本号
//”opera”: Opera;版本号就是软件的版本号
//“mozilla”:Firefox或者其他基于gecko内核的浏览器;版本号是Gecko的版本
//”msie”:IE;版本号就是软件的版本
||
//比如Firefox 3.6返回:{name: “mozilla”, version: “1.9.2”}
var browser=(function(){
var s=navigator.userAgent.toLowerCase();
var match=/(webkit)\//.exec(s) ||
/(opera)(?: .*version)?\//.exec(s) ||
/(msie)([\w.]+)/.exec(s) ||
/compatible/.test(s)&&/(mozilla)(?:.*rv:([\w.]+))?/.exec(s)I l
[];
复制代码

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

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/194978.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java简易爬虫Crawler

    java简易爬虫Crawler小型简易爬虫源码(java版)一,介绍:   >这是我的第一个爬虫,比较简单,没有队列,广度优先算法等,用list集合代替了队列。     >而且只爬取一个网址上面的图片,并不是将网址中的链接加入队列,然后下载一个网址一个网址下载其中的图片。     >不过,这是前期的,处于摸索阶段,后期学完队列和广算后,在涉及一点多线程,肯定会比想象中的更实用。

    2022年6月11日
    22
  • 使用 Captcha 扩展包 为 Laravel 5 应用生成验证码

    使用 Captcha 扩展包 为 Laravel 5 应用生成验证码

    2021年10月26日
    44
  • Python电影评论数据分析系统_echarts数据可视化

    Python电影评论数据分析系统_echarts数据可视化书接上文,继上文实现了《复仇者联盟4:终局之战》电影的影评数据分析采集之后,本文主要对获取到的影评数据进行一些可视化展示,主要的可视化展示手段是词云。这里我把200条左右的纯评论数据抽取解析了出来,贴在下面,感兴趣的可以拿去:=========================================================================…

    2022年9月13日
    3
  • tomcat突然宕机问题解决方案

    tomcat突然宕机问题解决方案一.tomcat突然宕机时间2019年10月19号8点30分51秒,xxxx系统生产环境的92机器出现tomcat突然宕机问题。二.问题定位1.排查tomcat的启停日志。在文件tomcat/logs/localhost.xxxx.log,排查tomcat的启停日志正常。在宕机时刻,有关闭日志输出。2.使用history命令,查看系统的操作命令。发现使用‘./bi…

    2022年7月26日
    32
  • ps快捷键大全表格汇总_ps调色快捷键大全表格图

    ps快捷键大全表格汇总_ps调色快捷键大全表格图【photoshop快捷键大全】 F1 帮助 F2 剪切 F3 拷贝 F4 粘贴 F5 隐藏/显示画笔面板 F6 隐藏/显示颜色面板 F7 隐藏/显示图层面板 F8 隐藏/显示信息面板.

    2022年9月29日
    2
  • xml中注释快捷键_如何快速取消注释程序代码

    xml中注释快捷键_如何快速取消注释程序代码eclipse中编辑Java文件时,注释快捷键和取消注释快捷键都是:”CTRL+/”编辑xml文件时,注释:CTRL+SHIFT+/  取消注释:CTRL+SHIFT+\

    2022年8月15日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号