Добавление комментария в html-вывод из xslt-шаблонизатора — различия между версиями
Материал из Umicms
Alexh (обсуждение | вклад) (Новая страница: «== Задача == Добавить в html-код комментарий при использовании XSLT-шаблонизатора. Часто подобн…») |
Mad grant (обсуждение | вклад) |
||
(не показаны 4 промежуточные версии 2 участников) | |||
Строка 50: | Строка 50: | ||
− | Для вывода '''[if IE 6]''' используем тег '''<xsl:text>''', в строке '''<'''[endif] заменяем символ '''<''' на сущность '''<''' | + | Для вывода '''[if IE 6]''' используем тег '''<xsl:text>''', в строке '''<'''[endif] заменяем символ '''<''' на сущность '''& lt;'''. Рекомендуем изменять все символы >, < и тд на соответствующие html-сущности. |
+ | |||
+ | |||
+ | Еще один вариант добавления хака для IE: | ||
+ | |||
+ | <source lang="xml"> | ||
+ | <xsl:comment> | ||
+ | <![CDATA[ | ||
+ | [if lt IE 8]> | ||
+ | <link type="text/css" rel="stylesheet" href="/css/style_ie.css" /> | ||
+ | <![endif] | ||
+ | ]]> | ||
+ | </xsl:comment> | ||
+ | </source> | ||
+ | [[Категория:Верстка в XSLT]] |
Текущая версия на 20:02, 4 июня 2013
Задача
Добавить в 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>