0

XSL から Javascript に文字列を渡そうとしています。整数を渡すことはできましたが、文字列を受け入れないようです。以下は、私のコードの基本的な構造です。「テスト 1」から「テスト」を削除すると、番号 1 のアラートボックスが表示されます。ただし、内部にテキストがあると、アラートボックスは表示されません。

XML:

<TEST>
  <TITLE>Test 1</TITLE>
<TEST>

<TEST>
  <TITLE>Test 2</TITLE>
<TEST>

XSL:

<xsl:for-each select="//TEST">
<xsl:call-template name="TEST_TEMPLATE"/>
</xsl:for-each>

...

<xsl:template name="TEST_TEMPLATE">

<script type="text/javascript">
<![CDATA[var title = ]]><xsl:value-of select="./TITLE" /><![CDATA[;

alert(title);]]>
</script>

あなたの助けに感謝します。

ありがとう!

4

2 に答える 2

2

「XSL から Javascript に文字列を渡す」わけではありません。XSLT コードは HTML を生成していますが、その一部はたまたまスクリプト要素です。生成しているスクリプト要素に次のテキストが含まれていることが簡単にわかります。

var title = テスト 1;

これは、実行されると明らかに何もしません。

于 2012-04-24T22:19:57.697 に答える
1

タイトルの前後にクォートが必要です。あなたが持っているテンプレートは文字列の値を出力するだけですが、有効なJavaScriptであるためにはqoutesでなければなりません. 私はこれがうまくいくと思います:

<xsl:template name="TEST_TEMPLATE">

<script type="text/javascript">
<![CDATA[var title = "]]><xsl:value-of select="./TITLE" /><![CDATA[";

alert(title);]]>
</script>
于 2012-04-24T20:09:59.667 に答える