有时候发现页面中写了<meta http-equiv="X-UA-Compatible" content="IE=8" />,但是文档模式依旧没改变;

原因:

1、DOCTYPE声明

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

(<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">这种声明发现不好使,估计版本过低了)

2、为防止失效,X-UA-Compatible最好紧跟在head之后,之前不要有任何不标准的标签。

(X-UA-compatible 标头不区分大小写;不过,它必须显示在网页中除 title 元素和其他 meta 元素以外的所有其他元素之前的标中)

保险起见最好是这种开头:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html> 
  <head>  
    <meta http-equiv="X-UA-Compatible" content="IE=8" />

3、最近试验,发现更有效的方法,直接将X-UA-Compatible申明在文件最开始部分(1、2都可以忽略了 O(∩_∩)O)

  <meta http-equiv="X-UA-Compatible" content="IE=8" />
  <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  <html> 
    <head>

其他方案:

https://msdn.microsoft.com/library/cc817573.aspx

在 Apache 上实现 META 切换

注意 :本文档是预备文档,随时可能变更。

Windows Internet Explorer 8 引入了文本兼容性模式,该模式允许 Web 开发人员将浏览器设置为以与旧版本相同的方式呈现它们的页面。可以根据不同的页面或不同的站点指定兼容性模式。

本文档介绍了如何通过在 Apache 中使用自定义标头,对每个站点实现 Windows Internet Explorer 8 支持的一种很常见的文本兼容性模式 — EmulateIE7。

有关 Windows Internet Explorer 8 支持的不同兼容性模式以及如何根据不同页面实现兼容性模式的详细信息,请参阅未来兼容性中的 META 标记和锁定

指定自定义 HTTP 响应标头

使用 Apache Web 服务器为站点定义自定义标头即可为您的网站指定文本模式。以下自定义 HTTP 标头可强制 Windows Internet Explorer 8 以类似 Windows Internet Explorer 7 呈现网页的方式呈现网页。

X-UA-Compatible:IE=EmulateIE7:

Apache 2.2

若要使用 Apache 2.2 为您的站点指定 HTTP 响应标头,您可使用 mod_headers 模块提供的 Header 指令。Header 指令几乎可出现在各种配置文件的任意位置,但主配置文件是 httpd.conf。可通过在配置部分将它们括起来以限制其范围,如<Location><Directory><Files> 和 <VirtualHost>

在 httpd.conf 中添加该指令后,由您的服务器发送的属于该范围内的所有页面都将包含 X-UA-Compatible HTTP 响应标头。这将强制 Windows Internet Explorer 8 使用 EmulateIE7 模式来呈现您的页面。

首先,需要确保服务器初始化期间加载了 headers_module。在 httpd.conf 文件中,通过删除 headers_module 的 LoadModule 行开始处的“#”,取消对该行的注释。您可以使用文本编辑器(如 Notepad)来执行此操作。完成后,该行应如下所示。

LoadModule headers_module modules/mod_headers.so

若要将该标头添加到服务器上的所有页面,请将以下行添加到 httpd.conf 文件的 LoadModule 行之后。

Header set X-UA-Compatible “IE=EmulateIE7”

一般不需要将标头应用到服务器上的每个页面。<Location> 指令可用于更改 Web 空间中的内容配置,以文本根目录为基点。例如,以下配置可将 HTTP 标头应用到任何以 /store 开头的 URL 路径。它将应用于针对 http://yoursite.com/store 和 http://yoursite.com/store/file.html 的请求以及任何以 /store 字符串开头的其他请求。

<Location /store>
Header set X-UA-Compatible “IE=EmulateIE7”
</Location> 

页面覆盖

如果使用 Web 服务器指定了默认文本兼容性模式,则可通过在特定的网页中指定其他文本兼容性模式来覆盖该设置。在该网页中指定的模式优先于由服务器指定的模式。

有关如何使用指令配置选项的更多深入信息,请参阅 <Location><Directory><Files> 和 <VirtualHost>。有关 Header 指令以及如何在配置部分使用该指令的详细信息,请参阅下列文档。

旧版本

下列链接提供了有关如何使用旧版本的 Apache Web 服务器将自定义 HTTP 响应标头添加到站点的详细信息。

自定义 HTTP 响应标头和其他 Web 服务器

有关 Windows Internet Explorer 8 文本兼容性模式和 Internet Information Services (IIS) Web 服务器的详细信息,请参阅在 IIS 上实现 META 切换

X-UA-Compatible失效问题的更多相关文章

  1. HTML Meta中添加X-UA-Compatible和IE=Edge,chrome=1有什么作用

    HTML Meta中添加X-UA-Compatible和IE=Edge,chrome=1有什么作用? X-UA-Compatible是自从IE8新加的一个设置,对于IE8以下的浏览器是不识别的. 通过 ...

  2. jQuery1.4源码解读

    来吧, 慢慢折腾吧 总结一下: jq1.4挺简单的, 正则写的不多, 看的都懂, 多写一些 三目写法到底要不要 特殊的地方的注释一定要有 /*! * jQuery JavaScript Library ...

  3. HTML Meta标签详解

    HTML Meta中添加X-UA-Compatible和IE=Edge,chrome=1有什么作用?主题 HTML X-UA-Compatible是自从IE8新加的一个设置,对于IE8以下的浏览器是不 ...

  4. 关于IE11

    最近,一个开发代号为Windows Blue的Windows操作系统泄漏到了互联网上,该操作系统的内置浏览器为IE11,本文将介绍一下这个泄漏版的IE11中有哪些关键的新变化和新特性. 预先声明: 本 ...

  5. YUI的UA检测

    YUI.UA是针对javascript的宿主环境检测的一个检测对象,返回的是一系统关于当前宿主的信息 1.对象相关信息列表及userAgent 检测对象o = { ie: 0, //ie Mozill ...

  6. 浏览器UA汇总

    UA  -- uesr-agent -- 用户代理,是服务器判断请求的种类,比如:使用PC和手机访问一个网站,呈现的画面是不一样的. 原理就是设备的用户代理不同 1 主要浏览器 safari 5.1 ...

  7. UA大全

    ####PC端UA #Opera "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Ch ...

  8. Python爬虫教程-10-UserAgent和常见浏览器UA值

    Python爬虫教程-10-UserAgent和常见浏览器UA值 有时候使用爬虫会被网站封了IP,所以需要去模拟浏览器,隐藏用户身份, UserAgent 包含浏览器信息,用户身份,设备系统信息 Us ...

  9. 各种浏览器UA值

    UA  User-Agent:用户代理,它是一个特殊字符串头,使得服务器能够识别客户使用的操作系统及版本.CPU 类型.浏览器及版本.浏览器引擎.浏览器语言.浏览器插件等. 标准格式为: 浏览器标识 ...

  10. UA

    我们可以通过userAgent来判断,比如检测某些关键字,例如:AppleWebKit*****Mobile或AppleWebKit,需要注意的是有些浏览器的userAgent中并不包含AppleWe ...

随机推荐

  1. $(document).ready()方法和window.onload区别

    事件: javascript 和 HTML之间的交互式通过用户和浏览器操作页面时引发的事件来处理的.当文档或者它的某些元素发生某些变化和操作时,浏览器会自动生成一个事件:例如:当用户单击某个按钮时,也 ...

  2. OpenVZ VPS加速方案–Final Speed

    body,td { font-family: 微软雅黑; font-size: 10pt }   OpenVZ VPS加速方案–Final Speed OpenVZ VPS加速方案–Final Spe ...

  3. jenkins调度selenium脚本不打开浏览器解决办法

    原文地址: http://blog.csdn.net/achang21/article/details/45096003 The web browser doesn't show while run ...

  4. SQL Server 的数据库简单操作

    --创建数据库--create database 数据库名称[on [primary](name='主数据逻辑文件名',filename='完整的路径.文件名和拓展名'[,size=文件大小][,fi ...

  5. 安装Maven

    下载进入官网下载页面:http://maven.apache.org/download.html我用的是windows,下载apache-maven-3.2.5-bin.zip: Maven 3.2. ...

  6. 重走java--Step 2

    java基础语法(一) 1.java基本数据类型 byte:1个字节,8bit有符号数据类型boolean:2个字节,16bit布尔数值char:2个字节,16bit的Unicode字符类型int:4 ...

  7. Spring里PropertyPlaceholderConfigurer类的使用

    1. PropertyPlaceholderConfigurer是个bean工厂后置处理器的实现,也就是 BeanFactoryPostProcessor接口的一个实现.PropertyPlaceho ...

  8. JavaScript 正则表达式的应用实例

    都是自己实例记录,不断更新中.... 1.字符串找出所有匹配的邮箱并替换 <html> <body> <script type="text/javascript ...

  9. VC++ 截屏代码,并保存为想要的格式(BMP,JPG,PNG,GIF等格式)

    void CCaptionScreenDlg::Screen(char* filename) { HDC hdcSrc = ::GetDC(NULL); int nBitPerPixel = GetD ...

  10. FastReport 中添加二维码功能.(Delphi)

    http://www.cnblogs.com/fancycloud/archive/2011/07/24/2115240.html FastReport 中添加二维码功能.(Delphi)   在实际 ...