• 浏览器默认解析文档模式IE7


    背景:实习期间开发了一套页面,兼容到IE8+,可是在给产品体验时,他的QQ浏览器默认解析到了文档模式IE7,出现了页面的兼容性问题。
    问题排查:QQ浏览器目前有两个模式,极速模式和兼容模式,其中极速模式用的Chrome内核,兼容模式适合只支持IE的网站。首先查看了QQ浏览器的版本,发现是9.4.2,而且兼容模式下用的是IE9的内核,觉得很奇怪,页面在IE8及以上是兼容的啊,为什么会出现问题?后来F12开发者模式发现产品那边浏览器的文档模式自动解析到了IE7,因此出现了兼容性的问题,而且这个问题不易发现。
    解决方法:一般出现默认浏览器模式不对的根本原因都是某些标签不对劲,可以用删除一些标签来定位。

    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
    

    后来分析加上上面这一段就能解决,这一段的具体含义是:这是IE8的专用标记,用来指定IE8浏览器去模拟某个特定版本的IE浏览器的渲染方式,以此来解决部分兼容问题。上面是模拟chrome,通过查资料还知道并不是微软增强了IE,而是谷歌做了个外挂,即Google Chrome Frame(谷歌内嵌浏览器框架GCF),这个插件可以让用户的IE浏览器外不变,但用户在浏览网页时,实际上使用的是Google Chrome浏览器内核,而且支持IE6、7、8等多个版本的IE浏览器。

    还有模拟IE7的方式如下:

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

    1.页面头部加入meta标记,有两种写法:
    (1)如果加上如下meta标记,如果安装了GCF,则指定页面使用chrome内核来渲染。

    < meta http-equiv = "X-UA-Compatible" content = "chrome=1">

    (2)如果加上如下meta标记,达到的效果是如果安装了GCF,则使用GCF来渲染页面,如果未安装GCF,则使用最高版本的IE内核进行渲染。

    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
    

    2.通过修改HTTP头文件的方法来实现指定的页面使用GCF内核进行渲染。具体方法不再详述。

  • 相关阅读:
    Java并发编程实战 第11章 性能与可伸缩性
    Lock的await/singal 和 Object的wait/notify 的区别(转载)
    线程阻塞和挂起(网络收集)
    Java并发编程实战 第10章 避免活跃性危险
    Java并发编程实战 第8章 线程池的使用
    Java并发编程实战 第6章 任务并行 第7章 取消与关闭
    Java并发编程实战 第5章 构建基础模块
    Java编程思想 第21章 并发
    Java并发编程实战 第4章 对象的组合
    Java并发编程实战 第3章 对象的共享
  • 原文地址:https://www.cnblogs.com/10manongit/p/12611839.html
Copyright © 2020-2023  润新知