1

現在、EPUB ファイル用のインタラクティブな HTML5 ウィジェットに取り組んでいます。通常、これらのことを行うために jQuery を使用します。

EPUB マニフェストに XML データ ファイルを含め、標準の jQuery および AJAX メソッドを使用して XML ファイルから小さな HTML5 ウィジェットにデータを読み込ませることができれば、現在のプロジェクトははるかに簡単になります。

EPUB ファイル内で実行するのが困難な Web アプリケーションに対して、これを何千回も実行しました。

私の主な質問は次のとおりです。

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");
    }
);

iBooks でテストすると、エラー アラートが表示され続けます。しかし、デスクトップの Safari でテストすると、すべて正常に動作します。

どんな援助も大歓迎です。

ありがとう!

4

1 に答える 1

1

jQueryの主な目的の1つがブラウザー間の互換性である場合、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;
    };
}())
;
于 2013-01-05T11:14:02.073 に答える