2011-11-17 60 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

很高興工作! –