IE8互換表示(IE7モード)とスタンドアロンIE7の違いの詳細な説明

IE8互換表示(IE7モード)とスタンドアロンIE7の違いの詳細な説明

1つ。 IE8 互換表示の概要<br />新しいバージョンのブラウザが古い Web サイトと互換性がない問題を解決するために、IE8 ブラウザには「互換表示」と呼ばれる機能が追加されました。この機能により、Web ページを IE7 のコード仕様に従って表示できます。これにより、一貫性のないコード標準によって発生する Web ページの問題のほとんど (すべてではありません) を解決できます。
二。 「ブラウザモード」と「ドキュメントモード」の違い
互換表示には、「ブラウザ モード」と「ドキュメント モード」という 2 つの重要な機能があります。IE8 では、F12 キーを押して「開発者ツール」を開きます。メニュー バーに、「ブラウザ モード」と「ドキュメント モード」の切り替えメニューが表示され、ここで IE7/8 などのさまざまな Web ページ モードに切り替えることができます。
では、「ブラウザ モード」と「ドキュメント モード」の違いは何でしょうか?
「ブラウザ モード」は、Web ページの IE のデフォルトのドキュメント モードを切り替えたり、さまざまなバージョンのブラウザの条件付きコメントを解析したり、Web サイト サーバーに送信される User-Agent 文字列の値を解析したりするために使用されます。ウェブサイトは、ブラウザから返されるさまざまなユーザー エージェント文字列に基づいてブラウザのバージョンとインストールされている機能を判別できるため、異なるブラウザに異なるページ コンテンツを返すことができます。
デフォルトでは、IE8 のブラウザ モードは IE8 です。ユーザーは、アドレス バーの横にある [互換表示] ボタンをクリックすることで、手動で別のブラウザー モードに切り替えることができます。 IE8 では、IE8 互換ビューは Web ページを IE7 ドキュメント モードで表示し、IE7 ユーザー エージェント文字列をサーバーに送信します。
「ドキュメント モード」は、Web ページ コードを解析およびレンダリングするために使用する IE のページ レイアウト エンジン (Trident) のバージョンを指定するために使用されます。ドキュメント モードを切り替えると Web ページは更新されますが、ユーザー エージェント文字列のバージョン番号は変更されず、サーバーから Web ページが再ダウンロードされることもありません。ブラウザ モードを切り替えると、ブラウザは自動的に対応するドキュメント モードに切り替わります。
一般的に言えば、両方とも同じバージョンに設定する必要がありますが、異なる場合はどうなるでしょうか?それとも両者の間に優先順位の違いがあるのでしょうか?
以下の MSDN の投稿をご覧ください: Just The Facts: 互換表示の要約
http://blogs.msdn.com/b/ie/archive/2009/02/16/just-the-facts-recap-of-compatibility-view.aspx
ハイライト:
•IE8 の標準モードをサポートするように更新できない Web サイトに対して、X-UA-compatible タグの使用を推奨しています。このタグを使用すると、Web 作成者は、Web サイトが最も適切に動作する標準モードの動作 (IE8 標準 (ヘッダーがない場合のデフォルト) または IE7 標準) を正確に宣言できます。たとえば、値 'IE=EmulateIE7' を使用すると、IE8 は Web サイトを「IE7 と同じように」表示します。
• 私たちは、Web サイトの互換性の問題に対するエンド ユーザーと企業/IT の緩和策を「互換表示」という包括的な用語で提供しています。「互換表示」により、IE8 ユーザーは、上記の 2 つの手順のどちらも実行していない Web サイトにアクセスする場合でも、優れたエクスペリエンスを得ることができます。また、IT 組織が、現在 Internet Explorer 7 に対応している多数の基幹業務 Web サイトとの互換性を維持するのにも役立ちます。
•互換性のビューとX-UA互換性のあるタグは、クライアントに影響を与えるものではありません。クライアントの互換性は、バージョンのベクトルと、標準のマップをトリガーすることは、既にそれを変更するには順調になります。標準モード)は、Webサイトを互換性のあるものにしません。また、ユーザーエージェントの文字列検出ロジックも更新する必要があります。
まとめると、IE8 を IE7 モードと互換性を持たせる方法は 2 つあります。1 つはサーバー側で、プログラマーに Web ページのドキュメント モードを制御および変更させる方法です。つまり、Meta (X-UA-compatible IE=EmulateIE7) を通じて、ページを IE7 と互換性を持たせるように強制する方法です。
次のように:

コードをコピー
コードは次のとおりです。

<head runat="サーバー">
<meta http-equiv="X-UA-compatible" content="IE=7" />
<title>近親相姦</title>
</head>

この文を書かない場合はデフォルトでIE8が使用されます。
もう 1 つはクライアント側です。Web サイトがメタを変更する時間がなかった場合、ユーザーが IE8 をインストールしていて正常に表示できないことに気付いた場合、最後の手段は互換表示ボタンをクリックすることです。これは最終的にユーザー エージェントに反映されます。つまり、互換表示ボタンをクリックすると、送信された HTTP リクエスト ヘッダーが MSIE7.0 に書き換えられ、クライアントは IE7 を装ってリクエストを送信します。
次のように:
ユーザー エージェント: Mozilla/4.0 (互換性あり; MSIE 7.0; Windows NT 6.0; Trident/5.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E)
MSDN によると、Meta (X-UA-compatible IE=EmulateIE7) を変更することは、互換表示をクリックすることよりも優先されます。互換表示の選択を上書きできます。つまり、Web サイトが修正されてリリースされると、Meta が設定されていれば、元のユーザーのブラウザーに設定されている互換表示を無効にでき、新しいバージョンの IE8 ブラウザーに自動的に適応できます。
三つ。 IE8互換表示(IE7モード)はスタンドアロンIE7と全く同じではありません
Technet.Microsoft の投稿を参照してください:
互換表示とは何ですか?
http://technet.microsoft.com/zh-cn/ff966533
互換表示は、Windows Internet Explorer 8 の機能であり、ブラウザーが Windows Internet Explorer 7 とほぼ同じ方法で Web ページをレンダリングできるようにします。
Internet Explorer 8 では、互換表示により、ブラウザーが CSS、HTML、およびドキュメント オブジェクト モデル (DOM) で記述されたコードを解釈する方法が変更され、Internet Explorer 7 に一致するように試みられます。ユーザーが Internet Explorer 8 の互換表示で表示するサイトは、ユーザーが Internet Explorer 7 で表示するサイトとほぼ同じです。ただし、互換表示によってブラウザーがすべてのコードを解釈する方法が変更されるわけではありません。たとえば、ブラウザーが ActiveX、パーサー、AJAX、JavaScript、ネットワーク、およびセキュリティを処理する方法に関する Internet Explorer 8 の変更によって、互換性の問題が引き続き発生する可能性があります。互換表示では、これらの動作は変更されません。
エンタープライズ環境では、互換性の問題が発生するリスクが低い領域もあります。たとえば、イントラネット ゾーンの Web サイトでは、既定で互換表示が使用されます。Web ブラウザー コントロールまたは WebOC (Internet Explorer レンダリング エンジン) を使用してレンダリングするクライアント Web アプリケーションも、Internet Explorer 8 が WebOC の互換モードを既定で設定するため、互換性の問題が発生するリスクは低くなります。ただし、互換表示の既定の構成設定では、完全な互換性が保証されない可能性があります。Web サイトまたは Web アプリケーションが Internet Explorer 8 と互換性があるかどうかを確認するには、Web サイトまたは Web アプリケーションをテストする必要があります。
Internet Explorer 8 互換表示と Internet Explorer 7 の違いの詳細については、サイト互換性と Internet Explorer 8 のブログを参照してください。Internet Explorer 8 にアップグレードするときに確認する項目の一覧については、Internet Explorer 8 準備ツールキットを参照してください。
互換表示の詳細については、Internet Explorer チームのブログを参照してください。
MSDN の投稿を参照してください:
1. IE8 互換表示と IE7 の違い
http://blogs.msdn.com/b/ie/archive/2009/03/12/site-compatibility-and-ie8.aspx
抜粋:
互換表示が IE7 とできるだけ同じように動作するように努めていますが、例外もあります。これらの例外の多くにより、IE8 標準モードにまだ移行していないサイトでも、セキュリティとアクセシビリティ機能がすぐに向上します。
2. IE8 の互換表示は具体的に何を行うのでしょうか?
http://webmasters.stackexchange.com/questions/2219/what-exactly-does-compatibility-view-do-in-ie8
ハイライト:
互換表示では、ページが Internet Explorer 7 (Javascript を含む) であるかのように表示されます。互換表示付きの IE8 と純粋な IE7 の間にはいくつかの違いがありますが、基本的には同じです。何が起こっているのかを詳しく知りたい場合は、IE MSDN ブログの「Just The Facts: Recap of Compatibility View」をお読みください。
次のメタ タグを使用して、IE8 に CV の使用を強制することもできます。
<meta http-equiv="X-UA-compatible" content="IE=EmulateIE7" />
問題がある場合は、まず HTML に正当な doctype があるかどうかを確認することをお勧めします (最も単純なのは、標準モードを強制する <!DOCTYPE html> です)。これにより、特に IE6 では、問題の 90% が解決されます。
結論としては、IE8 互換モードは独立した IE7 とは異なり、まだいくつかの違いがあります。IE8 に完全な IE7 が単純に含まれたわけではありません。
4つ。具体的な違いの詳細
1. クロスドキュメントコミュニケーション
セキュリティ上の理由により、ドメイン間、ドキュメント間の通信を可能にするハックは無効になっています。
解決策: この変更を回避するには、クロス ドキュメント メッセージング (XDM) を使用します。
2. イベントオブジェクトの拡張
IE は、互換表示でも、クロス ドキュメント メッセージング (XDM) などの特定の AJAX 機能の新しいプロパティを公開します。Event オブジェクトにカスタム プロパティを追加すると、"source" などの新しいプロパティと競合する可能性があります。
event.source = myObject; // IE8では読み取り専用
解決策: 衝突を避けるために、競合するカスタム プロパティの名前を変更します。
イベントのソースを myObject に変更します。
3. 属性の順序
属性の順序が変更され、属性コレクションと innerHTML および outerHTML の値に影響します。特定の属性の順序に依存するページは壊れる可能性があります。
attr = elm.attributes[1]; // IE8では異なる可能性があります
解決策: 属性コレクション内の位置ではなく、名前で属性を参照します。
attr = elm.attributes["id"];
4. サポートされていない CSS 値の設定
IE7 ではサポートされていなかったが IE8 標準モードではサポートされている CSS 値を割り当てても、IE8 互換表示では例外は生成されません。一部のサイトでは、これらの例外を使用して、CSS プロパティの特定の値がサポートされているかどうかを判断します。

コードをコピー
コードは次のとおりです。

試す
{
elm.style.display = "テーブルセル";
} キャッチ(e)
{
// これはIE7で実行されます。
// モードに関係なく、IE8 では無効
}

解決策: バージョン検出がない限り、この問題を回避するのは困難です。この動作がページにとって不可欠な場合は、ページを更新して IE8 標準モードで実行するのが最善の方法です。

<<:  リンクをクリックしたときにファイルのダウンロードダイアログボックスをポップアップ表示するには、HTML で href を使用します。

>>:  Dockerfile を使用したカスタムイメージの構築の実装

推薦する

Win10にmysql8.0.15 winx64をインストールしてサーバーに接続する際に問題が発生しました

1. mysql-8.0.15をダウンロード、インストール、設定する1. 公式サイト (https:...

CSS を使用して、画像に 3D の凸型と凹型のエフェクト (フレーム外に凸型、またはフレーム内に凹型) を実現します。

Ⅰ. 問題の説明: CSS を使用して画像の 3D 凸凹効果を実現します。 Ⅱ実施手順は以下のとお...

VMware で Nginx+KeepAlived クラスタ デュアルアクティブ アーキテクチャを展開する際の問題と解決策

序文負荷分散には nginx を使用します。アーキテクチャのフロントエンドまたは中間層として、トラフ...

Elasticsearchツールcerebroのインストールと使用チュートリアル

Cerebro は、Elasticsearch バージョン 5.x より前の Elasticsear...

Tomcat が非同期サーブレットを実装する方法の詳細な説明

序文これまでの Tomcat シリーズの記事を通じて、私のブログを読んでいる学生は Tomcat に...

React Nativeの起動プロセスの詳細分析

はじめに: この記事ではreact-native-cliで作成したサンプル プロジェクト (Andr...

前後の秒、分、時間、日数を取得するMySQLデータベース

現在の時刻を取得します: current_timestamp を選択します。出力: 2016-06-...

MySQL シリーズ 14 MySQL 高可用性実装

1. 内閣府マスターノードを監視することで、他のスレーブノードへの自動フェイルオーバーを実現できます...

JS は Baidu 検索ボックスを実装します

この記事の例では、Baidu検索ボックスを実装するためのJSの具体的なコードを参考までに共有していま...

MySQL の自動増分 ID (主キー) が不足した場合の解決策

MySQL で使用される自動インクリメント ID には多くの種類があり、各自動インクリメント ID ...

CSS3で実装されたダイナミックな星空の背景

結果:実装コードhtml <link href='https://fonts.goog...

1 つの記事で Node.js の非同期プログラミングを学ぶ

目次 はじめに 同期 非同期とブロッキング JavaScript のノンブロッキング コールバック ...

データベース復旧エラーの原因となる MySQL 文字セットの簡単な分析

MySQL の文字セットエンコーディングが正しくないデータをインポートすると、エラーが表示されます。...

問題におけるJS演算子の調査

問題は、誰もが「メモリ リーク」について知っていることです。一般的なシナリオはいくつかあります。クロ...