XSL文档中的JavaScript For循环

时间:2010-04-13 14:59:45

标签: javascript xslt

我在XSL文档中使用JavaScript for循环时遇到了一个特殊问题。在这里:

我在点击CheckBox时调用JavaScript函数。以下是我想在javascript函数::

中做的事情
function SeelctAll()
{
     for(var cnt = 0; cnt < 100; cnt++)
     {
          //Business Logic here.
     }
}

为此,我将<替换为&lt;并尝试了。我收到一条错误,上面写着“对象预期”。然后我将整个函数包含在<![CDATA[部分中并尝试。我仍然得到了相同的“Obejct Expected”错误。

对此的任何帮助都会非常明显。

3 个答案:

答案 0 :(得分:0)

我们需要在这里看到更多代码,以及您正在使用什么过程将XSL文档中的JavaScript转换为HTML页面中的JavaScript以供执行。虽然&lt;转义和CDATA部分都是在XML文件中包含带外字符的有效方法,但当您到达浏览器端时,您可能将页面处理为HTML而不是本机XML,此时规则是不同的,您的HTML生成需要小心,以确保浏览器可以接受XSL转换的输出。

通过完全避免它,看看它是否真的是导致麻烦的<而不是被忽略的“商业逻辑”。例如。将其替换为100>cnt

(在任何情况下,通常你都希望将脚本逻辑保留在HTML页面的主体之外。最好在外部脚本中,你不必担心将它嵌入另一个标记的规则。语言。)

答案 1 :(得分:0)

适合我:

<xsl:stylesheet 
  version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>
  <xsl:output method="html" encoding="utf-8" indent="yes"/>

  <xsl:template match="/">
    <html>
      <head>
        <script type="text/javascript"><![CDATA[
          function SelectAll() {
            var x = 0;
            for(var cnt=0; cnt<100; cnt++) {
              x = cnt; // whatever
            }
            alert(x);
          }            
          ]]>
        </script>
      </head>
      <body>
        <div onclick="SelectAll()">Click!</div>
      </body>
    </html>
  </xsl:template>
</xsl:stylesheet>

这会产生:

<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <script type="text/javascript">
    function SelectAll() {
      var x = 0;
      for(var cnt=0; cnt<100; cnt++) {
        x = cnt; // whatever
      }
      alert(x);
    }
  </script>
</head>
<body>
  <div onclick="SelectAll()">Click!</div>
</body>
</html>

它会提醒预期的“99”。

答案 2 :(得分:0)

我认为这个问题要简单得多。您将函数命名为SeelctAll()。我认为你说的是​​错误的功能。