Обратите внимание, что вы не вызываете внешнюю функцию javascript в вашем XSLT. Вы просто выводите текст, который будет обработан как Javascript при обработке результирующего вывода в браузере.
В любом случае вам нужно обернуть соответствующий текст javascript в xsl:text
, чтобы не допускать разрывов строк. (Пробелы не будут удалены в XSLT, если в одном узле есть непробельные символы)
<xsl:element name="a">
<xsl:attribute name="href">
<xsl:text>javascript:OpenPopupDetailsTexte('<xsl:text>
<xsl:value-of select="@href"/>
<xsl:text>', 1);</xsl:text>
</xsl:attribute>
Или, что еще лучше, используйте Шаблоны значений атрибутов ...
<a href="javascript:OpenPopupDetailsTexte('{@href}', 1);">
Таким образом, выражения в фигурных скобках представляют собой выражение для оценки, а не для вывода буквально. (Также обратите внимание, что нет необходимости использовать xsl:element
для создания элемента, когда имя будет статичным).