2013-01-05 2 views
1

현재 EPUB 파일 용 대화 형 HTML5 위젯을 만들고 있습니다. 우리는 일반적으로 이러한 작업을 수행하기 위해 jQuery를 사용합니다.EPUB에 데이터 XML 파일을 포함하고 jQuery와 AJAX로 읽을 수 있습니까?

EPUB 매니페스트에 XML 데이터 파일을 포함시킨 다음 표준 HTML/Widget을 표준 jQuery 및 AJAX 메소드를 사용하여 XML 파일의 데이터로 읽으면 현재 프로젝트가 훨씬 쉬울 것입니다.

웹 응용 프로그램의 경우 EPUB 파일 내부에서이 작업을 수천 번 수행했습니다.

내 주요 질문은 다음과 같습니다.

1)이 경우에도 가능합니까?

2) package.opf에서 데이터 XML 파일을 선언 할 때 사용할 적절한 미디어 유형은 무엇입니까?

나는 다음과 같은 코드를 사용하고 있습니다 : 나는 북스에서 테스트 할 때

$.ajax({ 
    type: "GET", 
    async: false, 
    cache: false, 
    url: "data/test.xml", 
    dataType: "xml", 
    error: function() { 
     alert("ERROR: The table data could not be read..."); 
    }, 
    success: function(objFileContents) { 
     alert("SUCCESS"); 
    } 
); 

오류 경고가 표시 유지합니다. 그러나 데스크탑에서 Safari로 테스트하면 모든 것이 잘 작동합니다.

모든 도움을 주시면 대단히 감사하겠습니다.

감사합니다.

+0

및 답변 여기에 귀하의 질문에 대답 않았거나,하지 않았다, 그리고 때문에 당신은 그들을 그들에게 응답하거나 수락하지 않았습니다 ...? ?? –

답변

1

jQuery의 주요 목적 중 하나가 크로스 브라우저 호환성 인 경우 jQuery와 같은 거대한 라이브러리를 사용하는 것이 EPUB 내부에 있는지 궁금해해야합니다. 표준 ECMA5/XHTML5 기술을 사용하는 것이 좋습니다.

어쨌든 XML 파일을 EPUB에 포함하고 읽을 수 있습니다. 너는 어떤 어려움을 겪고 있는가? 분명한 것은 경로를 확인하는 것입니다. 예를 들어 ../data/text.xml이 아니어야합니까? 다른 미디어 유형이 모두 동일하면 text/xml 또는 application/xml을 사용하십시오.

일부 독자는 읽기가 성공한 경우에도 알 수없는 이유로 0 값을 반환 할 수 있습니다. 이는 jQuery가 오류를보고하는 것을 속일 수 있습니다. 하지만 기본 XMLHttpRequest 객체의 responseText 또는 responseXml 필드에 액세스 할 수 있어야합니다.

나는 다음과 같은 코드를 사용하고 잘 작동합니다 :

read=(function(){ 
    var r=new XMLHttpRequest(); 
    return function(src){ 
     r.open('GET', src, false); 
     r.send(); 
     if(r.status!=200 && r.status!=0){//E-books return 0 for some reason? 
      //REPORT ERROR 
      return null; 
     } 
     return r.responseText; 
    }; 
}()) 
; 
+0

기한이 지나서 죄송합니다. 그렇습니다, 이것은 저를 위해 또한 잘 작동했습니다. 그것은 epub가 싫어하는 jQuery ajax 구현의 무언가 여야합니다. 고맙습니다! – Mark