2011-02-02 7 views
2

jQuery 코드가 있는데, 문서에 없으면 유효성 검사가 잘 통과되지만 오류가 발생합니다. 문제의 코드는 여기에 있습니다 :jQuery 코드에서 W3 xHTML 유효성 검사 오류!

$.ajax({ 
     type: "GET", 
     url: "data.xml", 
     dataType: "xml", 
     success: function(xml) { 

      //Update error info 
      errors = $(xml).find("Errors").find("*").filter(function() 
      { 
       return $(this).children().length === 0; 
      }); 

      if (errors.length == 0) 
      { 
       statuscontent = "<img src='/web/resources/graphics/accept.png' alt='' /> System OK"; 
      } 
      else 
      { 
       statuscontent = "<img src='/web/resources/graphics/exclamation.png' alt='' /> "+errors.length+" System error"+(errors.length>1?"s":""); 
      } 

      $("#top-bar-systemstatus a").html(statuscontent); 

      //Update timestamp 
      $("#top-bar-timestamp").html($(xml).find("Timestamp").text()); 

      //Update storename 
      $("#top-bar-storename").html("Store: "+$(xml).find("StoreName").text()); 
     } 
    }); 

그래서 나는 확실히이 무엇이 잘못되었는지를 이해할 수 없다 모두가 잘 작동과 오류가 발생하지 않습니다 페이지의 다른 jQuery 코드의 부하가 있습니다. 이 페이지는 "라이브"가 아니므로 불행히도 링크를 제공 할 수 없습니다.

가 나열 오류는 여기

문서 유형은 요소 여기에 "IMG"

그리고 그것을 가리키는 코드 줄을 허용하지 않습니다이다 :

statuscontent = "<img src='/web/resources/graphics/accept.png' alt='' /> System OK"; 

statuscontent에 대한 문제가 있습니다.

+3

외부에 JavaScript 코드를 만드십시오. – Gumbo

+0

귀하의 hoster가 요청 제한으로 귀하를 처벌하지 않는 한 @Gumbo는 동의합니다. –

답변

9

XHTML을 사용하고 있기 때문입니다. 이는 유효성 검사기가 스크립트 태그 사이의 코드가 XML (XHTML은 XML의 하위 집합 임) 인 것처럼 실제로 작동하지 않으므로 실제로 유효하지 않습니다. 이것은 img 태그가 script 태그 안에 속하지 않으므로 잘못된 XHTML입니다.

유효성을 검사하려면 CDATA을 사용하여 스크립트 내의 모든 XML을 이스케이프 처리하십시오. HTML 5이에서

<script type="text/javascript"> 
// <![CDATA[ 

... your code 
// ]]> 
</script> 

는 문제가되지 않습니다. 새로운 웹 사이트를 만들면 HTML 5를 XHTML보다 추천합니다. 기존 웹 사이트를 수정하는 경우에만 XHTML을 사용하십시오.

+0

이렇게하면 파이어 버그가' Chris

+0

주석에 '

1

의 HTML 5 차이점을 참조하십시오.

다음은 거의 XHTML을 IE 호환성을위한 HTML로 제공하기 때문에 the comparable section in the XHTML Media Types document을 참조하십시오.

(그러면 99 년에 내가 공중에서 손을 던지거나, "HTML 인 척해야한다면 XHTML 사용의 요지는 뭐니?"하고 비명을 지르는 것입니다. HTML 4.01로 돌아 가기 (또는 HTML 5에)

+0

그건 내가 스크립트 오류를 ​​얻을 수 있지만 IE에서 어떤 이유로, W3 오류를 밖으로 정렬, 감사합니다. W3 유효성 검사 또는 Firebug 콘솔에서도 오류가 발생하지 않습니다. – Chris

관련 문제