是否可以在EPUB中包含数据XML文件,并使用jQuery和AJAX读取?

是否可以在EPUB中包含数据XML文件,并使用jQuery和AJAX读取?,jquery,xml-parsing,epub,Jquery,Xml Parsing,Epub,我目前正在为一个EPUB文件开发一个交互式HTML5小部件。我们通常使用jQuery来做这些事情 如果我可以在EPUB清单中包含一个XML数据文件,然后使用标准jQuery和AJAX方法从XML文件中读取数据,那么当前的项目就会容易得多 我已经为web应用程序做了一千次了,只是在EPUB文件中做起来有困难 我的主要问题是: 1) 这可能吗 2) 在package.opf中声明数据XML文件时要使用的正确媒体类型是什么 我正在使用以下代码: $.ajax({ type: "GET",

我目前正在为一个EPUB文件开发一个交互式HTML5小部件。我们通常使用jQuery来做这些事情

如果我可以在EPUB清单中包含一个XML数据文件,然后使用标准jQuery和AJAX方法从XML文件中读取数据,那么当前的项目就会容易得多

我已经为web应用程序做了一千次了,只是在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");
    }
);
当我在iBooks中测试时,错误警报一直显示。但是,当我在桌面上用Safari进行测试时,一切都正常

非常感谢您的帮助


谢谢

当jQuery的主要目的之一是跨浏览器兼容性时,人们不得不想知道在EPUB中使用jQuery这样的大型库有什么意义。我强烈建议使用标准的ECMA5/XHTML5技术

无论如何,您当然可以在EPUB中包含一个XML文件并读取它。你有什么困难?最明显的是检查路径。例如,您确定它不应该是
。/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;
    };
}())
;

当jQuery的主要目的之一是跨浏览器兼容性时,人们不得不想知道在EPUB中使用jQuery这样的大型库有什么意义。我强烈建议使用标准的ECMA5/XHTML5技术

无论如何,您当然可以在EPUB中包含一个XML文件并读取它。你有什么困难?最明显的是检查路径。例如,您确定它不应该是
。/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;
    };
}())
;

这里的答案回答了你的问题,或者没有回答,你没有回答或者接受它们是因为…??这里的答案回答了你的问题,或者没有回答,或者没有接受它们,你没有回答或者接受它们是因为…??对于迟到已久的回答,我很抱歉。是的,这对我也有用。epub一定不喜欢jQueryAjax实现中的某些东西。非常感谢。很抱歉,我们早该回复了。是的,这对我也有用。epub一定不喜欢jQueryAjax实现中的某些东西。非常感谢。