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

코드 : IE8 디버거에 의해보고

<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> 

오류 : 예상 ')'로그인. xml, 줄 29 자 30(첫 번째 "form.length"직후)

+0

가능한 중복 (http://stackoverflow.com/questions/435005/xslt-javascript-and-unescaped-html-entities) – Kobi

답변

2

명시 적으로 출력 이스케이프를 비활성화해야합니다.

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

[XSLT, 자바 스크립트와 이스케이프 HTML 엔티티]의
+1

감사합니다! 그것은 완벽하게 작동했습니다. 방금 CDATA 태그를 제거하고 " <"을 삽입해야합니다. – Kyle

+0

나는 더 나은 해결책이 있다고 생각한다. – KooiInc

+0

IE에서는 작동하지만 크롬에서는 작동하지 않습니다. – shorif2000

관련 문제