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

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. android设置多个类似APP其中的一个为默认

    05-09 17:01:13.547: I/ActivityManager(3003): START u0 {act=android.intent.action.VIEW cat=[android.i ...

  2. ios initialize和init等方法

    在程序运行过程中,创建多个类对象,只会调用一次initialize  [ɪˈnɪʃəˌlaɪz] .而创建几个类对象就会调用几次init; 创建一个类aa,分别重写 initialize和init方法 ...

  3. BestCoder Round #87 1001

    GCD is Funny Accepts: 524 Submissions: 1147 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 655 ...

  4. Class类的理解

      在java中,每个类都有一个相应的Class类的对象,因为每个类编译完成后,在生成的.class文件中,就会产生一个Class对象.     在运行期间,如果我们要产生某个类的对象,jvm会检查类 ...

  5. Jade之属性

    属性 所有的html(5)标签在jade中均支持如下写法.jade中省去了html<>和标签的关闭等写法,并将属性写在括号之中.若存在多个属性,可以将其分为多行. jade: a(href ...

  6. Xcode7.2 导入XMPP框架错误解决

    1.修改Build Settings 在 Header Search Paths 中添加: "/usr/include/libxml2" 在Other Linker Flags 中 ...

  7. Android性能优化方法(八)

    Android SDK tools目录下提供一个观察布局的工具,层级观察器(Hierarchy Viewer).Hierarchy Viewer工具是一个非常好的布局优化工具,同时,你也可以通过它学习 ...

  8. JAVA学习博客----2015.4

    这是开始写的第一篇学习博客,记录一下每个月的学习进度和掌握程度,因为这是第一次写学习博客而且已经看编程方面的书已经有几个月了,所以这一篇学习博客可能看似有些乱或者篇幅太长.从十二月的<程序员教程 ...

  9. 解决Maven中OutOfMemory错误

    当Maven项目很大,或者你运行诸如 mvn site 这样的命令的时候,maven运行需要很大的内存,在默认配置下,就可能遇到java的堆溢出.如:   [INFO] Building jar: / ...

  10. 46 个非常有用的 PHP 代码片段

    在编写代码的时候有个神奇的工具总是好的!下面这里收集了 40+ PHP 代码片段,可以帮助你开发 PHP 项目. 这些 PHP 片段对于 PHP 初学者也非常有帮助,非常容易学习,让我们开始学习吧- ...