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

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. (Python)元祖、字典

    本节将学习元组.字典,以及其他涉及到的相关知识 1.元组 (tuple) 元组由圆括号括起来,元素之间用逗号相隔.元组是不可变对象,一旦定义了,就不能更改 >>> t=('a','b ...

  2. CoreLocation框架的使用---定位,求两地距离

    前言: 在iOS开发中,有关导航,周边的开发,必须基于2个框架: Map Kit :用于地图展示 Core Location :用于地理定位   用户隐私的保护 从iOS 6开始,苹果在保护用户隐私方 ...

  3. LeetCode(84) Largest Rectangle in Histogram

    题目 Given n non-negative integers representing the histogram’s bar height where the width of each bar ...

  4. js学习-自定义函数、对象的字面量、json对象学习小结

    一.自定义对象的构造: var student=new Object(); //object是顶级对象,使用构造函数的方法创建一个对象,此处的意思是创建了一个学生的空对象 student.name=& ...

  5. MySQL日期时间函数大全(转)

    MySQL日期时间函数大全 DAYOFWEEK(date)  返回日期date是星期几(1=星期天,2=星期一,……7=星期六,ODBC标准)mysql> select DAYOFWEEK('1 ...

  6. 横竖屏切换时Activity的生命周期

    设置横竖屏切换时Activity生命周期的属性设置,在清单文件中的Activity节点中设置.根据具体需求设置: 1.不设置Activity的android:configChanges时,切屏会重新调 ...

  7. [数据结构] N皇后问题

    代码: #include <iostream> #include <string.h> #include <algorithm> using namespace s ...

  8. Dynamic CRM 2013学习笔记(一)插件输入实体参数解析

      1. 问题描述 最近新建了一个post事件的插件,传入的参数处理如下: 1: if (context.InputParameters.Contains("Target") &a ...

  9. C#设计模式(4)——抽象工厂模式

    一.引言 在上一专题中介绍了工厂方法模式,工厂方法模式是为了克服简单工厂模式的缺点而设计出来的,简单工厂模式的工厂类随着产品类的增加需要增加额外的代码),而工厂方法模式每个具体工厂类只完成单个实例的创 ...

  10. C# 中 async/await 调用传统 Begin/End 异步方法

    最近在改进园子的图片上传程序,希望实现用户上传图片时同时将图片文件保存在三个地方:1)服务器本地硬盘:2)又拍云:3)阿里云OSS.并且在保存时使用异步操作. 对于异步保存到本地硬盘,只需用 Stea ...