すべてのイントラネットサイトで互換モードを強制するクライアントのために仕事をしています。互換モードを強制的にオフにするHTMLに挿入できるタグがあるかどうか疑問に思いました。
すべてのイントラネットサイトで互換モードを強制するクライアントのために仕事をしています。互換モードを強制的にオフにするHTMLに挿入できるタグがあるかどうか疑問に思いました。
回答:
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>My Web Page</title>
</head>
<body>
<p>Content goes here.</p>
</body>
</html>
リンクされたMSDNページから:
エッジモードは、Windows Internet Explorerに、利用可能な最高のモードでコンテンツを表示するように指示します。これにより、「ロックイン」パラダイムが実際に破られます。Internet Explorer 8では、これはIE8モードと同等です。Internet Explorerの(仮想)将来のリリースでより高い互換性モードがサポートされる場合、エッジモードに設定されたページは、そのバージョンでサポートされている最高のモードで表示されます。ただし、Internet Explorer 8で表示すると、IE8モードでも同じページが表示されます。
ただし、「エッジ」モードは本番環境での使用は推奨されていません。
Windows Internet Explorerの将来のバージョンでページコンテンツをレンダリングすると予期せぬ結果が生じる可能性があるため、Web開発者は、ページのテストや他の非本番用の使用にEdgeモードの使用を制限することをお勧めします。
正直なところ、完全に理解できません。しかし、これによると、現時点で最善の方法はを使用することIE=8
です。
IE=10
は自社サイトで使用しているようです。IE10(プレビューバージョン)でサイトをテストした場合、これを使用しても安全です。それ以外の場合は、IE=9
今のところ固執する必要があります。
Tools->Compatibility View Settings
表示ですべてのWebサイトを表示する] をオンにした場合、これは機能しないことがわかりました。この問題を解決するには、私は、HTTPレスポンスのヘッダを返すことがあります:X-UA-Compatible: IE=edge
何時間もかけてこの問題をトラブルシューティングしました... X-UA-Compatible
ドキュメントから私たちを助けてくれたいくつかの簡単なハイライトがあります:http : //msdn.microsoft.com/en-us/library/cc288325( VS.85).aspx# ctl00_contentContainer_ctl16
使用する <meta http-equiv="X-UA-Compatible" content=" _______ " />
標準ユーザーエージェントモード(非エミュレートするもの)は無視する<!DOCTYPE>
ページ内のディレクティブをし、IEのバージョンでサポートされている規格に基づくレンダリング(例えば、IE=8
意志よりよいオベイテーブルの枠線の間隔と、いくつかの疑似セレクタよりIE=7
)。
一方、エミュレートモード<!DOCTYPE>
では、ページ内のすべてのディレクティブに従うようにIEに指示し、選択したバージョンに基づいて標準モードをレンダリングし、IE=5
content
属性の可能な値は次のとおりです。
content="IE=5"
content="IE=7"
content="IE=EmulateIE7"
content="IE=8"
content="IE=EmulateIE8"
content="IE=9"
content="IE=EmulateIE9"
content="IE=edge"
イントラネットゾーンのページで作業している場合は、IE9が何をしようとも、IE7互換モードになっていることがあります。
これは、すべてのイントラネットサイトを互換モードで実行する必要があるというIE互換性設定内の設定が原因です。グループポリシーを使用してこれを解除するか、IEでチェックを外すか、次のように設定できます。
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
これは(他の回答で詳述されているように)機能しますが、最初は表示されないことがあります。スタイルシートが宣言される前に来る必要があります。そうしないと、無視されます。
私はこれがうまくいくと信じています:
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
関連する質問に対するこの回答で示唆されているように、「エッジ」モードはWeb.Configファイルで設定できます。これにより、アプリケーションから返されたすべてのHTMLに適用され、個々のページに挿入する必要はありません。
<configuration>
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="X-UA-Compatible" value="IE=edge" />
</customHeaders>
</httpProtocol>
</system.webServer>
</configuration>
これと同じ手順は、IISサーバー、Webサイト全体、または特定のアプリケーション用のIIS マネージャーを使用して「HTTP応答ヘッダー」を変更することでも実行できます。
メタタグソリューションは機能しませんでしたが、応答ヘッダーに設定すると次のようになりました。
header('X-UA-Compatible: IE=edge,chrome=1');
chrome=1
プロパティの説明、stackoverflow.com/a/22059516/368691。Chrome Frameは廃止されました。blog.chromium.org/2013/06/retiring-chrome-frame.html
私の最近の経験に基づいて、このトピックに関するもう少しのメモ。私が所属する大学では、IE 8がすべてのイントラネットサイトの互換モードに設定されたラップトップを発行しています。私のサイトで提供されているページに対してこのモードを無効にするためにメタタグを追加しようとしましたが、IEはこのタグを常に無視していました。ランスが彼の投稿で述べたように、応答ヘッダーを追加するとこの問題が修正されました。これは、HTML5ボイラープレートメソッドに基づいてヘッダーを設定する方法です。
<IfModule mod_headers.c>
Header set X-UA-Compatible "IE=edge,chrome=1"
# mod_headers can't match by content-type, but we don't want to send this header on *everything*...
<FilesMatch "\.(appcache|crx|css|eot|gif|htc|ico|jpe?g|js|m4a|m4v|manifest|mp4|oex|oga|ogg|ogv|otf|pdf|png|safariextz|svg|svgz|ttf|vcf|webm|webp|woff|xml|xpi)$">
Header unset X-UA-Compatible
</FilesMatch>
</IfModule>
このヘッダーが実際に送信されるようにするには、Apacheでmod_headersがオンになっていることを確認する必要があります。このmodがオンになっていることを確認する場合は、phpを実行できるページにこれを配置します。
<pre>
<?php
print_r(apache_get_modules());
?>
</pre>
IE8のデフォルトは、intERnetの標準モードとintRAnetの互換モードです。doctypeをxhtmlトランジショナルに設定している場合、HTMLメタタグは無視されます。解決策は、コードにHTTPヘッダーを追加することです。これでうまくいきました。現在、イントラネットサイトはIE8にアプリを標準モードで表示するように強制しています。
基本ページクラス(ASP.net C#)のPageInitに追加:
Response.AddHeader("X-UA-Compatible", "IE=EmulateIE8");
リファレンス:http : //ilia.ws/archives/196-IE8-X-UA-Compatible-Rant.html
これは、すべてのイントラネットサイトを互換モードで実行する必要があるというIE互換性設定内の設定が原因です。グループポリシーを使用してこれを解除するか、IEでチェックを外すか、次のように設定できます。
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
どうやらグループポリシーとして互換性ビューの設定を変更することは不可能ですが、レジストリで変更できる可能性があります。このメタタグは私にとってはうまく機能し、必要な属性をHTMLフォームの一部として機能させる必要がありました。 、それはクロムとファイアフォックスで動作しましたがIEでは動作しませんでした。
これは、ブラウザが個々のhtml 5要素をサポートしていることを示しています。
共通点の1つであるGoogle Chromeに注目してください。これはすべてをサポートしています。これがお役に立てば幸い
タグの下の最初のアイテムとして挿入します。
これにより、IEはIEの物理バージョンでページをレンダリングする必要があり、ブラウザの「モード設定」は無視されます。これは開発者ツールで設定できます。テストするために古いバージョンのIEに変更してみてください。これは無視する必要があり、ページはまったく同じに見えるはずです。