ユーザーエージェント文字列を介して自分自身をIE7またはIE8として識別しているブラウザーが実際にそれらのブラウザーであるかどうか、またはそれが7または8互換モードのIE9であるかどうかを知る必要があります。
ユーザーエージェント文字列で確認できることから、IE7互換モードのIE9は、実際のIE7と同じ文字列を提供します。それが "本当に" IE9を偽装しているかどうかを確認するためにテストできる追加のプロパティ/要素/オブジェクトはありますか?
私のスクリプトが読み込まれるページは、奇妙なことを強制したり、特定の設定を強制したりする可能性があるため、ドキュメントモードは役に立たないと思います。
IE9が7、8、9のいずれのモードであるかに関係なく存在し、テスト可能ないくつかのプロパティを持つことを期待しています。
追加するように編集…
OK、私は今どこが間違っているのかわかります。「ブラウザーモード」ドロップダウンを使用して、IE8とIE7に切り替えて、それぞれ「IE8互換モード」と「IE7互換モード」だと思っていました。これはもちろん本当ではありません。開発者ツールのブラウザーモードは、実際には古いブラウザーに「似ている」ように切り替えているため、元のユーザーエージェント文字列が報告されるのは誤りです。
IE9またはIE9互換性のブラウザーモードをそのままにして、代わりにドキュメントモードのドロップダウンバリアントを試してみると、8つの組み合わせ(2つのブラウザーモードと4つのドキュメントモード)で「トライデント/5.0」が表示されます。ブラウザモードIE7とIE8は本当に(シミュレートされた)IE7とIE8なので、ブラウザモードの選択を避ける必要があります。
したがって、ページ、開発者以外のユーザー、メタタグ、またはMicrosoftの互換性リストがIE9をこの識別不可能な状態にすることはできません。
使用if(navigator.userAgent.indexOf("Trident/5")>-1)
するだけで十分です。
心配しないでください、これはスタイル、フォーマット、ロジック、またはページコンテンツ用ではありません。私はそれらの機能検出を使用します。IE9を検出し(現在のモードに関係なく)、ページに関するコンテンツ以外の決定を行うだけです。
あなたの提案とリンクで答えに向かって私を導いてくれてありがとう。