IE标签中的XSLT 1.0条件注释

时间:2014-09-30 09:52:35

标签: html xml internet-explorer xslt conditional-statements

如果这行代码如何仅为IE6显示标题(不作为HTML注释<a title="" href="#">some text</a>在xsl文件中?

以下选项不起作用:

<a <![CDATA[[if IE 6]>title="hi"<![endif]]]> href="#">some text</a>


<a &lt;![if IE 6]&gt;"title="hi"&lt;![endif]&gt; href="#">some text</a>

我知道应该在90年代问这个问题:)

还有其他选择吗? 谢谢。

2 个答案:

答案 0 :(得分:3)

我不知道HTML评论中给出的任何条件IE构造。要在XSL中插入注释,请使用<xsl:comment>

<xsl:comment><![CDATA[[if IE 6]>
    Special instructions for IE 6 here
    <![endif]
    ]]>
</xsl:comment>

CDATA在此处跟随同一行的<xsl:comment有一个特定原因。 IE不识别这些注释,除非字符<!--[if IE 6]>在一行上是连续的。其余部分,包括endif,显然可以分散到后续行。

但是,由于您无法在标记的中间放置HTML注释,因为您尝试这样做。因此,您必须提供整个<a>代码的备用版本:

<xsl:comment><![CDATA[[if IE 6]>
    <a title="hi" href="#">some text</a>
    <![endif]]]>
</xsl:comment>

<xsl:comment><![CDATA[[if gt IE 6]>
    <a href="#">some text</a>
    <![endif]]]>
</xsl:comment>

但请注意MS link

  

重要从Internet Explorer 10开始,标准模式不再支持条件注释。

测试输出

<!--[if IE 6]>
    Special instructions for IE 6 here
    <![endif]
-->

在IE11下以IE9仿真模式进行测试。

答案 1 :(得分:0)

我建议你(如果你在你的页面中使用jQuery)你在IE中添加一个jquery外部文件来编辑你的A标签。

OR

您可以通过某些服务器端脚本(例如PHP)设置xsl变量,以便发现浏览器类型并根据此变量进行检查测试。

不幸的是,XSLT更多地依赖于使用的引擎,所以你可以使用一些基于引擎的特殊功能,或者使用其他方式。

享受您的代码!