IE9 の互換性の変更点

目的

Windows Internet Explorer 9 互換性クックブックは、Windows Internet Explorer の以前のバージョンで開発されたアプリケーションに影響を与える可能性がある Internet Explorer 9 の変更点を理解するための手助けとなります。多くの変更は Internet Explorer が幅広い業界標準に準拠するためのものです。また、パフォーマンスや信頼性の向上のための変更もあります。

Internet Explorer 9 互換性クックブックには、機能の変更に関する情報が含まれており、推奨されなくなった機能や廃止された機能が特定されています。また、一般的なツールとガイダンスも示されています。 機能が変更された場合や、ユーザーが詳しい情報を必要とする領域が特定された場合は、このセクションに新しいトピックとして追加されます。

対象となる開発者

Internet Explorer 9 互換性クックブックは、Internet Explorer アプリケーションを開発または保守するすべての人を対象としています。

実行時の要件

Internet Explorer 9 Consumer Preview 互換性クックブックは、Internet Explorer 9 よりも前のバージョンのブラウザーを指定しながら、Internet Explorer 9 で実行できるアプリケーションです。

このセクションの内容

トピック 説明

createElement メソッド内で山かっこが許可されない

Windows Internet Explorer 9 は、createElement メソッド内の山かっこ (< >) を認識しません。

DOM ツリーから iFrame が削除されると API が利用できなくなる

JavaScript やドキュメント オブジェクト モデル (DOM) の APIなどの組み込み API は、DOM ツリーから削除された iFrame 要素のウィンドウ上で呼び出すことができません。

バイナリ要素の動作の自動バインドがサポートされていない

Windows Internet Explorer 9 は、Windows Internet Explorer と他のブラウザーとの一貫性を高めるため、自動バインド機能を含みません。

関数ポインターを使って ".call" または ".bind" を使用せずにメソッドを呼び出す

以前のバージョンの Windows Internet Explorer では、メソッドへのポインターをキャッシュし、後でそのポインターを使ってメソッドを呼び出すという方法をサポートしていました。このサポートは、他のブラウザーとの相互運用性を高めるために、Windows Internet Explorer 9 では削除されました。

テキスト レイアウトがナチュラル メトリックを使用する

IE9 標準モードのテキスト レイアウトで、Windows Internet Explorer 9 は、他の Windows ブラウザーが使う Windows グラフィックス デバイス インターフェイス (GDI) メトリックではなく、ナチュラル メトリックを使います。

コンテンツ属性と DOM Expando は接続されない

以前のバージョンの Windows Internet Explorer では、コンテンツ属性は JavaScript オブジェクト上でドキュメント オブジェクト モデル (DOM) expando として表されました。Windows Internet Explorer 9 では、Internet Explorer と他のブラウザー間の相互運用性を高めるために、コンテンツ属性と DOM expando とのリンクがなくなりました。

非推奨の DOM イベント

Microsoft は、将来段階的に廃止される可能性がある機能を "非推奨" として、この機能を今後も使うことに対して警告を発しています。

スクリプト要素の onload と onreadystatechange イベントの二重実行

IE9 標準モードでは、script 要素の標準ベースで相互運用可能な load イベントが導入されました。以前のバージョンの Windows Internet Explorer では、script 要素の、相互運用が不可能な onreadystatechange イベントだけがサポートされていました。

動的な VML パターンが動作しない

IE9 標準モードで動的な VML (Vector Markup Language) をサポートするには、VML プロパティを割り当てる前に、VML の動作を要素に接続する必要があります。

ウィンドウが孤立するとグローバル オブジェクトのプロパティが消去される

ウィンドウが孤立すると、グローバル オブジェクト (window) のプロパティが消去されます。ウィンドウへの参照がこれ以上ない場合は、孤立したウィンドウがガベージ コレクションの対象となるように、プロパティは消去されます。また、タイマーの実行が停止され、(孤立したウィンドウ内の) イベントの伝達がすぐに停止されます。

テーブル オブジェクト モデルに関して他のブラウザーとの一貫性が向上

Windows Internet Explorer と他のブラウザーとの間の一貫性を向上させるために、IE9 標準モードにおけるテーブル オブジェクト モデルは次のように変更されています。

重複する要素が複製される

Windows Internet Explorer 9 では、ドキュメント オブジェクト モデル (DOM) のあいまいさを軽減するために、重複する書式設定要素が複製されます。

ドキュメント オブジェクト モデルで空白が保持される

ドキュメント オブジェクト モデル (DOM) では、Web ページに追加した空白がすべて維持されます。

IE9 標準モードは arguments.caller プロパティをサポートしない

Windows Internet Explorer 9 の IE9 標準モードでは、arguments.caller プロパティはサポートされていません。

Windows Internet Explorer 9 では間接的な "eval" 関数呼び出しの動作が異なる

Internet Explorer 9 では、関数内部で eval メソッドを間接的に (このメソッドの名前を明示的に使わずに) 呼び出すと、Windows Internet Explorer 8 とは異なる結果になります。

Windows Internet Explorer 9 互換表示一覧

互換表示を使うことにより、古い Web ブラウザー向けに設計されたコンテンツを新しいバージョンの Internet Explorer 9 でも正常に表示できます。

広く使われている JavaScript フレームワークと Windows Internet Explorer 9 の互換性

Internet Explorer 9 では、標準への準拠性と、他の Web ブラウザーとの相互運用性を向上させるために、多くの機能が追加または修正されました。

Windows Internet Explorer 9 では大きなインデックスを使う配列要素の処理が異なる

大きなインデックスを持つ Array 要素の処理が、Windows Internet Explorer 8 とは異なります。

既定のユーザー エージェント (UA) 文字列の変更

Windows Internet Explorer 9 では、ユーザー エージェント (UA) 文字列がいくつかの点で変更されています。

Windows Internet Explorer 9 では JavaScript のプロパティの列挙が異なる

Internet Explorer 9 の JavaScript オブジェクト モデルで行われた変更により、JavaScript プロパティの列挙は Windows Internet Explorer 8 で行われる列挙と異なることがあります。

Null を返す JavaScript プロトコル

Windows Internet Explorer 9 では、"null" を返す JavaScript プロトコルを HTML5 のガイドラインに従って処理するようになりました。

Windows Internet Explorer 9 では算術演算の精度が異なる

ある種の特殊なケースでは、算術演算の精度が Windows Internet Explorer 8 と異なります。プラットフォームが Streaming SIMD Extensions 2 (SSE2) をサポートしている場合、Internet Explorer 9 の JavaScript エンジンである Chakra は SSE2 を使います。これにより、算術演算の処理が高速になりますが、Internet Explorer 8 の Microsoft JScript エンジンとの精度の違いも発生します。

MIME 処理の変更: text/css

Web サーバーは、送信されるファイルの MIME タイプを指定する "Content-Type" という名前の HTTP 応答ヘッダーを送信します。セキュリティと標準化のために、スタイル シートは "text/css" MIME タイプを使って送信する必要があります。

MIME 処理の変更: text/plain

IE9 標準モードでは、"text/plain" MIME タイプを使って送信されたドキュメントは、MIME スニッフィングによって別の種類に切り替えられることはありません。ドキュメントは、常にプレーンテキストとして表示またはダウンロードされます。

MIME 処理の変更: X-Content-Type-Options: nosniff

サーバーが応答ヘッダー "X-Content-Type-Options: nosniff" を送信する場合、script 要素と styleSheet 要素は、誤った MIME タイプでの応答を拒否します。これは、MIME タイプの問題を悪用した攻撃を防ぐためのセキュリティ機能です。

ネイティブ XML と MSXML オブジェクトの混在

Windows Internet Explorer 9 では、ネイティブ XML オブジェクトの概念が導入されました。ネイティブ XML オブジェクトは、ページ内に表示でき、HTML オブジェクトでサポートされているのと同じドキュメント オブジェクト モデル (DOM) API で使うことができます。

OBJECT フォールバックが DOM に含まれるため window["name"] で一致する

object 要素にフォールバック コンテンツ (通常は embed 要素) が含まれている場合、Windows Internet Explorer 9 は、このコンテンツを解析し、ドキュメント オブジェクト モデル (DOM) に追加するようになりましたが、以前のバージョンの Windows Internet Explorer はこれを行いませんでした。

一部の動作接続メソッドが XML で動作しない

IE9 モードでは styleSheet.title が readonly である

IE8 標準モード以下では、styleSheet オブジェクトのタイトルの値を変更できます。IE9 標準モードでは、書き込みコマンドが無視され、元の値のままになります。

タイ語および東アジア言語の文字とフォントのサイズ

Windows Internet Explorer 8 とそれ以前のリリースと比較して、Windows Internet Explorer 9 ではタイ語の文字と東アジア言語の文字が小さく表示されることがあります。

角丸コーナーでの従来のグラデーション フィルターの使用

border-radius プロパティを使って丸いコーナーが設定された要素を従来のグラデーション フィルターを使って塗りつぶすと、グラデーションが要素の境界線をはみ出して適用されます。このトピックでは、そうならないようにする方法について説明します。

XSLT 互換性

Windows Internet Explorer 9 では、標準への準拠性と、他の Web ブラウザーとの相互運用性を向上させるために、XML ファイルと Extensible Stylesheet Language Transformations (XSLT) ファイルの処理が変更されました。