重复元标记

时间:2012-05-07 07:38:00

标签: internet-explorer internet-explorer-9 meta-tags

我有一个简单的xml加上xslt,当在IE9中打开时,会添加一个元标记。 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标准模式下打开,但它有两个元标记。显然,IE9在加载和应用xslt的过程中添加了一个。

duplicate meta tag

我想知道两件事:
(1)这会影响文件在IE9(或早期的IE版本)中的显示方式吗? (2)为什么IE9会添加第二个元标记,是否可以避免?

1 个答案:

答案 0 :(得分:0)

我进一步研究了这个问题并找到了我想要的答案。

meta http-equiv打算设置http标头字段。因为Content-type和X-UA-Compatible是不同的http头字段,所以它们不会相互干扰(如果xslt会添加Content-type元标记,IE9会添加另一个,会发生什么有趣的问题)

IE9在转换下载xml文件时收到的字节顺序标记时,显然会将元标记添加到html标头中; BOM是一个utf-16,因此会覆盖xml标题中的utf-8(因此HTML1114消息)。
这可以避免吗?我猜不是。