Internet Explorer 8のドキュメントモードをエミュレートしても、Internet Explorer 11が条件付きコメントを受け入れないのはなぜですか?


110

新しいInternet Explorer 11開発者ツールを使用してドキュメントモードを「8」に切り替えていますが、条件付きコメントは無視されます。つまり、コメントは適切に解析されず、通常のコメントのように動作します。したがって、条件付きコメント内の参照ファイルは、ブラウザーによって要求/ロードされません。

なぜこれが起こるのですか?バグですか?

これが実際に修正が必要なバグだと思われる場合は、この問題について報告されているMicrosoftバグレポートで再現できると伝えて
ください。F12Developerを介してドキュメントモードをエミュレートすると、条件付きコメントが機能しませんツール

更新:この問題は、前述のバグレポートで修正されていることが報告されています。


18
自分に同じ質問をする!IE10で条件付きコメントを削除したことは知っています、古いブラウザーをテストする場合、エミュレーターそれら考慮する必要があります。
Alexander Rechsteiner 2013年

12
実際、その機能は使用できなくなります。
thasmo 2013年

3
本当の問題は、なぜ互換性モードを使用しているのですか?私のアドバイスは、ペストのような互換モードを避けることです。あなたが説明した問題に関係なく、テストに適していません。既知のバグと奇妙な点があり、彼らが最初に互換モードを導入したときまで遡ります。下位互換性をテストする場合は、IE8(およびIE9など)の実際のコピーを使用する必要があります。modern.ieに移動し、テスト用に提供されているVMをダウンロードします。
Spudley、2013年

19
IEバグトラッカーで未解決のバグがあります。これを再現できることを皆さんにマイクロソフトに伝えてください。connect.microsoft.com/IE/feedback/details/806767/…–
Evgeny

15
テストに互換モードを使用することは、すべてのブラウザーに1/2ギガバイト程度のイメージをダウンロードするよりも意味があると思います。ですからバグがあります(そしておそらくこれはそのうちの1つです)が、99。%の確率で機能します。
Rolf

回答:


29

によるJacob Rossi [MSFT]

これは、先週リリースされたIE11のアップデート1で修正されるはずです。

それは2014年4月22日に投稿されました。

自分でいくつかのテストを実行したところ、これは修正されたようであり、すべてがこれまでに作成された最も素晴らしいブラウザをテストするために再びスムーズに実行されています... Internet Explorer!


4
これはもっと賛成する必要があります。ここにたどり着くために、2つのスタックオーバーフローの答えを掘り下げる必要がありました。
Tek

@Lynda:IE11バージョンを投稿してもらえますか?鉱山is11.0.9600.17631
Mohamed Hussain

1
@MohamedHussain-私のバージョンは11.0.9600.17690ICです。
L84 2015年

3
あなたは奇妙でなければなりません。
paddotk 2015年

IEが「最も驚くべきブラウザ」であることについて
paddotk 2015年

20

これをWindows 7のInternet Explorer 11で使用して、使用したHTML5セマンティック要素がInternet Explorer 8以下用に(条件付きコメントを介して)作成されていることを確認しました。ブラウザーはそれらを無視します。-_-

この機能はInternet Explorer 10で完全に正常に機能し、Microsoftはそれをいじる必要がありましたね。

<!--[if lte IE 8]><script src="ie8-html5.js"></script><![endif]-->

これとは別に、私は実際にInternet Explorerを楽しんでいます。


4
はい、IE 11はより良い体験であり、実際に機能するすべてのアニメーションが含まれています。はいMSは、​​ユーザーが慣れ始めたばかりのときに、いじくり回してきた歴史があります。彼らがWindows XPに何をしたかを見てください。「壊れていないものを修正する」と言う人もいます。とにかくひどい
ロルフ

9
Internet Explorerブラウザーはとても悪いです。バージョン間の一貫性はありません。一体誰がこれを開発したのですか?私の祖母でさえ、より良い仕事をすることができました!
Adrien Be

4
編集:彼らはこれを修正しています(または試みています)2014年1月22日以降、connect.microsoft.com / IE / feedback / details / 806767 /…
Adrien Be

@AdrienBeまあ、それは確かに正しい方向への一歩です。
DylRicho 2014年

1
@Anthony私の答えは間違っていますか?どうして?それは基本的にあなたが今言ったことを言っています。
DylRicho 14年

17

これは私にとってはうまくいき、最もエレガントで簡単な修正のようです(Internet Explorer 10Internet Explorer 11だけが、サポートしているブラウザだと思います-ms-high-contract)。

@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {  
   /* IE10+ specific styles go here */
}

ありがとう、ありがとう。マイクロソフトはいつこのごちゃごちゃを殺すのですか?
Kohjah Breese 14

そのためのタンク、IE 11は古い条件付きメソッドを尊重していません。<!-[if IE]>
Gino

8

最近、同じ問題に遭遇しました。また、いくつかの条件付きコメントが機能することもわかりました。

  • gtそして、lt罰金を働きました
  • gteそして、lte働いたことはありません

したがって、1つの潜在的な解決策は、条件演算子を変更してgtand lt演算子を使用することです。

私がもっと便利だと思ったもう1つの方法は、browserstackのようなサービスを使用することでした。


8

これには別の解決策があります。

Internet Explorer 8互換モードがオンになっているInternet Explorer 11には、文字列「MSIE 8.0」が含まれているため、次のようになります。

(PHPの例)

if (strpos($_SERVER['HTTP_USER_AGENT'],'MSIE 8.0') !== false) {
    $head[] = sprintf('<link rel="stylesheet" href="ie8.css" />');
}

2
ドキュメントモードをテストしましたが、ユーザーエージェントは変更されないようです。
mgutt 2014

@mguttそうですね。エミュレーションには、ドキュメントモードとユーザーエージェントの2つのオプションがあります。ドキュメントモードは、ブラウザーの動作とページのレンダリング方法を変更し、ユーザーエージェントは、ブラウザーのバージョンをサイトに通知するブラウザーを変更します。(私の例では、この情報を含むのは$ _SERVER ['HTTP_USER_AGENT']変数です)したがって、基本的には、この両方のオプションを、たとえばIE8に変更する必要があります。
Andrei Konstantinov 2014年

@アンドリューありがとうございます。今、私は設定を見つけました。問題はドイツ語の翻訳でした。彼らは「ユーザーエージェント」を「Zeichenfolge des Benutzer-Agents」で翻訳しましたが、これは文字セットを意味すると思いました。翻訳してはいけないものもあります;)
mgutt

2
このソリューションが最適です。私は、ASP.NET MVCレイザーにそれを変換したのだが、完璧に動作します:@ {場合(Request.UserAgent.Contains( "MSIE 8.0")){ここで、* /} / *あなたのメタタグ}
ヴァレリオ・ジェンティーレ

このサイトは、ユーザーエージェント文字列のすべての順列がどのように見えるかについての便利なリファレンスです: useragentstring.com/pages/Internet%20Explorer
Drew

4

私は同じ問題を抱えていました-それは私に一朝一夕を過ごしました。Modernizrを追加し、yepnope.jsを含むすべてのオプションを選択しました。

だから今私のテストは次のようになります:

Modernizr.load({
            test: Modernizr.canvas,
            nope: ['Content/Site-ie-8.min.css', 'Content/font-awesome-ie7.min.css']
});

この場合、キャンバス(Internet Explorer 9より前ではサポートされていません)をテストするため、条件付きコンテンツをロードします。これは、Internet Explorer 11開発者ツールでブラウザーモードを切り替えるときに機能するようになりました。


条件付きコメントは、スクリプトやサードパーティのコードに依存しません。
Walf、2014

@Walf-trueですが、IEでもサポートされていません。ここを参照してください:msdn.microsoft.com/en-us/library/ie/hh801214(v
vs.85)

3

ここでは言及していませんが、このバグレポートでは、互換表示設定を変更すると、条件付きコメントが期待どおりに機能することがわかりました。そう:

  1. IE11で、[ツール]をクリックします
  2. 互換表示設定
  3. URLを入力して[追加]をクリックします

私のローカルホストで今はうまく機能しているようです。私はこれを広範囲にテストしていませんが、多分それは誰かを助けるでしょう。


しかし、あなたのウェブサイトの訪問者が同じ結果を得るためには同じことをしなければならないでしょう。役に立たない。
paddotk 2015年

はい。ただし、これは、IE11開発者ツールを使用して古いバージョンのIEをテストする場合のためのものです。したがって、IE11を使用してIE8として実行すると、条件付きコメントは機能しません。実際にIE8を使用している人にとっては、条件付きコメントが機能します。おそらく^ _ ^
単なるハイ

1

' gt'や ' lt' などの条件付きコメントの一部は機能していますが、たとえば機能し <!--[if IE 8]>ていません。これは、さまざまなバージョンのInternet ExplorerブラウザーでWebページがどのように表示されるかを試してみたい開発者にとって確かに不便ですが、すべてが悪いニュースであるとは限りません。

条件付きコメントは機能していませんが、スタイルシートを1つずつ追加することで、Internet Explorerの各バージョンでWebページがどのように表示されるかをテストできます。Firefox、Chrome、Internet Explorer 10、およびInternet Explorerのスタイルシートがあるとしましょう11は「screen.css」と呼ばれ、別のスタイルシートは「screen-ie9.css」と呼ばれるInternet Explorer 9専用で、もう1つは「」と呼ばれるInternet Explorer 8専用screen-ie8.cssです。

Internet Explorer 9でのみWebページをテストするには、次のようにします。

<link rel="stylesheet" href="path/css/screen.css"     type="text/css" />
<link rel="stylesheet" href="path/css/screen-ie9.css" type="text/css" />

F12開発者ツールのエミュレーションセクションで、「ドキュメントモード」を「9」に、「ユーザーエージェント文字列」を「Internet Explorer 9」に設定します。ドキュメントモードはInternet Explorer 9が使用する標準であり、ユーザーエージェント文字列はブラウザー自体です。

PS:私は、 ' screen.css'がベーススタイルシートであると想定しています。これが、後で呼び出すことでInternet Explorer 9が修正する「上書き」よりも先に呼び出す理由です 'screen-ie9.css ' 2番目を。

これにより、Internet Explorer 9ブラウザーでWebページを表示していることを確認できます(引用符なしで「確認」という言葉を書くには、VMでテストする必要があります)。Internet Explorer 9でのテストとスタイル設定が完了し、Internet Explorer 8でテストしたい場合は、これを置き換えることで同じトリックを簡単に実行できます。

<link rel="stylesheet" href="path/css/screen-ie9.css" type="text/css" />

これとともに:

<link rel="stylesheet" href="path/css/screen-ie8.css" type="text/css" />

ですから、Microsoft側の不便さの問題ですが、新しいF12開発者のツールは驚くべき機能をたくさん提供しているので、それほど大したことではありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.