1

是否可以在脚本位于标签之间的 XSLT 中处理 javascript 函数的参数<script type=text/javascript>....</script>.如果可能的话,有人可以举个例子。谢谢。

4

1 回答 1

2

我认为您对这两件事感到困惑:XSLT 是用来(在这种情况下)生成 HTML/javascript 的东西——一旦浏览器接收到生成的 HTML/javascript,就可以运行 javascript。我不知道 XSLT 将变量“传递”给 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>

如果您将 javascript 的主要“正文”放在 xsl:text 元素中,这意味着您不会使用保留字符(例如 < > 等)被抓到。

设置到浏览器的生成的 HTML/javascript 最终会像这样,这意味着调用 myFunc 将显示“hello world”...

<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>
于 2012-04-27T09:03:50.593 回答