Question

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
Was it helpful?

Solution

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.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top