Force IE8 *not* to use Compatibility View

前端 未结 4 2174
耶瑟儿~
耶瑟儿~ 2020-12-08 02:18

Just updated my site to newer, much more standards compliant design. My previous design was so rubbish that I had to use the IE=EmulateIE tag to force IE7 emulation.

<
相关标签:
4条回答
  • 2020-12-08 02:25

    In the absence of an X-UA-Compatible http-equiv header, the compatibility mode is determined by the !DOCTYPE (or the absence of a !DOCTYPE, as the case may be). For a chart of which !DOCTYPE gives you which mode (in various browsers) see here:

    http://hsivonen.iki.fi/doctype/ (You'll need to scroll down toward the bottom of the page.)

    You can override this behavior by using a meta element to specify an X-UA-Compatible http-equiv header, like so: <meta http-equiv="X-UA-Compatible" content="IE=edge" >

    (Note: IE=edge goes with the highest available version -- currently IE8 as of this posting -- or one can explicitly specify IE8.)

    For more information, see here: http://msdn.microsoft.com/en-us/library/cc288325(VS.85).aspx

    0 讨论(0)
  • 2020-12-08 02:26

    I know this post is old, but I find adding this to your .htaccess file:

    Header set X-UA-Compatible "IE=edge"
    

    ...to be more manageable than adding it to pages.

    Hope that helps someone.

    0 讨论(0)
  • 2020-12-08 02:31

    You can also set the X-UA-Compatible header in Apache, via the config or an .htaccess file using the code below. Credit goes to 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>
    
    0 讨论(0)
  • 2020-12-08 02:40

    IE will never cache the X-UA-Compatibility setting on its own. The only other possibility is that users of the site pressed the 'Compatibility View' button on the address bar before you had the X-UA-Compatbile meta tag set. Then your site's domain will appear in a list stored locally on the client's machine. I wrote a blog post about how site owners can prune their domains from that locally stored list if/when a site gets updated to be IE8 compatible. http://blogs.msdn.com/ie/archive/2009/07/01/ie-compatibility-list-pruning.aspx

    0 讨论(0)
提交回复
热议问题