浏览器模式与文档模式概念是怎么来的?

1.浏览器模式与文档模式概念起源

为了解决兼容性的问题,在IE浏览器(IE8, IE9, IE10)中,引入了浏览器模式和文档模式两个概念,浏览网页时可以通过按F12键看到这两种模式。

2.浏览器模式的主要作用是为兼容较早版本的IE,它会控制浏览器发出的UserAgent,表示以哪个版本的浏览器发出请求,以此来允许为某个特定IE版本设计的代码正确执行(举例来说:有些代码真是判断ie版本的,还有css里也有判断ie版本的)。

3.文档模式的主要作用是影响浏览器显示网页HTML的方式,在接到返回的HTML文件后,决定以哪个IE版本的文档模式解析该页面(举例来说:JS脚本就是依赖文档模式,IE9的JS变化就需要IE9文档模式来支持)。

怎么设置文档模式

•1.使用 X-UA-Compatible 标头可指定页面支持的 IE 版本。

•2.使用 document.documentMode 可确定网页的文档模式。
•3.代码示例:
    <html>
<head>
<title>abc</title>
<META http-equiv="X-UA-Compatible" content="IE=9" > </META>
<script type="text/javascript">
function abc() { alert(document.documentMode); }
</script>
</head>
<body onload="abc()"></body>
</html>

IE11 Document mode changes

•Windows Internet Explorer 8 introduced document modes to help you transition from features supported by earlier versions of the browser to those specified by modern standards and other browsers. Subsequent releases of Windows Internet Explorer continued this transition by introducing new document modes that emulated features supported by earlier versions while introducing support for features defined by industry standards.
•While many web sites were updated to provide richer experiences to other browsers, some continued to use the presence of legacy feature support to provide legacy experiences to Internet Explorer, even though recent versions of the browser supported the experiences presented to other browsers.
•Starting with IE11, edge mode is the preferred document mode; it represents the highest support for modern standards available to the browser.
•Use the HTML5 document type declaration to enable edge mode: <!doctype html>
•Edge mode was introduced in Internet Explorer 8 and has been available in each subsequent release. Note that the features supported by edge mode are limited to those supported by the specific version of the browser rendering the content.
•Starting with IE11, document modes are deprecated and should no longer be used, except on a temporary basis. Make sure to update sites that rely on legacy features and document modes to reflect modern standards.
•If you must target a specific document mode so that your site functions while you rework it to support modern standards and features, be aware that you're using a transitional feature, one that may not be available in future versions.
•If you currently use the x-ua-compatible header to target a legacy document mode, it's possible your site won't reflect the best experience available with IE11.

文档模式以及与IE11 的兼容性

•IE 11 中的兼容性改进可让较早版本的网站以最新的标准模式运行,默认情况下,不需要模拟以前的浏览器行为。由于较早版本的网站现在能够正常运行,因此我们已决定 IE 10 文档模式将是最后一个新文档模式。而开发人员需要转变为使用 IE 11 中的 Edge 模式。也就是说,IE已经完成了标准化过渡,因此老模式就退出历史舞台了,从IE11到以后的IE12, IE13…,边缘模式成为首选文档模式,都要用Edge了。它代表可供浏览器使用的现行标准的最高支持。

•如果决定仍然需要仿真某个以前的浏览器环境 IE 10 或更早版本,则可以更改服务器配置,将 X-UA-Compatible 元标记添加到 HTTP 标头。更改此内容值可让您的网站按所选的 IE 版本进行显示。例如,如果希望内容像在 IE 10 中显示的那样,可在 X-UA-Compatible 元数据中指定值 IE=10。
 

X-UA-Compatible支持的值

内容值

含义

IE=5

使用   Internet   Explorer 5 Quirks 模式呈现内容。

IE=7

使用   Internet   Explorer 7 标准模式呈现内容。

IE=8

使用   Internet   Explorer 8 标准模式呈现内容。

IE=9

使用   Internet Explorer 9   标准模式呈现内容。

IE=10

使用   Internet   Explorer 10 标准模式呈现内容。

IE=Edge

使用最新模式呈现内容。建议所有网站都采用此模式。

注意:不要指定未来的内容值,如 IE=11 和更高版本。而应使用 IE=Edge 来获取最新模式。也就是说,IE11时,我们要这样用:

<META http-equiv="X-UA-Compatible" content="IE=Edge" > </META>

示例总结

•<!doctype html>是用来启用Edge模式的一个方法,但是<!doctype html>这种方法,在WebBrowser应用中不起作用,还是被认为是Quirks模式 。

•X-UA-Compatible也是用来启用Edge模式的一个方法,X-UA-Compatible这种方法,在浏览器及WebBrowser中都起作用,都有效。

•虽然写IE=11也有同样的效果,鉴于微软不再建议这样写,所以我们应用标准的方法:<META http-equiv="X-UA-Compatible" content="IE=Edge" > </META>
 
本机IE11下使用WebBrower应用时的建议做法
•不使用企业模式,它在BancsLink这种WebBrowser应用中不可用,它在不使用网站而是直接打开磁盘上HTM页面浏览时也不起作用。具体见上一帖:IE11企业模式介绍及可用性评估
•对于不使用IE11标准功能的HTM页面,只要保持旧版本不做任何修改,文档模式就会被认为是老版本的Quirks模式(版本号等于5,实际兼容IE5.5及IE6等),也就是说,不改就是用旧版本。
•对于要使用IE11标准功能HTM页面,使用设置X-UA-Compatible的方式,但不要再指定版本号,如 IE=11 和更高版本,而使用 IE=Edge 来获取最新模式。也就是要这样用:
<META http-equiv="X-UA-Compatible" content="IE=Edge" > </META>
 
PDF下载:pdf
 

IE11新文档模式Edge介绍与评估,及在WebBrowser应用中的使用。的更多相关文章

  1. IE11仿真文档模式默认IE5 IE7的调整办法

    <meta http-equiv="X-UA-Compatible" content="IE=edge">

  2. <JavaScript>“浏览器模式”和“文档模式”之间的区别

    只有IE浏览器中才会有“浏览器模式”和“文档模式”,兼容性视图涉及两个重要的功能便是“浏览器模式[browser mode]”和“文档模式[document mode]”,在IE8/IE9中按F12键 ...

  3. 全栈JavaScript之路( 二十二 )IE 专有扩展——文档模式

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/hatmore/article/details/37611911 ie8 引入了一个新的概念.&quo ...

  4. DOCTYPE是什么鬼?文档模式又是什么鬼?

    !DOCTYPE !DOCTYPE是什么: 在所有 HTML 文档中规定 DOCTYPE 是非常重要的,这样浏览器就能了解预期的文档类型, 告诉浏览器要通过哪一种规范(文档类型定义 DTD)解析文档( ...

  5. 【IE】浏览器模式与文档模式 及其开发中处理方式

    原文:http://blog.csdn.net/neo_liu0000/article/details/7589731 什么是浏览器模式和文本模式? 经常使用IE开发者工具的同学,肯定见过浏览器模式和 ...

  6. 360浏览器遇到文档模式是IE7的解决办法

    这段时间遇到了360浏览器在加载java项目时,默认的文档模式是IE7,使得网页加载下拉框出现问题. 解决的方法是: 在显示的jsp页面加上 <meta http-equiv="X-U ...

  7. <meta>指定浏览器模式(browser mode)或文档模式(document mode)无效

    这是前两天解决的一个故障,准确的说它不是一个SharePoint的问题,而是IE8浏览器或者说是HTML代码的问题,但我感觉还是挺有意思的,所以贴上来分享一下. 基础知识 简单的讲,就是IE浏览器中有 ...

  8. 在代码中设置IE9的默认文档模式

    要在旧系统中加一个jquery插件,本地demo测试没问题,部署到服务器后却报错.使用的是IE9浏览器,打开F12调试台,发现默认的文档模式是IE7,调成IE9后,报错消失.可以确认是该插件不兼容IE ...

  9. JS魔法堂:精确判断IE的文档模式by特征嗅探

    一.前言 苦逼的前端攻城狮都深受浏览器兼容之苦,再完成每一项功能前都要左顾右盼,生怕浏览器不支持某个API,生怕原生API内含臭虫因此判断浏览器类型和版本号成了不可绕过的一道关卡,而特征嗅探是继浏览器 ...

随机推荐

  1. Hadoop中HDFS的管理

    本文讲述怎么在Linux Shell中对HDFS进行操作. 三种命令格式: hadoop fs适用于任何不同的文件系统,比如本地文件系统和HDFS文件系统 hadoop dfs只能适用于HDFS文件系 ...

  2. Linux环境中DISPLAY环境变量的解释及设置

    在Linux/Unix类操作系统上的GUI应用程序使用X Window系统(X Window System),它旨在允许多个用户使用窗口化的应用程序通过网络访问计算机. DISPLAY环境变量用来设置 ...

  3. 从0开始学Swift笔记整理(四)

    这是跟在上一篇博文后续内容: --重写方法 重写实例方法 在子类中重写从父类继承来的实例方法和静态方法.先介绍实例方法的重写. 下面看一个示例: class Person {        var n ...

  4. 探究Repository模式的两种写法与疑惑

    现如今DDD越来越流行,园子里漫天都是介绍关于它的文章.说到DDD就不能不提Repository模式了,有的地方也叫它仓储模式. 很多时候我们对Repository都还停留在Copy然后使用的阶段, ...

  5. SQL Server 内存数据库原理解析

    前言 关系型数据库发展至今,细节上以做足文章,在寻求自身突破发展的过程中,内存与分布式数据库是当下最流行的主题,这与性能及扩展性在大数据时代的需求交相辉映.SQL Server作为传统的数据库也在最新 ...

  6. SQL语句汇总(终篇)—— 表联接与联接查询

    上一篇博文说到相关子查询效率低下,那我们怎么能将不同表的信息一起查询出来呢?这就需要用到表联接. 和之前的UNION组合查询不同,UNION是将不同的表组合起来,也就是纵向联接,说白了就是竖着拼起来. ...

  7. Javascript 异步加载详解(转)

    本文总结一下浏览器在 javascript 的加载方式. 关键词:异步加载(async loading),延迟加载(lazy loading),延迟执行(lazy execution),async 属 ...

  8. Server Develop (七) Linux 守护进程

    守护进程 守护进程,也就是通常说的Daemon进程,是Linux中的后台服务进程.它是一个生存期较长的进程,通常独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件.守护进程常常在系统引导装 ...

  9. Nginx学习笔记(一) Nginx架构

    Nginx架构 Nginx全程是什么? Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器. ...

  10. [WinAPI] API 14 [获取、设置文件属性和时间]

    >_< 为了获取文件属性,用户可以使用GetFileAttributes与GetFileAttributesEx函数. GetFileAttributesEx函数除了返回文件属性外,还返回 ...