2012-04-27 16 views
1

XSLTのスクリプトでタグ間にパラメータを扱うことは可能ですか?<script type=text/javascript>....</script>.可能であれば、誰かが例を挙げることができます。ありがとう。xsltのjavascriptスクリプトにパラメータを渡す

+0

あなたは* * ''または変換中の*コール* javascript関数へと、さらなるこの呼び出しの結果を使用し、同じことを生成する必要があります変換? –

答えて

2

あなたは2つのことの間で混乱していると思います:XSLTはHTML/javascriptを生成するために(この場合)使用されるものです - HTML/javascriptを生成したらブラウザで受信してからjavascriptを実行できます。私は、XSLTがjavascript関数に変数を "渡す"という概念を知らない。

私の推測では、あなたはXSL内のJavaScriptの主な「身体」に置く場合...あなたはこのXSLTような何かをしたい

<script type="text/javascript"> 
    var myVar = "<xsl:value-of select="XPATHVALUE"/>"; 
    <xsl:text disable-output-escaping="yes"><![CDATA[ 
    function myFunc(){ 
     alert(myVar); 
    } 
    ]]></xsl:text> 
</script> 

です:テキスト要素を、それはあなたが出て巻き込まないことを意味します予約文字(< >など)を使用します。

いるmyFuncを呼び出すことを意味し、このようなものとして終わるでしょうブラウザに設定されて生成されたHTML/Javascriptを更新に

<script type="text/javascript"> 
    var myVar = "hello world"; 
    function myFunc(){ 
     alert(myVar); 
    } 
</script> 

...

ように「こんにちは世界」を表示していましたMichaelKeyが強調表示されている場合、上記の< xsl:text >要素は不要です。これは... ...

<script type="text/javascript"> 
    var myVar = "<xsl:value-of select="XPATHVALUE"/>"; 
    <![CDATA[ 
    function myFunc(){ 
     alert(myVar); 
    } 
    ]]> 
</script> 
+1

disable-output-escapingは必要ありません。シリアライザは、それがスクリプト要素を生成していることを知っており、それに応じてコンテンツを処理する必要があります(そうでなければ、バグです)。 –

+0

私はそれを認識しませんでした。私はそれを無駄にするだろうが、メモリが正しく機能するならば、私はすべてのXSLT作業を行うVisual Studioで書式設定のエラーを表示するので、実行しようとしなかっただろう。 – freefaller

+0

@MichaelKayあなたが言うように、要素は不要ですが、<![CDATA [..]]>を使用する必要があります。そうでなければ、.NETで試みた変換は&,<、> – freefaller

関連する問題