0

我有一个简单的 xml 和 xslt,当在 IE9 中打开时会添加一个元标记。xml是

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

并且xslt添加了一个meta标签如下

  <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 的过程中添加了一个。

重复元标记

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

4

1 回答 1

0

我对此进行了进一步研究,并找到了我正在寻找的答案。

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

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

于 2012-05-08T08:30:29.860 回答