状況によってはIE8が互換性メッセージをポップアップし、互換モードでリロードするアプリがあります。
表示の問題により、InternetExplorerは互換表示を使用してWebページを更新しました
これはまれであり、私が知る限り、メタタグが原因で発生することはありません。これは、DOMを変更するユーザーアクションへの応答として発生します。これは次と同じ問題です: https://superuser.com/questions/215281/how-do-i-stop-ie-jumping-into-compatability-view 、しかし私の質問は:何ですかそれを修正する助けとして、物事の種類がこれを引き起こします。
別の言い方をすれば、このサイトを参照してください thesitewizard.com 、IE8の互換モードの3番目の原因は次のように説明されています。
また、場合によっては、他の計り知れない、文書化されていない理由で、標準に準拠していると検証されたページで(または、少なくともリリース候補1でこれを行います)。
そして問題は、どのような計り知れない、文書化されていない理由ですか?
長いデバッグセッション(古い学校のアラートを使用して、どこで何が失敗していたかを特定する)の後、この一見無害なdom操作の行が原因でした:
document.getElementById("literal"+varValue).style.display = "none";
ここではエラーはなく、要素が見つかったようです(つまり、これは園芸品種のnullポインターではありません)。
これは大規模なアプリであり、このコードの周りで多くのことが起こっています。私はそれを以下に切り替えました、そしてこれは明らかに問題を防ぎました:
setTimeout(function(){
var layoutEl = document.getElementById("literal"+varValue);
if (layoutEl)
layoutEl.style.display = "none";
},10)
あなたはすでにあなたの答えを持っていることを私は知っていますが、今日私はIE8が互換モードをトリガーする原因を探していました。 JavaScriptコードcss(:first、:lastなど)を検索しましたが、インラインスタイルのようでした:
オーバーフローと組み合わせた最大高さ。
したがって、これは(また)IE8の互換モードをトリガーします:
style="overflow:scroll;max-height:200px;"
そして、これはそうではないので、それは私の問題を解決しました:
style="overflow:scroll;height:200px;"
編集:これは関連していると思います: IE8オーバーフロー:最大高さの自動
次のコンテンツは、MSDNの記事 " デフォルトのレンダリングの制御 "からのものです。
これらのリンクは、InternetExplorerがWebページの適切なドキュメントモードを決定する方法を説明する追加情報を提供します。
これは古い質問だと思いますが、出会ったばかりの何かを追加すると思いました。互換モードが強制されていて、ソースを追跡できないという問題がありました。手動でページを互換モードから外しましたが、一部の文字が表示されていないことに気付きました。最終的には、疑似要素でカスタム文字を使用していた箇条書きになりました。
li:before {
content: '\25B6';
}
簡単な修正として、これをIE 9未満:
.lt-ie9 li:before {
content: '';
}
この記事 誤って処理された文字を探すというアイデアを私に与えました。彼らが同様の問題に遭遇した場合、これが誰かに役立つことを願っています!