5

サポートされていないブラウザー (IE<=8) を使用している場合に警告ボックスを表示する Web サイト ページがあります。これは IE 8 以下では正常に動作しますが、今日は IE 10 でテストしていて、この条件も読み取っているようです。警告ボックスが表示されるべきではない場合に表示されます。私は多くのことを試しましたが、何が問題なのかわかりません。コードの一部を次に示します。

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0" />
  <meta http-equiv="X-UA-Compatible" content="chrome=1"/>
  <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
 ...
</head>
<!--[if lte IE 8]>
    <div style="position:absolute;bottom:0px;left:0px;background-color:orange;color:white;z-index:1000;width:250px;text-align:center;">This content is best viewed in Chrome, Firefox or any other Modern Browser. <br/><strong>Please Upgrade.  </strong></div>
<![endif]-->
4

3 に答える 3

4

暗闇で突き刺しますが、おそらく IE は 2 つの X-UA-Compatible ヘッダーによって混乱し、自発的に互換表示に戻ります。IE10 が条件付きコメントを完全に無視するのではなく処理していると私が考えることができる唯一の状況は、互換表示では IE7 をエミュレートlte IE 8し、その条件付きコメントによって隠されたコンテンツを取得するためです。

<meta>それらを 1 つのタグに結合するとどうなるかを確認してください。

  <meta http-equiv="X-UA-Compatible" content="IE=edge, chrome=1" />
于 2013-09-04T18:38:07.563 に答える
2

Microsoft のドキュメントConditional commentsによると、「条件付きコメント」機能は IE 10 から削除されました。これは、IE 10 が「条件付きコメント」を単なるコメントとしてスキップすることを意味します (これは HTML 仕様によるものです)。

これは、IE 10 での質問のコードのテストによって確認されました。ブラウザ モードの設定とは関係なく、警告ボックスは表示されません。したがって、実際のページには何らかの構文エラーがあり、一部のテキストが「条件付きコメント」ではなく通常のコンテンツとして表示される可能性が高いようです。

于 2013-09-04T19:18:51.903 に答える
0

そのため、コードが機能するようにデバッグして修正しようとしましたが、2つのことが修正された可能性があると思います。
まず、body タグの開始前に条件付きコメントが宣言されました。これは div 要素であるため、body タグ内に含める必要があると推測しています。本体内に移動すると、修正される可能性があります。
2 つ目: ドキュメントの head 内にスクリプト タグがあり、その中に jQuery スクリプトが含まれていました。このタグを body タグの末尾に移動すると、問題が解決する場合もあります。

于 2013-09-05T14:30:41.827 に答える