我正在尝试将xsl变量值传递给javascript函数。
我的xsl变量
<xsl:variable name="title" select="TITLE" />
我正在传递像这样的值
<input type="button" value="view" onclick="javascript:openPage('review.html?review=$title')" />
我以不同的方式尝试了上面的代码,但是我得到了错误。
<script type="text/javascript">
function jsV() {
var jsVar = '<xsl:value-of select="TITLE"/>';
return jsVar;
}
</script>
<input type="button" value="view" onclick="javascript:openPage('javascript:jsV()')" />
I also tried
<input type="button" value="view" onclick="javascript:openPage('review.html?review='\''
+$title+'\')" />
有替代方式还是我做得不对?
答案 0 :(得分:4)
你忘记了{}:
<input type="button" value="view" onclick="javascript:openPage('review.html?review={$title}')" />
答案 1 :(得分:4)
以下是如何执行此操作的工作示例:
此转化:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="/*">
<xsl:variable name="vTitle" select="TITLE"/>
<input type="button" value="view"
onclick="javascript:openPage('review.html?review={$vTitle}')" />
</xsl:template>
</xsl:stylesheet>
应用于此XML文档(未提供XML文档!):
<contents>
<TITLE>I am a title</TITLE>
</contents>
生成想要的正确结果:
<input type="button" value="view"
onclick="javascript:openPage('review.html?review=I am a title')"/>
解释:使用 AVT (属性值模板)。
答案 2 :(得分:3)
通过执行以下操作,还可以从同一文件中的JavaScript代码访问xsl变量:
<xsl:variable name="title" select="TITLE"/>
<script type="text/javascript">
function getTitle() {
var title = <xsl:value-of select="$title"/>;
return title;
}
</script>