2010-04-13 7 views
2

XSL 문서에서 JavaScript for 루프를 사용하는 것과 관련하여 특이한 문제가 있습니다. 여기에 간다 :XSL 문서의 JavaScript For 루프

나는 CheckBox 클릭시 JavaScript 함수를 호출한다. 다음은 제가 자바 스크립트 함수에서 할 ::이 들어

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

내가 &lt;<을 대체하려고 싶어 것입니다. "Object Expected"라는 오류가 나타납니다. 그런 다음 전체 기능을 <![CDATA[ 섹션 안에 넣고 시도했습니다. 여전히 동일한 "Obejct Expected"오류가 발생합니다.

이 문제에 대한 도움은 매우 크게 도움이 될 것입니다.

+0

문제에 대한 자세한 내용이 필요하다고 생각합니다. XSL 문서의 관련 부분을 제공 할 수 있습니까? '// Business Logic here' 부분은 무엇입니까? 그것은 문제가 발생한 곳인 것처럼 보이기 때문에 관련성도 있습니다. –

답변

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"경고합니다.

+0

루프 내부에 경고문이 생겼습니다. BTW 내가 여러 xsl : 템플릿이 있고 난 태그가 없어. 직접

태그가 있습니다. – Nagendra

+1

@Nagendra : 그리고 ... 그 대답은 무엇을 의미합니까? 네가 제대로 작동하지 않는다. 차이점을 발견하고 결론을 이끌어냅니다. – Tomalak

+1

답장을 보내 주셔서 감사합니다. 차이점을 발견하고 내 코드의 Nagendra

0

여기에서 좀 더 많은 코드를 살펴보고 XSL 문서의 JavaScript를 HTML 페이지의 JavaScript로 변환하여 실행하는 데 필요한 프로세스를 살펴 보겠습니다. &lt; 이스케이프 처리와 CDATA 섹션이 둘 다 XML 파일에 대역 외 문자를 포함하는 유효한 방법이지만 브라우저 측에 도달하면 native-XML이 아닌 HTML로 페이지를 처리 ​​할 가능성이 높습니다. 규칙이 다르므로 XSL 변환의 출력을 브라우저가 수용 할 수 있도록 HTML 생성에주의를 기울여야합니다.

완전히 피함으로써 '생략 된'비즈니스 로직보다는 문제를 일으키는 것이 실제로 <인지 확인하십시오. 예. 100>cnt과 같은 것으로 교체하십시오.

(대개 HTML 페이지 본문에서 스크립팅 논리를 없애고 싶습니다. 외부 스크립트에서 스크립트 논리를 유지하는 것이 좋으며 다른 스크립트에 삽입하는 규칙에 대해 신경 쓸 필요가 없습니다. 마크 업 언어) 나에게

0

나는이 문제가 훨씬 간단하다고 믿습니다. 함수 이름을 SeelctAll()으로 지정했습니다. 나는 당신이 잘못된 기능을 부르고 있다고 생각합니다.