双内核浏览器内核切换控制技术

科技动态 2018-06-19 阅读原文

双核浏览器支持使用两个或者以上的浏览器引擎来渲染网页,目前绝大多数国产浏览器均为双核甚至多核。

双核到底是什么内核

  • 基于Chromium的Blink/Webkit内核。一般在国产浏览器中被称为“极速内核/极速模式”。该内核随着该浏览器的更新而更新。
  • IE内核。一般在国产浏览器中被称为“IE内核/兼容模式”,是指调用Windows系统中内置的IE,并非该浏览器单独内置了一套IE,该内核随着Windows或者IE的更新而更新。

    唯一的例外情况是2012年360安全浏览器曾经推出内置IE的版本

IE内核的兼容模式

某些国产浏览器在“IE内核”下,可以切换其“兼容模式”,这并不是切换不同的IE内核版本,而是通过调用系统中IE内核的不同“文档模式”来实现的, 详细的信息请参阅这里
。这可能造成一些问题。比如A用户系统中安装了IE8,使用QQ浏览器的“兼容模式 - 7”;B用户系统中安装了IE11,也使用QQ浏览器的“兼容模式 - 7”,虽然都用的同一个浏览器且选择了同一个兼容模式,但是对于html5表单项等诸多DOM细节,有着很大的差异。

如何配置网站要使用的渲染引擎

在html的
标签中加入如下代码:



  
  
  ... 以下代码省略

这里我们一共添加了三条有关浏览器渲染方面的指令:


  • 中的 webkit
    指令,可以让QQ、傲游、360等浏览器默认使用Chromium内核渲染页面。
  • X-UA-Compatible
    中的 IE=edge
    指令,可以让IE或者调用IE内核的浏览器,使用标准模式渲染网页,注意这里和“Edge浏览器”无关,只是恰巧重名罢了。
  • X-UA-Compatible
    中的 chrome=1
    指令,可以让安装了 GCF插件
    的IE,在打开网页时使用Chromium内核渲染页面。

需要注意几个重要的神坑:


  • 标签必须出现在
    内的顶部,否则浏览器可能无法识别。

  • 文档类型声明必须写,否则各种浏览器内核均会以“IE5模式(又称作怪癖模式、quirks模式)”渲染网页。
  • 测试效果时,网站必须以域名访问,内网或者本地地址方式可能对部分浏览器无效。
  • 如果用户曾经自主选择过渲染引擎,浏览器将记住这个选择,它的优先级高于我们的指令。如果测试时不小心点了,在必要的情况下需要卸载浏览器并清空用户数据,然后重装。
  • 应该尽量保证整站的渲染内核一致,以便避免内核切换可能带来的cookie丢失问题。

通过js判断当前浏览器内核及文档模式


if (browser.MSIE) {
  alert("系统IE版本:" + browser.rv + "n文档模式:" + browser.MSIE);
} else if (browser.Edge) {
  alert("Edge内核浏览器");
} else if (browser.Webkit) {
  alert("Blink/Webkit内核的浏览器");
} else if (browser.Gecko) {
  alert("Gecko内核的浏览器");
}
稀土掘金

责编内容by:稀土掘金阅读原文】。感谢您的支持!

您可能感兴趣的

红芯并非个例,内核缺失也非“打破美国垄断”的主要障碍... 图片来源:视觉中国 号称打破美国垄断,自主创新内核的红芯浏览器被质疑使用了谷歌Chrome浏览器内核之后,红芯公司在两天内承认并致歉其自研产品宣传夸大之事实。沸沸扬扬的红芯事件引发了舆论媒体的广泛热议,其实在整个过程中最挑动国...
三星浏览器悄然扩张:支持全部安卓手机 增广告拦截... 腾讯科技讯 三星电子 是全世界最大的消费电子厂商,但是软件和互联网服务却是三星的巨大软肋,如今三星正在千方百计扩充软件业务,主打的一个明星产品就是三星浏览器。据外媒最新消息,三星浏览器日前作出重大升级,支持了几乎全部的安卓手机...
Azure – Azure Mask I really like to do presentations about the latest and greatest Microsoft Azure technology. One big security pro...
浅聊常见浏览器的兼容性问题 前言 浏览器的兼容性问题是个很庞大复杂的问题,很难找到四海皆准的办法,这里我们只是简单介绍下几种经典的处理兼容性问题的方法。 一、什么是浏览器的兼容性问题 浏览器兼容性问题又被称为网页兼容性或网站兼容性问题, 指网页在各...
Vivaldi 2.1 Adds AV1 Video Codec Support, Puts Mor... Vivaldi Technologies released today Vivaldi 2.1, the first point release to the 2.x series of the Chromium-based, cross-...