0

我正在尝试将字符串从 XSL 传递给 Javascript。我能够传递整数,但它似乎不接受字符串。以下是我的代码的基本结构。如果我从“测试 1”中删除“测试”,我会得到编号为 1 的警报框。但是一旦里面有文本,警报框就不会出现。

XML:

<TEST>
  <TITLE>Test 1</TITLE>
<TEST>

<TEST>
  <TITLE>Test 2</TITLE>
<TEST>

XSL:

<xsl:for-each select="//TEST">
<xsl:call-template name="TEST_TEMPLATE"/>
</xsl:for-each>

...

<xsl:template name="TEST_TEMPLATE">

<script type="text/javascript">
<![CDATA[var title = ]]><xsl:value-of select="./TITLE" /><![CDATA[;

alert(title);]]>
</script>

非常感谢您的帮助。

谢谢!

4

2 回答 2

2

您不是“将字符串从 XSL 传递到 Javascript”。您的 XSLT 代码正在生成 HTML,其中一部分恰好是脚本元素。很容易看出您正在生成的脚本元素包含以下文本:

var 标题 = 测试 1;

在执行时,这显然不会做任何有用的事情。

于 2012-04-24T22:19:57.697 回答
1

你需要在标题周围加上引号。您刚刚输出字符串的值的模板,但它必须在 qoutes 中才能成为有效的 javascript。我认为这会起作用:

<xsl:template name="TEST_TEMPLATE">

<script type="text/javascript">
<![CDATA[var title = "]]><xsl:value-of select="./TITLE" /><![CDATA[";

alert(title);]]>
</script>
于 2012-04-24T20:09:59.667 回答