IE9が私のウェブサイトで互換モードに切り替えるのはなぜですか?
-
03-10-2019 - |
質問
IE9ベータをインストールしたばかりで、作成した特定のサイト(HTML5)に、手動で指示しない限り互換性モードにジャンプします。ウェブサイトのいくつかの部分を削除しようとしましたが、変更はありませんでした。すべてのCSSを削除することを含む。私の他のいくつかのウェブサイトでは、それはうまくいきます。
また、IE9がユーザーの設定を覚えていて、自動に戻すことができないため、手動で設定しないでください(または、少なくともプライベートブラウジングやキャッシュを空にすることでさえも見つけていません)
ともかく。互換性モードにジャンプするサイト: http://alliancesatwar.com/guide/
それが正しいレンダリングをするもの: http://geuze.name/basement/ (1つ以上のハイパーリンクを投稿することはできません)
どちらも同じものを使用します doctype
そしてすべて。これらのサイトには、同じ基本テンプレート(エンコード、メタタグ、Doctype、同じJavaScript)を使用して、見た目を除いて多くの共通点があります。
誰かが私のために答えを持っているなら、それは素晴らしいことです! IE7-ModeでレンダリングするHTML5 Webサイトはきれいです...不自由です。
解決
IE9 DocumentModeで動作します。
なしで X-UA-Compatible
ヘッダー/メタ明示的なドキュメントモードを設定するには、以下に基づいてモードを取得します。
- ユーザーが以前にそのドメインの「互換性ビュー」ボタンをクリックしたかどうか。
- おそらく、IE8/9のレンダラーがクラッシュして古いレンダラーに戻る原因となるサイト上の他のコンテンツのために、これが自動的に発生したかどうか。
- ユーザーがデフォルトですべてのサイトを互換性ビューに配置することを選択したかどうか。
- IEがサイトがイントラネット上にあると考えているため、デフォルトで互換性ビューになるかどうか。
- 問題のサイトが、互換性ビューを必要とするMicrosoft独自のWebサイトのリストにあるかどうか。
これらの設定は、IEメニューから「ツール - >互換ビューの設定」から変更できます。もちろん、そのメニューは卑劣に隠されているので、Altを押すまでは表示されません。
サイトの著者として、サイトが標準に準拠していると確信している場合(他のブラウザでよくレンダリングし、機能スニフィングを使用して使用するブラウザーのワークアラウンドを決定する)、使用することをお勧めします。
<meta http-equiv="X-UA-Compatible" content="IE=Edge"/>
またはHTTPヘッダー:
X-UA-Compatible: IE=Edge
最新のレンダラーを取得するには、IEバージョンが使用されているものは何でも。
他のヒント
置いた
<meta http-equiv="X-UA-Compatible" content="IE=Edge"/>
その後の最初のこと
<head>
(どこかで読んだ、思い出せない)
うまくいったとは信じられませんでした!!
IEをIE9標準モードで強制するには、使用する必要があります
<meta http-equiv="X-UA-Compatible" content="IE=edge">
一部の条件により、IE9が互換性モードに飛び込む可能性があります。デフォルトでは、これはイントラネットサイトで発生する可能性があります。
このコメントを別のスタックフロースレッドに投稿しましたが、ここで繰り返す価値があると思いました。
社内のASP.NETアプリの場合、Webページ、web.config、またはcode-behindに「x-ua互換」タグを追加して、まったく違いはありませんでした。
それだけ 私たちのために働いたのは、IE8でこの設定を手動でオフにすることでした:
(はぁ。)
この問題は、イントラネットサイトのIE8およびIE9でのみ発生するようです。外部Webサイトは正常に動作し、IE8/9の正しいバージョンを使用しますが、内部Webサイトの場合、IE9は実際にIE7であると判断し、HTML 5のサポートはありません。
いいえ、私もこの論理をよく理解していません。
私の消極的な解決策はそうでした テスト ブラウザにHTML 5のサポートがあるかどうか(キャンバスを作成し、有効であるかどうかをテストすることで)、および有効でない場合はユーザーにこのメッセージを表示するかどうか:
特にユーザーフレンドリーではありませんが、ユーザーにこの迷惑な設定をオフにすることが、社内HTML 5 Webアプリを適切に実行できるようにする唯一の方法のようです。
または、ユーザーにChromeを使用してもらいます。 ;-)
のサイト http://www.html-5.com/index.html X-UA互換のメタタグはありますが、アドレスバーの「破れたページ」アイコンで示されているように、互換性ビューにまだ入ります。 IE 9(最終バージョン9.0.8112.16421)を標準モードでレンダリングさせるメニューオプションをどのように取得しますか? Rene Geuzeが言及した追加のメニューオプションを表示するために、その破れたページアイコンと「Alt」キートリックを右クリックしてみましたが、それらはうまくいきませんでした。
より近代的なWebサイトでは別の場合、HTMLタグでボイラープレートに従って条件付きステートメントを使用している場合、これは何らかの理由でIE9がデフォルトで互換性のあるモードになります。ここでの修正は、条件付きステートメントをHTMLタグから移動し、ボディタグに追加することです。そうすれば、スタイルシートのこれらのクラスを使用して、古いブラウザをターゲットにすることができます。
私には元気に見えます:
あなたはグローバルに設定されていなかったと確信していますか?これは、Windows 7のベータ版のクリーンなインストールです。開発者ツールは、ページがIE9標準モードにデフォルトであると報告しています。
私は最近、この問題を解決しなければなりませんでした、そして、ここに私がしたことがあります:
まず第一に、このソリューションはApacheサーバーのチューニングを中心にしています。
2番目の主な考えは、IE9にバグがあるということです。つまり、このソリューションの代わりにメタタグが機能しないことを意味します。