我有一段用XSL填充表的代码。我必须修改它以集成本地化。我只是在JS端进行函数调用来进行本地化。但是我无法在我的XSL中运行该JS代码。这是我尝试过的:
<xsl:when test="@name != ''">
<tr>
<td>
<script>
localizationResources.get('
</script>
<xsl:value-of select="@name"/>
<script>
')
</script>
</td>
<td>
<xsl:value-of select="@value"/>
</td>
</tr>
</xsl:when>
我的目标是将表格行作为名称和值对,通过我的javascript调用()翻译 name localizationResources.get(KEY_FOR_TRANSLATION))
编辑:这有效:
<td>
<script> alert(decodeURI('<xsl:value-of select="@value"/>')) </script>
</td>
然而,这不是:
<td>
<script> decodeURI('<xsl:value-of select="@value"/>') </script>
</td>
答案 0 :(得分:0)
您无法在XSLT运行时(例如,这是您尝试过的)运行JavaScript代码,也就是说,XSLT转换过程的一部分。但是,您当然可以将JavaScript包含在由XSLT生成的HTML文件中。然后,HTML文件中的JavaScript通常会在浏览器中执行。
我建议从一些非常简单的测试开始,如果你的JavaScript代码是在你希望拥有它的位置执行的,并且是否通过XSLT传递的参数得到了纠正。类似的东西:
<td>
<script>
alert('<xsl:value-of select="@name"/>');
</script>
</td>
直接用这种方式编写JavaScript代码的唯一缺点就是处理JavaScript中的大于和小于运算符。你必须在XSLT中逃避它们。