2011-11-17 36 views
1

我需要一个div有与它相关的以下JavaScript:呈现JavaScript在XSL

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... 
+0

您可以发布您的XSLT文件的相关部分以及您当前正在获取的输出吗?这将大大有助于解决您的问题。 –

+0

@JanThomä增加了相同的... – c0da

回答

2

滑稽足够似乎是属性值中的单引号没有真正的好转义序列,您应该能够去:

<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喜欢这个。它有点冗长,但即使使用像IE6这样的老式XSLT处理器也应该是安全的。虽然我没有IE6在这里检查它。顺便说一句。 IE6有点过时的技术,所以你应该真的摆脱它。

+0

它的工作。 :)而对于IE来说,我的这台机器有IE6。我使用最新的Firefox。只是在IE6上测试它。谢啦。 – c0da

+1

很高兴工作! –