0

IE9で開くとメタタグが追加される単純なxmlとxsltがあります。xmlは

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="test.xslt"?>
<root/>

そして、xslt は次のようにメタ タグを追加します。

  <xsl:output method="html" version="5.0" doctype-public="-//W3C//DTD HTML 4.0//EN"/>
  <xsl:template match="/">
    <html>
      <head>
        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
        <title>Example</title>
      </head>
      ...

IE9 でファイルを開くと、開発者ツールは IE9 標準モードで問題なく開くことを示しますが、2 つのメタ タグがあります。どうやら IE9 は、xslt の読み込みと適用の過程で 1 つを追加します。

メタタグの重複


(1) これは IE9 (または以前の IE バージョン) でのファイルの表示方法に影響しますか?
(2) なぜ IE9 は 2 番目のメタ タグを追加し、それを回避できるのですか?

4

1 に答える 1

0

これをさらに調べて、探していた答えを見つけました。

meta http-equivhttpヘッダーフィールドを設定する予定です。Content-typeとX-UA-Compatibleは異なるhttpヘッダーフィールドであるため、相互に干渉しません(xsltがContent-typeメタタグを追加し、IE9が別のタグを追加するとどうなるかという興味深い質問があります) 。

IE9は、xmlファイルのダウンロード時に受け取ったバイト順マークを変換するときに、htmlヘッダーにメタタグを追加するようです。BOMはutf-16であるため、xmlヘッダーのutf-8をオーバーライドします(したがって、HTML1114メッセージ)。
これは避けられますか?私はそうは思わない。

于 2012-05-08T08:30:29.860 に答える