有时候发现页面中写了<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. java的继承和重写

    继承是面向对象最显著的一个特性.继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力.[1]  Java继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以 ...

  2. Get Intensity along a line based on OpenCV

    The interpolate function is used to get intensity of a point which is not on exactly a pixel. The co ...

  3. c#的dllimport使用方法详解,调试找不到dll的方法

    DllImport会按照顺序自动去寻找的地方: 1.exe所在目录 2.System32目录 3.环境变量目录所以只需要你把引用的DLL 拷贝到这三个目录下 就可以不用写路径了 或者可以这样serve ...

  4. MD5在java中的使用

    MD5是什么? MD5是message-digest algorithm 5(信息-摘要算法)的缩写,被广泛用于加密和解密技术上,它可以说是文件的"数字指纹".任何一个文件,无论是 ...

  5. U-boot中的FDT

    1. U-boot为了支持FDT,添加了新的代码:/libfdt目录fdt.h libfdt.h fdt_support.h fdt_support.c 2. http://blog.csdn.net ...

  6. asp.net LINQ连接数据库SQL执行数据的增加、修改、删除、查询操作

    查询数据库中的数据 using System; using System.Collections.Generic; using System.Linq; using System.Web; using ...

  7. asp.net Ajax刷新和无刷新的区别

    无刷新按钮btnShua 刷新按钮btnWu label控件和calendar控件在updatePanel中显示 两个button按钮在div中 <%@ Page Language=" ...

  8. js 什么是变量的提升?

  9. MonoDev 冷门而好用的功能

    [MonoDev 冷门而好用的功能] 1.Ctrl + B.跳转到对应的{}.(). 2.View -> Editor Layout -> 2 Columns.双屏工作. 3.Editr ...

  10. linux组、用户操作相关

    Linux删除用户组和用户时常用的一些命令和参数.1.从组中删除用户编辑/etc/group 找到GROUP1那一行,删除 A或者用命令gpasswd -d A GROUP2.建用户:adduser ...