2010-06-14 93 views
3

我正在使用CDATA来转义脚本,但在IE8的调试器中,我仍然在for循环条件中收到此消息:“Expected”)'“。我假设它仍然认为;在由CDATA生成的<正在结束循环条件。在我的XSL模板如何在XSL中的javascript for循环中工作?

原创剧本:转型(从IE8调试器)后产生

<script type="text/javascript" language="javascript"> 
<![CDATA[ 
    function submitform(form){ 
     var oErrorArray = new Array(); 
     for (i=0;i<form.length;i++) 
     eval("oErrorArray["+i+"]=oError"+i); 
     var goForm = true; 
     for(i=0;i<form.length;i++) { 
      oErrorArray[i].innerHTML = ""; 
      if(form[i].value="")){ 
       oErrorArray[i].innerHTML = "Error - input field is blank"; 
       goForm = false; 
      }   
     } 
     if(goForm == true) form.submit(); 
    } 
    function resetform(form){ 
     form.reset(); 
    } 
]]> 
</script> 

代码

<script type="text/javascript" language="javascript"> 
    function submitform(form){ 
     var oErrorArray = new Array(); 
     for (i=0;i&lt;form.length;i++) 
     eval("oErrorArray["+i+"]=oError"+i); 
     goForm = true; 
     for(i=0;i&lt;form.length;i++) { 
      oErrorArray[i].innerHTML = ""; 
      if(form[i].value="")){ 
       oErrorArray[i].innerHTML = "Error - input field is blank"; 
       goForm = false; 
      }   
     } 
     if(goForm == true) form.submit(); 
    } 
    function resetform(form){ 
     form.reset(); 
    } 
</script> 

错误的IE8调试器报告:预计 ')' 登录。 xml,line 29 character 30(它紧跟在第一个“form.length”之后)

+0

可能重复(http://stackoverflow.com/questions/435005/xslt-javascript-and-unescaped-html-entities) – Kobi 2010-06-14 05:31:54

回答

2

您需要明确禁用输出转义。

http://www.w3.org/TR/xslt#disable-output-escaping

[XSLT,JavaScript和HTML转义实体]的
+1

谢谢!这工作完美。我只是删除了CDATA标签,并在不需要的地方插入“ <”。 – Kyle 2010-06-14 05:55:28

+0

我认为有更好的解决方案。 – KooiInc 2010-06-14 05:58:46

+0

这在IE中可用,但不适用于Chrome – shorif2000 2017-06-02 15:56:18