Рендеринг JavaScript в XSL - PullRequest
       0

Рендеринг JavaScript в XSL

1 голос
/ 17 ноября 2011

Мне нужно, чтобы div имел следующий связанный с ним Javascript:

onclick="resize('Value1', 'Value2', 'Value3', 'Value4')"

В моем XSL var1, var2, var3, var4 содержит строки Value1, Value2, Value3, Value4 для текущего узла.Итак, используя xsl:attribute name='onclick', я бы хотел связать JS с div.Проблема, с которой я сталкиваюсь, заключается в том, что в XSL можно экранировать одинарные кавычки, чтобы отобразить их на выходной странице (я так думаю).

Есть идеи, как это сделать?

РЕДАКТИРОВАТЬ: МойXSL-код для получения строки вызова функции javascript onclick:

<xsl:value-of select="concat('resize(', '&apos;', $var1, '&apos;', ',', '&apos;', $var2, '&apos;', ',', '&apos;', $var3, '&apos;', ',', '&apos;', $var4, '&apos;', ')'"/>

и IE6 [Да, это IE6, на моей машине установлена ​​XP с IE6 :(] показывает ошибку:

Expression expected. concat('resize(', ''', $var1, ''', ',', ''', $var2, ''', ',', ''', $var3...

1 Ответ

2 голосов
/ 17 ноября 2011

Достаточно забавно, что, похоже, нет действительно хорошей escape-последовательности для одинарных кавычек внутри значений атрибутов.Вы должны иметь возможность:

    <xsl:attribute name="onClick">resize('<xsl:value-of select="$var1"/>','<xsl:value-of select="$var2"/>','<xsl:value-of select="$var3"/>', '<xsl:value-of select="$var4"/>')</xsl:attribute>

По крайней мере, IntelliJ это нравится.Это немного затянуто, но его можно безопасно использовать даже со старыми процессорами XSLT, такими как IE6.У меня нет IE6 здесь, чтобы проверить это, хотя.Btw.IE6 является несколько устаревшей технологией, поэтому вам действительно нужно от нее избавиться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...