当前位置: 首页 > news >正文

“浏览器模式”和“文档模式”之间的区别

只有IE浏览器中才会有“浏览器模式”和“文档模式”,兼容性视图涉及两个重要的功能便是“浏览器模式【browser mode】”和“文档模式【document mode】”,在IE8/IE9中按F12键,打开“开发人员工具”,在菜单栏中可以看到“浏览器模式”和“文档模式”的切换菜单,其中可以选择切换到IE7/8等不同的网页模式。这个设置之后在js中可以通过navigator.userAgent获得浏览器的版本,这个一般情况是与浏览器模式对应的,也可以通过Document.documentMode获得浏览器的文档模式,这个一般是与文档模式相对应的。如果浏览器模式与文档模式不一致的时候,我们一般认为还是以文档模式为准【渲染页面】。


       那“浏览器模式”和“文档模式”之间有什么区别呢?


       “浏览器模式”用于切换IE针对该网页的默认文档模式、对不同版本浏览器的条件备注解析、发送给网站服务器的用户代理(User-Agent)字符串的值。网站可以根据浏览器返回的不同用户代理字符串判断浏览器的版本和安装的功能,这样就可以向不同的浏览器返回不同的页面内容。用开发人员工具切换浏览器模式时,文档模式也会对应改变。
 
        默认情况下,IE8的浏览器模式为IE8。用户可以通过单击地址栏旁边的兼容性视图按钮来手动切换到不同的浏览器模式。在IE8中,IE8兼容性视图会以IE7文档模式来显示网页,同时会向服务器发送IE7的用户代理字符串。
 
        “文档模式”用于指定IE的页面排版引擎(Trident)以哪个版本的方式来解析并渲染网页代码。切换文档模式会导致网页被刷新,但不会更改用户代理字符串中的版本号,也不会从服务器重新下载网页。切换浏览器模式的同时,浏览器也会自动切换到相应的文档模式。<meta http-equiv="x-ua-compatible" content="IE=7" />这个就是指定文档模式为IE7,Trident会按照IE7模式去渲染页面元素。

        另外还有不同的,就是IE=7和IE=EmulateIE7,这两个有什么不同呢?IE=7是页面按照IE7去渲染,不考虑DocType,而IE=EmulateIE7是以兼容IE7的模式去渲染,考虑DocType。当然还有更例外的情况,就是真正的IE7与IE9下添加了<meta http-equiv="x-ua-compatible" content="IE=7" />也有不同的情况,前几天做浏览器兼容的时候就碰到过,那个只能到IE7浏览器下去调试了,并且要分析代码的逻辑。

原文链接:http://blog.csdn.net/jcx5083761/article/details/8668597

转载于:https://www.cnblogs.com/zhangym118/p/8308779.html

相关文章:

  • ​VRRP 虚拟路由冗余协议(华为)
  • h5 meta 移动
  • JQ-weui中的日期选择控件关于时间段的设置!
  • Can't get Kerberos realm
  • 三张图彻底了解Java中字符串的不变性
  • 没有方法异常NoSuchMethodException
  • Java 实战开发之spring、logback配置及chrome开发神器(六)
  • Elasticsearch 5.5.1-head插件安装
  • 学习OpenGL ES之教你实现SkyBox
  • windows下安装rabbitmq以及php扩展amqp
  • python 反射
  • 01. Consul 入门
  • 程序员行话(黑话)汇总
  • ZJOI2006 书架
  • sdfasdf
  • __proto__ 和 prototype的关系
  • 【跃迁之路】【477天】刻意练习系列236(2018.05.28)
  • 【知识碎片】第三方登录弹窗效果
  • 230. Kth Smallest Element in a BST
  • JavaScript服务器推送技术之 WebSocket
  • unity如何实现一个固定宽度的orthagraphic相机
  • 动手做个聊天室,前端工程师百无聊赖的人生
  • 关于List、List?、ListObject的区别
  • 聊聊flink的BlobWriter
  • 前端自动化解决方案
  • 突破自己的技术思维
  • 以太坊客户端Geth命令参数详解
  • 曾刷新两项世界纪录,腾讯优图人脸检测算法 DSFD 正式开源 ...
  • ​LeetCode解法汇总2670. 找出不同元素数目差数组
  • ​你们这样子,耽误我的工作进度怎么办?
  • #控制台大学课堂点名问题_课堂随机点名
  • $(document).ready(function(){}), $().ready(function(){})和$(function(){})三者区别
  • %3cscript放入php,跟bWAPP学WEB安全(PHP代码)--XSS跨站脚本攻击
  • (C语言)strcpy与strcpy详解,与模拟实现
  • (附源码)springboot课程在线考试系统 毕业设计 655127
  • (十二)devops持续集成开发——jenkins的全局工具配置之sonar qube环境安装及配置
  • (转)eclipse内存溢出设置 -Xms212m -Xmx804m -XX:PermSize=250M -XX:MaxPermSize=356m
  • (转)关于多人操作数据的处理策略
  • *(长期更新)软考网络工程师学习笔记——Section 22 无线局域网
  • .NET 的程序集加载上下文
  • .net6使用Sejil可视化日志
  • .NET处理HTTP请求
  • @test注解_Spring 自定义注解你了解过吗?
  • [ CTF ] WriteUp- 2022年第三届“网鼎杯”网络安全大赛(白虎组)
  • [20170728]oracle保留字.txt
  • [⑧ADRV902x]: Digital Pre-Distortion (DPD)学习笔记
  • [AHOI2009]中国象棋 DP,递推,组合数
  • [Android]使用Android打包Unity工程
  • [Bugku]密码???[writeup]
  • [bzoj4010][HNOI2015]菜肴制作_贪心_拓扑排序
  • [CF703D]Mishka and Interesting sum/[BZOJ5476]位运算
  • [Design Pattern] 工厂方法模式
  • [DevOps云实践] 彻底删除AWS云资源
  • [i.MX]飞思卡尔IMX6处理器的GPIO-IOMUX_PAD说明
  • [JMS 3] ActiveMQ实现简单的helloworld