Domanda

I've got a Nokia Lumia 920, running Windows Phone 8 and IE 10. On my site, I had, at one point in time, the following code:

<iframe src="blank.html" frameborder="0"></iframe>

This was causing validation issues, and was forcing IE 10 on the phone to go into IE 7 compatibility mode. To fix this, I add some conditional comments to only load this version is IE 7 & 8 (where the frameborder attribute is needed), and load an <iframe seamless> in the other browsers.

I fixed this on my staging server, reloaded, and the user agent string updated to IE 10 mode. However, I pushed the code live, the same HTML is being served (from the same server setup) and on reloading the phone, the user agent still reports IE 7 compatibility mode.

How can I force IE 10 out of compatibility view on this other server?

A few notes:

  • Clearing cache didn't help
  • Nor did restarting
  • I know about the IE=Edge meta, but a valid page is important in my case, so I don't want to use it
  • Page code is extremely simple: HTML5 doctype, utf-8 <meta>, <title>, a few <script> tags, a <style> tag, and an <iframe>
  • Both page and <iframe> contents validate as HTML5
È stato utile?

Soluzione

If you are on an Intranet site, IE will, by default, fallback to compatibility mode. The only way to fix this is to use something like the <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> tag or to serve that header via the server. To maintain a valid HTML5 site, using the server to send the content header is the preferred way to do it.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top