强制IE8*不*使用兼容性视图

Jac*_*erd 55 caching cross-browser internet-explorer-8

刚刚将我的网站更新为更新,更符合标准的设计.我以前的设计是如此垃圾,我不得不使用IE = EmulateIE标签来强制IE7仿真.

不幸的是,我相信浏览器可能会从以前的访问中缓存此设置,导致我的新网站(没有按下按钮看起来很棒)再次看起来垃圾...

是否有任何相反的标签,我可以使用,或一些魔术,我可以让PHP做HTTP标头禁用此设置的缓存?

Tim*_*man 51

在没有兼容X-UA的http-equiv报头的情况下,兼容模式由!DOCTYPE(或!DOCTYPE根据具体情况而定)的缺失确定.对于图表,!DOCTYPE您可以在此处看到哪种模式(在各种浏览器中):

http://hsivonen.iki.fi/doctype/ (您需要向下滚动到页面底部.)

您可以通过使用meta元素指定兼容X-UA的http-equiv标头来覆盖此行为,如下所示: <meta http-equiv="X-UA-Compatible" content="IE=edge" >

(注意:IE = edge具有最高可用版本 - 当前IE8的发布 - 或者可以明确指定IE8.)

有关详细信息,请参阅此处:http: //msdn.microsoft.com/en-us/library/cc288325(VS.85).aspx

  • 值得注意的是,META标签必须位于HEAD部分中的任何SCRIPT标签之前. (12认同)
  • 而不是使用IE版本的aribirarity大号,最好使用受支持的关键字"edge"来强制使用最新版本.<meta http-equiv ="X-UA-Compatible"content ="IE = edge"> (7认同)

ton*_*lex 8

您还可以使用以下代码通过config或.htaccess文件在Apache中设置X-UA-Compatible标头.信用转到html5boilerplate.com

# ----------------------------------------------------------------------
# Better website experience for IE users
# ----------------------------------------------------------------------

# Force the latest IE version, in various cases when it may fall back to IE7 mode
# github.com/rails/rails/commit/123eb25#commitcomment-118920
# Use ChromeFrame if it's installed for a better experience for the poor IE folk

<IfModule mod_setenvif.c>
  <IfModule mod_headers.c>
    BrowserMatch MSIE ie
    Header set X-UA-Compatible "IE=Edge,chrome=1" env=ie
  </IfModule>
</IfModule>

<IfModule mod_headers.c>
#
# Because X-UA-Compatible isn't sent to non-IE (to save header bytes), we need to inform proxies that content changes based on UA
#
  Header append Vary User-Agent
# Cache control is set only if mod_headers is enabled, so that's unncessary to declare
</IfModule>
Run Code Online (Sandbox Code Playgroud)


Mic*_*nny 5

IE永远不会自行缓存X-UA兼容性设置.唯一的另一种可能性是,在您设置X-UA-Compatbile元标记之前,网站的用户按下地址栏上的"兼容性视图"按钮.然后,您网站的域名将显示在客户端计算机上本地存储的列表中.我写了一篇博客文章,说明如果/当网站更新为IE8兼容时,网站所有者如何从本地存储列表中删除其域名. http://blogs.msdn.com/ie/archive/2009/07/01/ie-compatibility-list-pruning.aspx


jas*_*rty 5

我知道这篇文章很老,但我发现将它添加到你的.htaccess文件中:

Header set X-UA-Compatible "IE=edge"
Run Code Online (Sandbox Code Playgroud)

...比将其添加到页面更易于管理.

希望能帮助别人.