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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 大学生简单个人静态HTML网页设计作品 DIV布局个人介绍网页模板代码 DW学生个人网站制作成品下载 HTML5期末大作业 (1)「建议收藏」

    大学生简单个人静态HTML网页设计作品 DIV布局个人介绍网页模板代码 DW学生个人网站制作成品下载 HTML5期末大作业 (1)「建议收藏」HTML5期末大作业:动漫电影主题——电影动漫言叶之庭(4页)带音乐HTML+CSS+JavaScript期末作业HTML代码学生网页课程设计期末作业下载web网页设计制作成品大学生毕设网页设计源码HTML1.临近期末,你还在为HTML网页设计结课作业,老师的作业要求感到头大?HTML网页作业无从下手?网页要求的总数量太多?2.没有合适的模板?等等一系列问题。你想要解决的问题,在这篇博文中基本都能满足你的需求~3.原始HTML+CSS+JS页面设计,web大学生网页设计作业

    2025年9月24日
    6
  • OPKG 软件包管理

    OPKG 软件包管理Opkg是一个轻量快速的套件管理系统,目前已成为Opensource界嵌入式系统标准。常用于路由、交换机等嵌入式设备中,用来管理软件包的安装升级与下载。中文名opkg属    性套件管理系统更    新可以获取的软件包列表常用于路由、交换机等嵌入式设备常用命令opkgupdate更新可以获取的软件包列表

    2022年6月14日
    25
  • dos攻击防范措施_dos攻击和ddos攻击的区别

    dos攻击防范措施_dos攻击和ddos攻击的区别什么是Dos和DdoS呢?DoS是一种利用单台计算机的攻击方式。而DdoS(DistributedDenialofService,分布式拒绝服务)是一种基于DoS的特殊形式的拒绝服务攻击,是一种分布、协作的大规模攻击方式,主要瞄准比较大的站点,比如一些商业公司、搜索引擎和政府部门的站点。DdoS攻击是利用一批受控制的机器向一台机器发起攻击,这样来势迅猛的攻击令人难以防备,因此具有较大的破坏性。如果说以前网络管理员对抗Dos可以采取过滤IP地址方法的话,那么面对当前DdoS众多伪造出来的地址则显得没有办

    2022年10月1日
    2
  • 打电话省钱的方法_打什么电话最消耗话费

    打电话省钱的方法_打什么电话最消耗话费作者:Saver原载:Saver省钱妙招版权所有,转载时必须以链接形式注明作者和原始出处及本声明。随着运营商们接二连三地推出一系列的优惠服务和套餐业务,不论是聊天、短信、上网、长途,还是在特定时段拨打电话,都有了让您能“占便宜”的打法。可是面对这么多的业务、这么多的特惠时段、特惠号码、套餐、特殊业务,谁能搞清楚哪个是最适合自己、最省钱的打法呢?让我们来帮您拨拨小算盘。下面的12个方案,看有没有…

    2022年10月7日
    2
  • Laravel-任务调度

    Laravel-任务调度

    2021年11月9日
    45
  • Vue(2)计数器的实现「建议收藏」

    Vue(2)计数器的实现「建议收藏」计数器的实现在页面上简单实现一个计数器<!DOCTYPEhtml><htmllang="en"><head><metach

    2022年7月29日
    5

发表回复

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

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