Event 1049 - Standards Mode
To adhere to the latest Web standards, Windows Internet Explorer 8 includes an update to the Standards Mode engine. The Standards Mode engine is enabled when a Standards Mode !DOCTYPE declaration is found in the HTML source of a webpage. In Standards Mode, many components that affect the layout and rendering of webpages have been changed, including HTML and Cascading Style Sheets (CSS) interpretation, Document Object Model (DOM) APIs, Microsoft JScript performance and security, and accessibility APIs.
Each major release of Windows Internet Explorer adds features designed to make the browser easier to use, to increase security, and to more closely support industry standards. As Internet Explorer gains features, there is a risk that older websites may not display correctly.
To minimize this risk, Internet Explorer 8 supports a number of document compatibility modes that enable different features and can affect the way content is displayed.
- IE5 (Quirks) mode renders content as if it were displayed by Windows Internet Explorer 7's quirks mode, which is very similar to the way content was displayed in Microsoft Internet Explorer 5.
- IE7 Standards mode renders content as if it were displayed by Internet Explorer 7's standards mode, whether or not the page contains a <!DOCTYPE> directive.
- EmulateIE7 mode tells Internet Explorer to behave as Internet Explorer 7 does without any additional hints as to what the compatibility mode should be. In this case the browser uses the <!DOCTYPE> directive of the webpage to determine how to render content. Standards mode directives are displayed in Internet Explorer 7 standards mode and quirks mode directives are displayed in IE5 mode. Unlike IE7 mode, EmulateIE7 mode respects the <!DOCTYPE> directive.
- IE8 Standards mode provides the highest support available for industry standards, including the W3C Cascading Style Sheets Level 2.1 Specification and the W3C Selectors API, and limited support for the W3C Cascading Style Sheets Level 3 Specification (Working Draft).
- EmulateIE8 mode tells Internet Explorer to use the <!DOCTYPE> directive of the webpage to determine how to render content. Standards mode directives are displayed in IE8 mode and quirks mode directives are displayed in quirks mode.
- Edge mode tells Internet Explorer to display content in the highest mode available. With Internet Explorer 8, this is equivalent to IE8 mode. If a (hypothetical) future release of Internet Explorer supported a higher compatibility mode, pages set to edge mode would appear in the highest mode supported by that version. Those same pages would still appear in IE8 mode when viewed with Internet Explorer 8.
- Including a metatag in the page that specifies
- Configuring the web server to send a compatibility header with the page that specifies
This event is logged when a page is rendered in standards mode where the page did NOT explicitly opt in to standards mode (for instance, there's not a metatag that specifies an EmulateIE8 mode).
If a page explicitly opts-in to standards mode (for instance, it contains a metatag that indicates IE8 mode), then the event is NOT logged.
Perform the following steps to see this event logged in the Internet Explorer Compatibility Test Tool:
- Create a webpage with the following contents. For this example call it 1049.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <body> <div> <h1>Standards Mode Example</h1> </div> </body> </html>
- Install the file in the root directory of the local web server. On a Microsoft Internet Information Services (IIS) server this means putting the file in this directory:
- Browse to the file:
Put a compatibility metatag in the page or add a HTTP Header at site level to explicitly indicate that IE8 mode should be used to render the page.
For example, in an ASP.NET application the following web.config file could be used to set the compatibility header for the corresponding application:
<system.webServer> <httpProtocol> <customHeaders> <clear /> <add name="X-UA-Compatible" value="IE=IE8" /> </customHeaders> </httpProtocol> </system.webServer>
Or you may add the meta tag directory to the page:
<meta http-equiv="X-UA-Compatible" content="IE=IE8" />
EmulateIE8. Both are sufficient to opt-in to IE8 mode.