网页浏览器内核与外壳的是是非非

合集下载

浏览器内核详解

浏览器内核详解

一:Trident内核Trident(又称为MSHTML、IE内核),是微软的视窗操作系统(Windows)搭载的网页浏览器—Internet Explorer的排版引擎的名称,它的第一个版本随着1997年10月Internet Explorer第四版发布,之后不断的加入新的技术并随着新版本的InternetExplorer发布。

在Internet Explorer第七版中,微软对Trident排版引擎做了的重大的变动,除了加入新的技术之外,并增加对网页标准的支持。

尽管这些变动已经在相当大的程度上落后了其它的排版引擎,如Gecko、WebCore、KHTML、Webkit及Presto。

Trident引擎被设计成一个软件组件(模块),使得其他软件开发人员很容易的将网页浏览的功能加到他们自行开发的应用程序里。

微软提出了一个称为组件对象模型(COM)的软件接口架构。

供其它支持的组件对象模型开发环境的应用程序(如:C++及.NET)访问及编辑网页。

例如,由C++所撰写的程序可以加入浏览器控件里,并通过Trident引擎访问当前显示在浏览器上的网页内容及网页的各种元素的值,从浏览器控件触发的事件亦可被程序截取并进行处理。

Trident引擎所提供的所有库可以通过与mshtml.dll这个文件的链接而达成撰写程序时所需要的功能。

除此之外,微软还有另一个网页浏览器排版引擎,称为Tasman,它是使用在“Internet Explorer for Mac”的排版引擎。

相较于Trident,Tasman引擎对网页标准有较佳的支持。

与普遍的看法相反的是,微软已经停止了Mac版本的InternetExplorer的开发,但Tasman的开发仍旧持续,新版本的Tasman引擎仍被应用在一些微软产品上,如:Mac版本的Microsoft Office。

基于Trident技术的应用程序除了InternetExplorer第四版以后的版本使用Trident排版引擎之外,还有其它的应用程序也使用了Trident排版引擎所提供的技术:微软视窗操作系统内的应用程序·从Windows 98到Windows XP及Windows Server 2003所有版本的Windows Explorer。

IE FF Chrome 等浏览器内核以及脚本引擎详解

IE FF Chrome 等浏览器内核以及脚本引擎详解

浏览器是我们每天几乎都必须使用的软件产品,可是对于自己每天都接触的浏览器,很多同学其实对其一无所知。

今天异次元就跟大家说说关于浏览器核的一些事儿吧,好让你了解多一点稍微在的东西。

在下面的文章中主要介绍一些常见的浏览器核和JavaScript引擎,部分容来自于我在网上找到的资料,还有一些是我自己的理解,不保证完全正确,但是大致应该是没错的。

如果有误,请指正……一、浏览器核(排版引擎/渲染引擎)首先解释一下浏览器核是什么东西。

英文叫做:Rendering Engine,中文翻译很多,排版引擎、解释引擎、渲染引擎,现在流行称为浏览器核,至于为什么流行这么称呼,请自行领悟。

Rendering Engine,顾名思义,就是用来渲染网页容的,将网页的代码转换为最终你看得见的页面。

因为是排版,所以肯定会排版错位等问题。

为什么会排版错位呢?有的是由于本身编写不规,有的是由于浏览器本身的渲染不标准。

现在有几个主流的排版引擎,因为这些排版引擎都有其代表的浏览器,所以常常会把排版引擎的名称和浏览器的名称混用,比如常的说IE核、Chrome核。

其实这样子是不太合理的,因为一个完整的浏览器不会只有一的排版引擎,还有自己的界面框架和其它的功能支撑,而排版引擎本身也不可能实现浏览器的所有功能。

下面罗列一下几款主流的排版引擎和浏览器。

1、Trident 核(Windows)Trident 就是大名鼎鼎的IE浏览器所使用的核,也是很多浏览器所使用的核,通常被称为IE核。

基于Trident核的浏览器非常多,这是因为Trident核提供了丰富的调用接口。

老的Trident核(比如常说的IE6核)一直是不遵循W3C标准的,但是由于当时IE6的市场份额最大,所以后果就是大量的网页专门为IE6等老Trident核编写,在IE6下显示很正常,但其实这些网页的代码并不符合W3C标准,于是,完全依据W3C标准写的网页在老的Trident核下面又出现偏差,这就是为什么很多人觉得后来的IE9的网页排版有时会乱了,而IE6则正常,其实不是浏览器兼容性差了,而是你访问的网页不符合新的标准。

浏览器内核有几种

浏览器内核有几种

浏览器内核有几种很多用户不知道浏览器内核含义是什么。

下文我们将会提到一些浏览器内核检测方法和浏览器内核介绍,用户可以对比下文了解为什么不同的内核应用于不同的浏览器。

浏览器内核有几种?浏览器内核介绍:1、Trident内核代表产品Internet Explorer,又称其为IE内核。

Trident(又称为MSHTML),是微软开发的一种排版引擎。

使用Trident渲染引擎的浏览器包括:IE、傲游、世界之窗浏览器、Avant、腾讯TT、Netscape 8、NetCaptor、Sleipnir、GOSURF、GreenBrowser和KKman等。

2、Gecko内核代表作品Mozilla FirefoxGecko是一套开放源代码的、以C++编写的网页排版引擎。

Gecko是最流行的排版引擎之一,仅次于Trident。

使用它的最著名浏览器有Firefox、Netscape6至9。

3、WebKit内核代表作品Safari、Chromewebkit 是一个开源项目,包含了来自KDE项目和苹果公司的一些组件,主要用于Mac OS 系统,它的特点在于源码结构清晰、渲染速度极快。

缺点是对网页代码的兼容性不高,导致一些编写不标准的网页无法正常显示。

主要代表作品有Safari和Google的浏览器Chrome。

4、Presto内核代表作品OperaPresto是由Opera Software开发的浏览器排版引擎,供Opera 7.0及以上使用。

它取代了旧版Opera 4至6版本使用的Elektra排版引擎,包括加入动态功能,例如网页或其部分可随着DOM及Script语法的事件而重新排版。

补充:浏览器常见问题分析1.IE浏览器首次开机响应速度慢,需要数秒。

搞定办法:IE下选择工具-internet选项-连接-局域网设置-取消自动检测。

2. IE9图片显示不正常或干脆不显示,尤其是QQ空间搞定办法:工具-internet选项-高级-加速图形-运用软件而非GPU 选择。

浏览器内核及对应兼容性的处理问题

浏览器内核及对应兼容性的处理问题

浏览器内核及对应兼容性的处理问题众所周知,目前市场上最火的五大浏览器是:google chrome、firefox(FF)、Internet Explorer(IE)、safari、opera。

他们相对应的内核是什么呢?谷歌浏览器:Google Chrome,谷歌浏览器之前一直使用苹果的webkit内核,但是现在它与苹果内核分道扬镳,自己开创了新的blink 内核,这个内核也在被欧鹏(opera浏览器)共同采用和开发;火狐浏览器:Mozilla Firefox ,内核是Gecko;opera浏览器:内核是blink;Safari浏览器:使用的是苹果公司自己的内核webkit;IE浏览器:微软出品的浏览器,IE4以上版本都是Trident内核。

由于垄断性,IE在很长一段时间内没有更新,导致两个后果:一是IE 与W3C标准脱节,二是Trident内核大量的bug问题没得到及时解决。

所以这就给了其他浏览器机会,比如firefox等。

也正是这些原因,使Web前端开发人员大费周折,特别是IE6正处在新旧交替的关键地方(已经逐渐被舍弃)。

当然除了这五大浏览器之外,市场上还有很多,例如:搜狗浏览器:兼容模式(IE:Trident)和高速模式(webkit);遨游浏览器:兼容模式(IE:Trident)和高速模式(webkit);QQ浏览器:普通模式(IE:Trident)和极速模式(webkit);360极速浏览器:基于谷歌(Chromium)和IE内核;360安全浏览器:IE内核。

当然,既然浏览器的内核不同,那么浏览器在解析代码的时候就会有可能不一样,因为他们所支持的方法有不同之处。

在pc端,通用的方法有三种:分别是能力检测、代理检测和怪癖检测。

1.能力检测(常用):通过获取标签的API,检测他是否支持这个API,如果支持,那么就用,否则就换另一种API来达到效果,例如原生js中常用的innerText方法:1// 书写innerText的兼容性代码:2// 获取标签的innerText(兼容所有浏览器)3function getInnerText(element) {4if (typeof element.innerT ext === "string") {5return element.innerT ext;6 } else {7return element.textContent;8 }9 }1011//设置标签的innerText(兼容所有浏览器)12function setInnerText(element, value) {13//能力检测14if (typeof element.innerText === "string") {15 element.innerText = value;16 } else {17 element.textContent = value;18 }19 }2.代理检测:通过在浏览器中的控制台(console.log)中输入erAgent,来获得浏览器的相关信息。

什么是浏览器内核

什么是浏览器内核

什么是浏览器内核一、简单介绍一下什么是浏览器内核。

浏览器最重要或者说核心的部分是“Rendering Engine”,可大概译为“解释引擎”,不过我们一般习惯将之称为“浏览器内核”。

负责对网页语法的解释(如HTML、JavaScript)并渲染(显示)网页。

所以,通常所谓的浏览器内核也就是浏览器所采用的渲染引擎,渲染引擎决定了浏览器如何显示网页的内容以及页面的格式信息。

不同的浏览器内核对网页编写语法的解释也有不同,因此同一网页在不同的内核的浏览器里的渲染(显示)效果也可能不同,这也是网页编写者需要在不同内核的浏览器中测试网页显示效果的原因。

浏览器内核很多,如果加上所有的几乎没有什么人在用的非商业的免费内核,那么可能大约有10款以上甚至更多,不过通常我们比较常见的大约只有以下四种,下面先简单介绍一下。

Trident:IE浏览器使用的内核,该内核程序在1997年的IE4中首次被采用,是微软在Mosaic代码的基础之上修改而来的,并沿用到目前的IE9。

Trident实际上是一款开放的内核,其接口内核设计的相当成熟,因此才有许多采用IE内核而非IE的浏览器涌现(如Maxthon、The World 、TT、GreenBrowser、AvantBrowser等)。

此外,为了方便也有很多人直接简称其为IE内核(当然也不排除有部分人是因为不知道内核名称而只好如此说)。

由于IE本身的“垄断性”(虽然名义上IE并非垄断,但实际上,特别是从Windows 95年代一直到XP初期,就市场占有率来说IE的确借助Windows的东风处于“垄断”的地位)而使得Trident内核的长期一家独大,微软很长时间都并没有更新Trident内核,这导致了两个后果——一是Trident内核曾经几乎与W3C标准脱节(2005年),二是Trident内核的大量Bug等安全性问题没有得到及时解决,然后加上一些致力于开源的开发者和一些学者们公开自己认为IE浏览器不安全的观点,也有很多用户转向了其他浏览器,Firefox和Opera就是这个时候兴起的。

web浏览器内核特性

web浏览器内核特性

所谓的“浏览器内核”无非指的是一个浏览器最核心的部分——“Rendering Engine”,直译这个词汇叫做“渲染引擎”,不过我们也常称其为“排版引擎”、“解释引擎”。

这个引擎的作用是帮助浏览器来渲染网页的内容,将页面内容和排版代码转换为用户所见的视图。

注:有时候我们所说的“浏览器内核”甚至“渲染引擎”,其实除了渲染引擎,也悄悄包含了javascript引擎,如WebKit,它由渲染引擎WebCore和javascript 引擎JSCore组成。

常见的浏览器内核(或者说渲染引擎)有很多个,如Trident、Gecko、WebKit 等等,不同的内核对网页编写语法的解释也有不同,进而导致同一个页面在不同内核的浏览器下显示出来的效果也会有所出入,这也是前端工程师需要让作品兼容各种浏览器的原因。

我们常常喜欢把浏览器内核与某浏览器名称直接挂钩起来,如IE内核、Chrome内核,其实是不全面的说法。

比如Opera在7.0版本到12.16版本中采用的是独立研发的Presto引擎,但在后续跟随了Chrome的脚步加入了WebKit大本营,放弃了Presto;另外即使名称相同,但版本不同的引擎也可能存在较大差别。

比如IE6使用的是Trident早期版本,存在许多bug,性能也较低。

而最新的IE11所使用的Trident7.0版本已经可以支持WebGL(3D绘图标准)以及HTML5大部分标准。

下面按照各个主流浏览器,介绍下它们所使用的浏览器内核的历程。

Internet Explorer:IE开发计划开始于1994年夏天,微软为抵抗当时主流的网景Netscape Navigator,要在Windows中开发适合自己的浏览器,但微软并没有时间从零开始。

因此和Spyglass合作,于是IE从早期一款商业性的专利网页浏览器Spyglass Mosaic派生出来,虽然Spyglass Mosaic与NCSA Mosaic(首款应用得最广泛的网页浏览器)甚为相似,但Spyglass Mosaic则相对地较不出名并使用了NCSA Mosaic少量的源代码。

浏览器内核揭秘

浏览器内核揭秘

浏览器内核揭秘作者:技术宅来源:《电脑爱好者》2013年第09期今年关于Opera的两条新闻颇耐人寻味,一条是二月份的时候,Opera宣布放弃自家的Presto引擎改用WebKit,而到了4月初,Opera又宣布紧随Google的脚步支持新的渲染引擎Blink。

为浏览器更换内核绝非易事,Opera不同寻常的“频繁”更换,预示着浏览器市场可能要重新洗牌。

那么,浏览器内核到底是什么,它是如何工作的,为何各大软件厂商在这上面要针锋相对呢?浏览器内核的四大金刚我们平时所使用的浏览器软件,一般来说可分成两大部分:Shell+内核(也称引擎)。

Shell也就是浏览器的外壳,比如窗口、菜单、工具栏等等,说白了就是浏览器跟用户交互的界面,通过Shell,我们可以对浏览器进行各种设置,调用内核的各种功能。

这就像汽车的外观、仪表、方向盘、导航等外围设备一样,用来使用和控制汽车。

而内核才是浏览器的核心,它实际就是一些程序和模块的集成,为浏览器提供主要功能,主要负责取得网页的内容(如HTML、XML、图像、CSS)并进行分析、显示,执行网页中的Javascript脚本等。

继续以汽车为比喻,它就如同汽车的发动机引擎,是汽车运行的真正动力。

其实在浏览器发展初期,外壳和内核并没有明确的划分,它们的功能往往混合在一起。

这种方式的缺点很明显,一旦某项功能有所改进,那么与此项功能相关的程序代码都要重新改写,费时费力。

于是为了便于软件的升级和维护,引进了模块化的思想,渐渐将外壳和内核分开,这样一来,即使内核升级了,只要它保持向下兼容,那么原来在它基础上开发出来的浏览器软件,不用作任何修改,就能继续使用。

就像汽车生产厂商有很多而发动机厂商却很少一样,真正能提供浏览器内核的软件厂商也是曲指可数。

当前主流内核有Trident、Gecko、WebKit、Presto四大家,其中Trident就是我们俗称的IE内核,Gecko是Firefox所用的内核,Webkit是苹果和谷歌所用的内核,Presto是Opera所用的内核。

[浏览器内核有几种]浏览器内核以及私有前缀

[浏览器内核有几种]浏览器内核以及私有前缀

[浏览器内核有几种]浏览器内核以及私有前缀篇一: 浏览器内核以及私有前缀[浏览器内核]浏览器内核以及私有前缀——简介根据不同的内核,一些私有属性的css前缀不一样Gecko内核css前缀为”-moz-”火狐浏览器WebKit内核css前缀为”-webkit-” Comodo Drangon,苹果,搜狗高速浏览器3,快快浏览器,枫树浏览器,云游浏览器,360极速浏览器,世界之窗极速版,SRWare Iron,猎豹浏览器,RockMelt,QQ浏览器Presto内核css前缀为”-o-” Opera,NDSBrowserTrident内核css前缀为”-ms-” IE,360极速浏览器,猎豹安全浏览器,傲游浏览器,百度浏览器,世界之窗浏览器,2345浏览器,腾讯TT,淘宝浏览器,采编读浏览器,搜狗高速浏览器,阿云浏览器,瑞星安全浏览器,Slim Browser,GreenBrowser、爱帆浏览器,115浏览器,155浏览器,114浏览器,N氧化碳浏览器,糖果浏览器,彩虹浏览器,瑞影浏览器,勇者无疆浏览器,闪游浏览器,蚂蚁浏览器,飞腾浏览器,速达浏览器,佐罗浏览器,海豚浏览器,UC浏览器Trident内核css前缀为”-khtml-”:苹果浏览器之前的版本,后改为WebKit内核*因不同浏览器,版本原因,内核数量不一样,所以以上内核说明浏览器会出现多次,详见百度百科中浏览器内核一文。

篇二: 安卓Chrome浏览器有几种?从4.3开始,Chrome成为了Android默认的浏览器。

然而不是所有的Android 4.3+设备都运行原生的系统,不同Android厂商提供了表面相同实际上略有差异的Chrome浏览器。

在安卓生态系统中,至少有11种基于Chromium的默认浏览器。

它们包括:Google Chrome、Opera、Y andex、小米、Cyanogen、Puffin、三星、Amazon Silk,Nokia X,LG Chromium 30和33,HTCChromium 33。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

网页浏览器"内核"与"外壳"的是是非非
自从网页浏览器诞生之日起,各公司间的竞争、各"派别"拥护者之间的争吵,就从未停止过。

直至今日,包括Internet Explorer、Firefox、Safari、Opera、Maxthon等各式各样的网页浏览器在市场上争奇斗艳,好不热闹。

当然这其中也少不了恶意垄断、枪手炒作、网友争论等等。

事实上,还有很多人对浏览器的一些特性还不甚了解,所以就会有诸如"MT再好也只是一个壳""有本事像FF那样自己弄内核去""FF比IE的安全性高多了"这样的言论。

起初,我对这些也不甚了解,也不愿参与这些争论。

后来我慢慢地接触到了一些关于浏览器的东西,不敢独享,整理出来以FAQ的形式和大家分享,希望能提高大家对网页浏览器这种软件的认知度。

※本文文本为大眼夹原创,其中部分资料来自于Wikipedia等网络媒体,力争保持自己的言论的中立性。

Q1:经常听人家说什么浏览器"内核"和"外壳",它们都是什么意思?
A1:"内核"只是一个通俗的说法,其英文名称为"Layout engine",翻译过来就是"排版引擎",也被称为"页面渲染引擎"(下文中各种说法通用)。

它负责取得网页的内容(HTML、XML、图像等等)、整理信息(例如加入CSS等),以及计算网页的显示方式,然后会输出至显示器或打印机。

所有网页浏览器、电子邮件客户端以及其它需要编辑、显示网络内容的应用程序都需要排版引擎。

而浏览器的"外壳"便很好理解了,它是一个面向用户的界面,也就是网页浏览器为我们实现的各种功能。

Q2:浏览器的内核有哪些?
A2:事实上,有很多种(废话!),但是常见的有Trident、Gecko、WebCore、Presto 等。

Q3:Trident是什么内核?
A3:Trident(又称为MSHTML),是微软开发的一种排版引擎。

它的第一个版本随着1997年10月Internet Explorer第四版的发布而发布。

随后,Trident不断地被更新和完善:
Trident II(IE5)--增进对CSS1.0的支持及对CSS2重大的变更
Trident III(IE5.5)--修正部分CSS的排版控制
Trident IV(IE6)--修正了一部分box-model的错误以及增加了"兼容模式(Quirks Mode)"切换功能,以增加对文件类型描述(Document Type Definition,DTD)的支持Trident V(IE7)--修正许多CSS排版处理上的错误以及增加对PNG格式alpha通道(半透明)的支持
不光是IE,Windows中的许多地方也使用了Trident的技术,包括从Windows 98到Windows Server 2003所有版本的Windows Explorer、Windows 98及其后续所有版本的视窗操作系统内的Windows Help程序。

此外,像RealPlayer、Windows Media Player、Windows Live Messenger、OutLook Express等等也使用了Trident技术。

也正因为如此,Trident 无法从Windows系统中彻彻底底地卸载掉,就算是彻底卸载了,Windows的许多功能也会出现问题。

使用Trident内核的网页浏览器有:AOL Explorer、Avant、Internet Explorer、Maxthon、Netscape Browser (v.8)、Sleipnir、TheWorld、腾迅TT等。

Q4:Gecko是什么内核?
A4:Gecko是套开放源代码的、以C++编写的网页排版引擎。

这软件原本是由网景通讯公司开发的,现在则由Mozilla基金会维护。

由于Gecko是开源的,所以使用Gecko的网页浏览器也很多,其中的领军人物便是Mozilla Firefox。

此外还有AOL for Mac OS X、Camino、Epiphany、Flock、Galeon、Netscape Browser (v.8)、Sleipnir、Maxthon等。

Q5:WebCore是什么内核?
A5:WebCore是苹果公司开发的排版引擎,它是在另外一个排版引擎"KHTML"的基础上而来的。

苹果电脑于2002年采纳了KHTML,作为开发Safari浏览器之用,并发布所修改的最新及过去版本源代码。

后来发表了开放源代码的WebCore及WebKit引擎,它们均是KHTML 的衍生产品。

使用WebCore的主要有Safari,此外还有OmniWeb、Shiira、Swift等。

Q6:Presto是什么内核?
Q6:Presto是一个由Opera Software开发的浏览器排版引擎,供Opera 7.0及以上使用。

此外,Macromedia Dreamweaver (MX版本及以上)和Adobe Creative Suite 2也使用了Presto的内核。

Q7:(强烈推荐)浏览器的内核和外壳有什么联系?
A7:刚才已经说到,内核负责处理网页的内容,而外壳负责提供给用户一些功能。

外壳的某些功能是需要联系到内核的,比如保存网页上的图片;而有些功能是不需要经过内核的,比如前进后退功能(当然,在载入了URL以后还是需要经过内核的)。

相信大家都使用过XP中控制面板里的"用户帐户"功能,这实际上可以给我们一个更加感性的认识。

用户帐户的操作界面实际上就是一个小型且功能单一的网页浏览器,它通过调用IE内核来显示主界面,而上方的"上一步""下一步"等按钮便是浏览器外壳所提供的功能。

说到这里,我们可以回看文章开头提到的一些网友的言论。

有些人认为,Maxthon 仅仅是附庸在IE之上的一个浏览器,根本不值得和IE、Firefox相提并论。

这其实并不妥当。

首先,Maxthon是支持Trident和Gecko双内核的(支持Gecko内核时需要单独安装Gecko 组件,而且目前的2系列貌似没有Gecko内核支持),所以它并不是"IE的附庸"。

此外,我们已经知道,浏览器分有内核和外壳两部分。

以这个眼光来看,Maxthon是Maxthon Shell+Trident(或Gecko),而Internet Explorer是IE Shell+Trident,Firefox是FF Shell+Gecko,这三款浏览器的地位实际上是一样的。

只不过IE Shell和Trident都是微软开发,而FF Shell和Gecko都是Mozilla基金会在维护。

同时,说IE是"IE内核",FF是"FF 内核"也是不准确的,毕竟弄IE Shell和Trident的肯定不是微软的同一个小组,而FF Shell 和Gecko肯定也不是Mozilla基金会的同一个小组在维护(更何况Gecko原来也不是Mozilla 开发的,原先Mozilla只是网景公司的非正式组织)。

当然不可否认,拥有了内核和外壳的微软和Mozilla,在开发浏览器的能力方面肯定是要高于Maxthon的,Maxthon不可能掌握到关键技术。

相关文档
最新文档