`
zccst
  • 浏览: 3322035 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

[BOM]navigator知识点

阅读更多
作者:zccst

历史
  最早的时候有一个浏览器叫NCSA Mosaic,把自己标称为NCSA_Mosaic/2.0 (Windows 3.1),它支持文字显示的同时还支持图片,于是Web开始好玩起来。

然后出现了一个新的网页浏览器,“Mozilla”,其实就是“Mosaic终结者”的意思,这搞的Mosaic很不爽,(毕竟Mosaic出道早,江湖老),新浏览器最后正式公布的名称是Netscape,它把自己标称为Mozilla/1.0 (Win3.1),更好玩了。Netscape支持框架显示,后来框架在大家中间流行起来了,但Mosaic不支持框架啊,于是伟大的“用户代-理人探测”技术出现了,如果是“Mozilla”,那就发给支持框架的页面,至于其他的浏览器,则发给不含框架的页面。

  Netscape想逗Microsoft玩儿,把Windows叫做“几乎不曾做过调试的设备驱动器”,后者很恼火。Microsoft于是推出了自己的 网页浏览器,叫做Internet Explorer,希望它能成为“Netscape终结者”。Internet Explorer也支持框架,但它不是Mozilla啊,所以没人给它发送带有框架的页面。Microsoft慢慢烦躁起来,不再寄希望于网站管理员逐渐 认识IE并给它发框架,而是宣称自己是“兼容Mozilla”的,开始模仿Netscape,把自己标称为Mozilla/1.22 (compatible; MSIE 2.0; Windows 95),这样Internet Explorer也能收到框架了,整个Microsoft狂喜,但网站管理员开始有点被搞糊涂了。

  Microsoft把IE和Windows一起卖,并且把产品也弄得比Netscape更好了,拉开了第一场浏览器之战。结果和大家知道的一样,Netscape被干掉了,Microsoft大胜、大喜。但是后来Netscape以Mozilla的新名称重生了,构造了Gecko,标称其为Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.1) Gecko/20020826,Gecko属于渲染引擎,表现优异。Mozilla开发了Firefox,标称为Mozilla/5.0 (Windows; U; Windows NT 5.1; sv-SE; rv:1.7.5) Gecko/20041108 Firefox/1.0,并且Firefox表现也非常优秀。Gecko扩张迅速,一些浏览器使用了它的代码并标称为Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.7.2) Gecko/20040825 Camino/0.8.1 ,这是一个,还有Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.8) Gecko/20071008 SeaMonkey/1.0,另一个,它们都伪装成Mozilla,同时也都是基于Gecko支持的。 

  Gecko表现优秀,IE则很差劲,于是身份甄别再次发生,输送给Gecko的是设计良好的网页代码,其他浏览器就没有这个待遇了。Linux的跟随者很伤心,因为他们创建了基于KHTML引擎支持的Konqueror,但却不会被输送好代码,虽然他们自己认为KHTML和Gecko一样优秀,于是Konquerer开始伪装自己“像Gecko”那样以得到好的网页,并标称自己为Mozilla/5.0 (compatible; Konqueror/3.2; FreeBSD) (KHTML, like Gecko),这个世界更让人困惑了。

  后来出现了Opera这样的主儿,宣称“允许用户自己决定让浏览器装成谁”,它的菜单中提供了Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera 9.51, Mozilla/5.0 (Windows NT 6.0; U; en; rv:1.8.1) Gecko/20061208 Firefox/2.0.0 Opera 9.51,Opera/9.51 (Windows NT 5.1; U; en) 供大家来选择,选谁是谁。  

  Apple开发了Safari,使用了KHTML,同时也增加了很多新特性,后来干脆一锅煮,另起炉灶叫了WebKit,但是它有希望能够得到那些为KHTML编写的网页,于是Safari标称自己为Mozilla/5.0 (Macintosh; U; PPC Mac OS X; de-de) AppleWebKit/85.7 (KHTML, like Gecko) Safari/85.5,这个世界更混乱了。  


  Microsoft越来越担心Firefox的发展,重新启动了Internet Explorer的开发,标称自己为Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0) ,可以很好的渲染代码,但那要看网站管理员是否指示它这么做。


  Google也开发了自己的浏览器Chrome, 使用了Webkit,有点像Safari,希望能得到为Safari编写的网页,于是决定装成Safari。这样啊,Chrome使用了WebKit渲染 引擎,想装成Safari,而WebKit呢又伪装自己是KHTML,KHTML呢又是伪装成Gecko的,同时所有的浏览器又都宣称自己是 Mozilla,于是,Chrome宣称自己是
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.27 Safari/525.13,,UserAgent字符串彻底混乱了,也几乎不再发挥任何作用,每个人都宣称自己是别人,混乱充斥人间啊。

  有点调侃的味道,可以总结为一句话:Mozilla是Netscape的吉祥物,也是Netscape Navigator浏览器使用的内部开发代号。由于Netscape早期的影响力,直到今天,所有浏览器包括IE,向Web服务器报告自己的浏览器标识的 时候,都以 “Mozilla”开头,表明自己是Mozilla兼容的。这,就是原因啦。





浏览器四种内核:
Trident: IE 以Trident 作为内核引擎; 

Gecko: Firefox 是基于 Gecko 开发;  (Netscape6开始采用的内核)

WebKit: Safari, Google Chrome,搜狗浏览器的高速内核,傲游3 基于 Webkit 开发。  (苹果公司自己的内核)

Presto: Opera的内核,但由于市场选择问题,主要应用在手机平台--Opera mini


以chrome为例,查看navigator

appCodeName: "Mozilla"
appName: "Netscape"
appVersion: "5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.89 Safari/537.36"

cookieEnabled: true

doNotTrack: null

geolocation: Geolocation  #地理位置

hardwareConcurrency: 4    #硬件协调

language: "zh-CN" 
languages: Array[2]

maxTouchPoints: 0
mimeTypes: MimeTypeArray
onLine: true              #是否联网
platform: "Win32"
plugins: PluginArray
product: "Gecko"
productSub: "20030107"
serviceWorker: ServiceWorkerContainer

userAgent: "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.89 Safari/537.36"
//看看历史就懂了


vendor: "Google Inc."
vendorSub: ""

webkitPersistentStorage: DeprecatedStorageQuota
webkitTemporaryStorage: DeprecatedStorageQuota


chrome模拟手机

appVersion: "5.0 (Linux; Android 4.2.2; GT-I9505 Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.59 Mobile Safari/537.36"

userAgent: "Mozilla/5.0 (Linux; Android 4.2.2; GT-I9505 Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.59 Mobile Safari/537.36"


如果您觉得本文的内容对您的学习有所帮助,您可以微信:
分享到:
评论

相关推荐

    BOM知识点汇总

    **JavaScript BOM(浏览器对象模型)知识点汇总** 在JavaScript中,BOM(Browser Object Model)是浏览器提供的一系列接口,允许我们与浏览器环境进行交互,包括处理窗口、导航、历史记录、cookies、时间、弹出框等...

    简单的bom文档

    ### 知识点详解:BOM(Browser Object Model)概览及应用 #### 一、BOM 概念介绍 **BOM** 是 **Browser Object Model** 的缩写,中文可译为“浏览器对象模型”。它是 Web 开发中用于描述浏览器窗口与其功能之间...

    2一面 2:JS-Web-API 知识点与高频考题解析.md

    # 一面 2:JS-Web-API 知识点与高频考题解析 除 ES 基础之外,Web 前端经常会用到一些跟浏览器相关的 API,接下来我们一起梳理一下。 ## 知识点梳理 - BOM 操作 - DOM 操作 - 事件绑定 - Ajax - 存储 ------ ##...

    JavaScript_BOM.txt

    ### JavaScript 浏览器对象模型 (BOM) #### 一、概述 浏览器对象模型(Browser Object Model,...以上总结了 BOM 中的关键知识点以及不同浏览器之间的差异。掌握这些知识对于开发跨浏览器兼容的应用程序至关重要。

    js学习资源(js基础、BOM和DOM操作)

    JavaScript,简称JS,是Web开发中的重要脚本语言,用于实现客户端的动态效果和交互。在"js学习资源(js基础、BOM和DOM操作)"这个主题中...通过练习和项目实战,能更深入理解和运用这些知识点,不断提升自己的技能水平。

    JavaScript知识点总结文档

    ### JavaScript知识点总结 #### 一、JavaScript的历史与ECMAScript标准 JavaScript 的历史可以追溯到1992年,当时 Nombas 公司开发了一种名为 C-- 的嵌入式脚本语言,并最终更名为 ScriptEase。随着互联网的发展,...

    Javascript操作BOM和DOM

    以下是一些关键的BOM知识点: 1. **window对象**: 它代表整个浏览器窗口,包括页面内容和浏览器的工具栏。`window.location`用于获取或设置当前页面的URL,`window.history`则用于管理浏览历史。 2. **navigator...

    javascript中BOM基础知识总结

    在学习BOM时,我们主要关注以下几点: 1. **`window`对象**:作为顶级对象,`window`包含了全局变量和函数,它们都可以视为`window`的属性和方法。例如,我们可以通过`window.open()`来打开新的窗口或标签,参数...

    JavaScript知识点复习.pdf

    JavaScript是一种广泛用于互联网的...随着Web技术的发展,JavaScript的知识点不断扩展,包括框架(如React、Vue)、模块化(如CommonJS、ES6模块)、异步编程(Promise、async/await)等,都需要开发者持续学习和掌握。

    JavaWeb-03(JavaScript 和BOM)

    资料和PPT将详细讲解各个知识点,并给出示例代码,帮助你更好地掌握JavaWeb中JavaScript和BOM的应用。 练习题是检验学习成果的关键,通过解答这些问题,你可以发现自己在哪些方面还需要进一步提升。同时,不断实践...

    js笔记整理BOM和DOM,es5和es6

    本文将深入探讨这些概念及其重要知识点。 首先,BOM(Browser Object Model)是浏览器提供的一系列对象,允许JavaScript与浏览器进行交互。BOM的核心对象是Window,它代表了浏览器的一个实例,包含location(用于...

    深入学习JavaScript中的bom

    通过上述知识点,开发者可以实现丰富的用户交互功能,如提示信息、页面跳转、定时操作等,提高网页的互动性和用户体验。同时,理解并掌握这些BOM特性,对于JavaScript的深入学习和实际项目开发至关重要。

    一面 2:JS-Web-API 知识点与高频考题解析1

    在JavaScript的Web API中,BOM(Browser Object Model)和DOM(Document Object Model)是两个核心概念,它们分别用于操作浏览器特性和...对于这些知识点的掌握,不仅能够帮助解决实际问题,也是面试中脱颖而出的关键。

    第10章 JS-Web-API-BOM【内容虽然不多,但是你不能不会】.rar

    本章将深入探讨JS-Web-API-BOM的相关知识点,尽管内容看似不多,但却是每个前端开发者必须掌握的基础。 一、什么是BOM BOM全称为Browser Object Model,它是浏览器提供的一系列接口,允许JavaScript操作浏览器窗口...

    Js_230(JavaScript中常用的230个知识点)

    "Js_230"这个压缩包文件涵盖了JavaScript中230个常用的知识点,旨在帮助开发者深入理解和掌握这门语言的核心技巧。 1. **基本语法** - 变量声明:`var`, `let`, `const` - 数据类型:原始类型(Number, String, ...

    前端基础HTML、css、js基础、js高级(DOM、bom)

    本知识点聚焦于前端开发的基础,包括HTML、CSS以及JavaScript,以及JavaScript中的DOM(Document Object Model)和BOM(Browser Object Model)。 **HTML(HyperText Markup Language)** 是Web页面的基础结构语言...

    2021javascript面试题.docx

    本文总结了 JavaScript 面试题的重要知识点,涵盖了 JavaScript 基础知识、DOM 操作、事件处理、BOM 知识点等方面。 JavaScript 基础知识 1. JavaScript 数据类型:JavaScript 中有七种基本数据类型,分别是 ...

    javascript常用的代码大全

    - **知识点**:`window->(navigator,screen,history,location,document)` - 描述了浏览器对象模型(BOM)中的主要对象及其关系。 - `window`是顶级对象。 - `navigator`, `screen`, `history`, `location`, `...

    Js-Bom-refrence:Js Bom Refrence

    JavaScript Browser Object Model (BOM) 是前端开发中的一个重要概念,它允许我们与浏览器进行交互,管理窗口、位置、历史...通过深入学习并实践这些知识点,开发者可以更好地控制和优化网页在不同浏览器环境下的行为。

Global site tag (gtag.js) - Google Analytics