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

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. 【洛谷 P1352】没有上司的舞会

    树形dp #include<cstdio> #include<cstring> #include<algorithm> using namespace std; ; ...

  2. Git命令行初体验

    1. git 版本控制系统 ==============运行环境======== 系统:windows git : Git-1.7.3.1-preview20101002.rar  下载地址:http ...

  3. 并查集 Union-Find

    并查集能做什么? 1.连接两个对象; 2.查询两个对象是否在一个集合中,或者说两个对象是否是连接在一起的. 并查集有什么应用? 1. Percolation问题. 2. 无向图连通子图个数 3. 最近 ...

  4. 【DLL测试】为DLL项目建立测试

    本文将创建一个简单的动态链接库,并编写一个控制台应用程序使用该动态链接库,该动态链接库为“JAVA调用动态链接库DLL之JNative学习”中使用的DLL, 只是项目及文件名称不同. 创建动态链接库项 ...

  5. 十六进制转十进制函数_C编程

    /**************************十六进制转十进制函数**************************//*函数原型:uint htd(uint a)/*函数功能:十六进制转十 ...

  6. 从0开始学Swift笔记整理(一)

    Swift 是一种适用于 iOS 和 OS X 应用的全新编程语言,它建立在最好的 C 和 Objective-C 语言之上,并且没有 C 语言的兼容性限制.Swift 采用安全的编程模式,增加了现代 ...

  7. javascript --- 继承初探七日谈 (一)

    原型链是javascript实现继承的默认方式.下面来一个例子看一下她的魔法吧: 首先定义三个构造函数: function her(){ this.name = 'Anna'; this.toStri ...

  8. 用c#开发微信 (7) 微渠道 - 推广渠道管理系统 2 业务逻辑实现

    我们可以使用微信的“生成带参数二维码接口”和 “用户管理接口”,来实现生成能标识不同推广渠道的二维码,记录分配给不同推广渠道二维码被扫描的信息.这样就可以统计和分析不同推广渠道的推广效果. 上次介绍了 ...

  9. 六天玩转javascript:javascript变量与表达式(1)

    说明 本系列属于进阶系列,语常用语法等不在本系列介绍范围之内. 在我刚开始做一个程序员并开发项目的时候,我总是喜欢使用开发语言的各种特性,每次m$发布新版C#的时候我总是会把开发者预览版下好,亲自体验 ...

  10. Wix 安装部署(五) Bootstrapper 捆绑安装

    Wix的xml配置确实很费劲,忍不住有点像吐槽一下,前四篇完成的功能在Windows Installer中通过配置能很快的弄出来.可惜有很多加了锁的功能在InstallShield Limited E ...