0

私はこれに慣れていないので、このアプローチが引数を渡す正しい方法であるかどうかはわかりません。これを修正するか、これを行う別の方法を提案してください。ノード値を xslt から javascript 関数に渡したいです。

これは私のXMLファイルです:

   <?xml version="1.0"?>
   <?xml-stylesheet type="text/xsl" href="sample.xsl"?>
   <One>
       <Two>
           HelloWorld
       </Two>
   </One>

これは xslt ファイルです:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:xlink="http://www.w3.org/1999/xlink">
<xsl:variable name="url" select="One/Two"/>
<xsl:template match="/">
<html>
    <script>
        function Myclick(vara)
        {
            alert(vara);            
        }
    </script>
    <xsl:for-each select="One">
        <a>
            <xsl:attribute name="href">
                http://www.google.com
            </xsl:attribute>
            <xsl:attribute name="onClick">                      
                alert($url);
                Myclick($url);
            </xsl:attribute>            
            <xsl:value-of select="Two"/>
        </a>
    </xsl:for-each>
</html>
</xsl:template>

4

2 に答える 2

1

XSLTコードはJavascript関数を呼び出していません。HTMLを生成しているだけです。

生成したいHTMLを知っていますか?もしそうなら、私たちに教えてください、そして私たちはあなたがそれを生成するのを手伝うことができます。そうでない場合は、XSLTコードを記述しようとしてはいけません。生成する出力がわかるまで、プログラムの記述を(任意の言語で)開始しないでください。

于 2012-11-04T09:35:45.013 に答える
0

これを試して:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:xlink="http://www.w3.org/1999/xlink">
    <xsl:variable name="url" select="One/Two"/>
    <xsl:template match="/">
        <html>
            <head>
                <script>
                    function Myclick(a)
                    {
                        var href = a.getAttribute('href');
                        alert(href);
                        location.href= href;
                    }
                </script>
            </head>
            <body>
                <xsl:for-each select="One">
                    <a>
                        <xsl:attribute name="href">
                            http://www.google.com
                        </xsl:attribute>
                        <xsl:attribute name="onClick">
                            javascript:Myclick(this); return false;
                        </xsl:attribute>
                        <xsl:value-of select="Two"/>
                    </a>
                </xsl:for-each>
            </body>
        </html>
    </xsl:template>
</xsl:stylesheet>
于 2012-11-04T07:20:25.313 に答える