Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将xsl变量值传递给javascript函数_Javascript_Xslt - Fatal编程技术网

如何将xsl变量值传递给javascript函数

如何将xsl变量值传递给javascript函数,javascript,xslt,Javascript,Xslt,我试图将xsl变量值传递给javascript函数 我的xsl变量 <xsl:variable name="title" select="TITLE" /> 我像这样传递值 <input type="button" value="view" onclick="javascript:openPage('review.html?review=$title')" /> 我用不同的方法尝试了上面的代码,但是我得到了错误 <script type="text/ja

我试图将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+'\')" />

函数jsV(){
var jsVar='';
返回jsVar;
}
我也试过了
有没有别的办法或者我做得不对?

你忘了{}:

<input type="button" value="view" onclick="javascript:openPage('review.html?review={$title}')" />

以下是一个如何执行此操作的工作示例:

此转换:

<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文档!):


我是一个头衔
生成所需的正确结果

<input type="button" value="view" 
 onclick="javascript:openPage('review.html?review=I am a title')"/>


解释:使用(属性值模板)。

也可以通过执行以下操作从同一文件中的JavaScript代码访问xsl变量:


函数getTitle(){
var title=;
返回标题;
}

它不显示任何值。花括号内的任何内容都不会出现。非常感谢。。很好!。。。在测试代码之前,我正在玩这个变量。我做了一些更改,但我忘记了,这就是它不起作用的原因。您没有“将XSLT变量的值传递给Javascript函数”。XSLT没有调用Javascript。它正在生成带有嵌入式Javascript的HTML。您需要了解这个处理模型!知道了。非常感谢你。我不确定是否可以更改问题的标题,但我希望可以。
<input type="button" value="view" 
 onclick="javascript:openPage('review.html?review=I am a title')"/>
<script type="text/javascript">
    function getTitle() {
        var title = <xsl:value-of select="$title"/>;
        return title;
    }
</script>