IE9 Compatibility Changes

Purpose

Changes to Windows Internet Explorer 9 were designed to better comply with broader industry standards, provide consistency with modern browsers, and to improve performance and reliability.

This section describes features that operate differently in Internet Explorer 9 from earlier versions and identifies things that may require changes to sites and apps built to support earlier versions of the browser.

Note  You may be able to use legacy document modes to emulate the behavior of earlier versions. Should you choose to do this, be aware that this is a temporary solution at best. Starting with Internet Explorer 11 Preview, document modes are consider deprecated and may not be supported in any future versions of the browser. For best results, you should update your sites and apps to use features and techniques supported by industry standards and multiple browsers.

In this section

Topic Description

Angle Brackets Are Not Allowed in the createElement Method

As of Internet Explorer 9, the createElement triggers an "object not found" exception when you use angle brackets (< >).

APIs Are Not Available if iFrame Is Removed from DOM Tree

If you remove an iframe element from the Document Object Model (DOM), it no longer responds to DOM APIs calls.

Automatic Binding of Binary Element Behaviors Is Not Supported

To provide greater consistency with other popular browsers, Internet Explorer 9 does not automatically bind binary element behaviors. (Earlier versions of the browser automatically bound binary element behaviors.)

Calling a Method with a Function Pointer without ".call" or ".bind"

Earlier versions of Windows Internet Explorer supported caching a pointer to a method and then using the cached pointer to call the method. As of Internet Explorer 9, This support was removed to improve interoperability with other browsers.

Content Attributes and DOM Expandos Are No Longer Connected

In past versions of Internet Explorer, content attributes were represented on JavaScript objects as DOM] expandos. In Internet Explorer 9, this link between content attributes and DOM expandos has been severed in order to increase interoperability between Internet Explorer and other browsers.

Default User-Agent (UA) String Changed

The user agent (UA) string has changed in Internet Explorer 9 in several ways.

Double Execution of onload and onreadystatechange Events for Script Elements

IE9 Standards mode introduces the standards-based and interoperable load event for script elements. Previous versions of Internet Explorer supported only the non-interoperable onreadystatechange event for script elements.

Dynamic VML Patterns May Not Work

To support dynamic Vector Markup Language (VML) in IE9 mode, the VML behavior must be attached to an element before any VML properties are assigned.

Global Object's Properties Cleared When Window Is Orphaned

Properties on the global object (window) are cleared when a window is orphaned. The properties are cleared to allow garbage collection of the orphaned window when no additional references to it are found. Additionally, timers stop firing and event propagation (inside the orphaned window) stops immediately.

IE9 Standards Mode Does Not Support the arguments.caller Property

The arguments.caller property is not supported in IE9 mode in Internet Explorer 9.

Indirect' eval' Function Calls Behave Differently in Windows Internet Explorer 9

Calling eval methods indirectly (that is, other than by the explicit use of its name) inside a function produces different results in Internet Explorer 9 and later versions that it does in earlier versions (and document modes).

JavaScript Property Enumeration Differs in Windows Internet Explorer 9

Due to the changes made in the JavaScript object model of Internet Explorer 9, JavaScript properties may be enumerated differently from how they are enumerated in Windows Internet Explorer 8.

JavaScript Protocols That Return Null

Internet Explorer 9 now follows HTML5 guidelines when handling JavaScript protocols that return "null".

Math Precision Differs in Windows Internet Explorer 9

Math precision differs from Internet Explorer 8 in certain edge cases. Chakra, the JavaScript engine in Internet Explorer 9 uses Streaming SIMD Extensions 2 (SSE2) if the platform supports them, which results in faster mathematical operations but also yields a difference in precision from the Microsoft JScript engine of Internet Explorer 8

MIME-Handling Change: text/css

Web servers send a HTTP response header named "Content-Type" that specifies the MIME-type of the file that is being sent. For security and standards-compliance reasons, style sheets should be delivered with the "text/css" MIME type.

MIME-Handling Change: text/plain

In IE9 mode, documents delivered with a "text/plain" MIME type will not be MIME-sniffed to another type. Documents will render or download as plain text only.

MIME-Handling Change: X-Content-Type-Options: nosniff

The script and styleSheet elements will reject responses with incorrect MIME types if the server sends the response header "X-Content-Type-Options: nosniff". This is a security feature that helps prevent attacks based on MIME-type confusion.

Mixing Native XML and MSXML Objects

Internet Explorer 9 introduces the concept of native XML objects. Native XML objects can be rendered within a page and used with the same DOM APIs supported for HTML objects.

OBJECT Fallback Is Included in DOM and Matched by window["name"]

When an object element has fallback content (typically, an embed element), Internet Explorer 9 now parses this content and includes it in the DOM, whereas previous versions of Internet Explorer did not.

Overlapping Elements Are Cloned

Overlapping formatting elements are cloned in Internet Explorer 9 to reduce ambiguity in the DOM.

Some Behavior-Connecting Methods Do Not Work in XML

Some DOM Events Are Deprecated

Certain legacy DOM events features are deprecated in IE9 mode and are intended to be removed in the latest standards mode of the next major release.

styleSheet.title Is readonly in IE9 Mode

In IE8 Standards mode and below you can change the value of a styleSheet object's title. In IE9 mode mode the write command will be ignored and the original value will remain.

Table Object Model Is Now More Consistent with Other Browsers

To improve consistency between Internet Explorer and other browsers, the IE9 mode includes several changes to the table object model.

Text Layout Uses Natural Metrics

For text layout in IE9 mode (and later), Internet Explorer 9 uses natural metrics instead of the Windows Graphics Device Interface (GDI) metrics that other Windows browsers use.

Thai and East Asian Text and Font Sizing

Thai and East Asian text may look smaller in Internet Explorer 9 than in Internet Explorer 8 and earlier releases.

Using Legacy Gradient Filters with Rounded Corners

When you use legacy gradient filters to fill elements that have had their corners rounded using the border-radius property, the gradient bleeds past the border of the element. This topic explains how to prevent this from happening.

White Spaces Are Preserved in the Document Object Model

Any white space that you add to a webpage persists in the DOM.

Windows Internet Explorer 9 Compatibility View List

Compatibility View allows content designed for older web browsers to render well in newer versions of Internet Explorer 9.

Windows Internet Explorer 9 Compatibility with Popular JavaScript Frameworks

Many Internet Explorer 9 features were added or modified for improved standards compliance and interoperability with other web browsers.

Windows Internet Explorer 9 Handles Array Elements with a Large Index Differently

Array elements with large indices are handled differently than in Internet Explorer 8.

XSLT Compatibility

In Internet Explorer 9, the processing of XML and Extensible Stylesheet Language Transformations (XSLT) files has been modified for improved standards compliance and interoperability with other browsers.

 

 

 

Build date: 9/16/2013