I have a legacy intranet web app that was written for IE7 and contains some poor CSS which makes it render incorrectly in IE8. Since the organization using it is now switching to IE8 I have enabled IE7 emulation by setting the X-UA-Compatible
HTTP header to EmulateIE7
. I have confirmed that the header is actually being sent by means of wget -S
.
For most users there is no problem, but some users report that one (rather important) iframe renders incorrectly. Although I cannot reproduce the problem as such I can achieve the same effect simply by using IE8 and Developer Tools and setting Document Mode to "Internet Explorer 8 Standards"
So, it appears that "something" is causing, for some users, one iframe to render with a document mode that is at odds with the one specified by the HTTP header.
So the question is: What might be happening in this page that would make IE8 switch out of the HTTP-header-specified document mode?
EDIT: Per the link provided by @Václav Dajbych, I find that according to the flowchart I should be getting IE7 Standards mode (as I expect.) The flow is: No, No, Yes, Yes, Yes. My doctype for the affected page is
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Check determining IE8's document mode. In the decision algorithm only meta tag and developer tools settings has higher priority than HTTP header. Are there proxy servers? I don't know what else could cause it.