有时候发现页面中写了<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. Linux 之集群 LVS

    查看系统是否支持IPVS功能 [root@nginx ~]# grep -i 'ipvs' /boot/config-2.6.18-308.el5 # IPVS transport protocol ...

  2. ios LoadView 方法

    当ViewController中的View不通过nib文件而是自己来创建的时候需要重载LoadView方法.否则不需要重载LoadView方法.

  3. Loadrunner开发测试脚本

    Loadrunner开发测试脚本 开发测试脚本可以通过录制,也可以手动开发,建议能录制的尽量录制,省时省力,不能录制的只能费力自己开发了,具体看项目情况来决定. 使用Loadrunner开发脚本过程中 ...

  4. 使用scala开发spark入门总结

    使用scala开发spark入门总结 一.spark简单介绍 关于spark的介绍网上有很多,可以自行百度和google,这里只做简单介绍.推荐简单介绍连接:http://blog.jobbole.c ...

  5. sublime 关闭自动更新

    第一步: 点击菜单栏“Preferences”=> "Settings-User" 进入个人参数设置页面: 第二步: 在大括号内插入如下代码:"update_che ...

  6. jquery 之选择器

    一.基本: HTML代码: <p class="p1">p段落</p> <h class="h1">h标签</h> ...

  7. 在Action 中访问web资源

    1.什么是web资源: HttpServletRequest,HttpSession,ServletContext等原生的Servlet API. 2.为什么要访问web资源? B/S应用的Contr ...

  8. 事件:卸载事件(onunload)

    这是几点应卸载事件的说明 ①目前试了Firefox.Google Chrome.IE三个浏览器,该事件只对IE起作用. ②onunload事件对于刷新页面和超链接跳转其他页面情况有效,对于关闭页面无效 ...

  9. WPF触发器的使用

    WPF中定义了五个触发器类:Trigger.MultiTrigger.DataTrigger.multiDataTrigger.EventTrigger.下面我来介绍一下怎么使用这几个触发器的使用方法 ...

  10. oracle 字符转字符串函数

    select cast('addd' as varchar(4)) from dual;