2010-06-14 91 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