Добавление комментария в html-вывод из xslt-шаблонизатора — различия между версиями

Материал из Umicms
Перейти к:навигация, поиск
Строка 50: Строка 50:
  
  
Для вывода '''[if IE 6]''' используем тег '''<xsl:text>''', в строке '''<'''[endif] заменяем символ '''<''' на сущность '''& lt;'''
+
Для вывода '''[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_integral_ie.css" />
 +
<![endif]
 +
    ]]>
 +
</xsl:comment>
 +
</source>

Версия 11:24, 8 июня 2011

Задача

Добавить в 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>&lt;![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_integral_ie.css" />
	<![endif]
    ]]>
</xsl:comment>