Добавление комментария в html-вывод из xslt-шаблонизатора
Материал из Umicms
Задача
Добавить в html-код комментарий при использовании XSLT-шаблонизатора. Часто подобная необходимость возникает при использовании хаков для браузеров IE.
Решение
Для добавления комментариев, которые будут добавлены в html код, в XSLT существует специальный тег:
<xsl:comment> этот комментарий в html </xsl:comment>
В html будет отображено:
<!-- этот комментарий в html -->
Комбинируя xsl-теги можно произвести вывод следующего комментария:
<!--[if IE 6]> <script type="text/javascript" src="/js/ie_png.js"></script> <script type="text/javascript"> ie_png.fix('.png, img'); ie_png.fix('.png, input'); ie_png.fix('.png, div'); </script> <![endif]-->
В xsl шаблон необходимо добавить:
<xsl:comment> <xsl:text>[if IE 6]></xsl:text> <script type="text/javascript" src="/js/ie_png.js"></script> <script type="text/javascript"> ie_png.fix('.png, img'); ie_png.fix('.png, input'); ie_png.fix('.png, div'); </script> <xsl:text><![endif]</xsl:text> </xsl:comment>
Для вывода [if IE 6] используем тег <xsl:text>, в строке <[endif] заменяем символ < на сущность & lt;. Рекомендуем изменять все символы >, < и тд на соответствующие html-сущности.
Еще один вариант добавления хака для IE:
<xsl:comment> <![CDATA[ [if lt IE 8]> <link type="text/css" rel="stylesheet" href="/css/style_ie.css" /> <![endif] ]]> </xsl:comment>
