【问题标题】:Possible to Include Data XML File in EPUB and Read it wih jQuery and AJAX?可以在 EPUB 中包含数据 XML 文件并使用 jQuery 和 AJAX 读取它吗?
【发布时间】:2013-01-05 00:26:30
【问题描述】:

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

如果我可以在 EPUB 清单中包含一个 XML 数据文件,然后让我的 HTML5 小部件使用标准 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 xml-parsing epub


【解决方案1】:

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

无论如何,您当然可以在 EPUB 中包含一个 XML 文件并阅读它。你有什么困难?显而易见的是检查路径。例如,您确定它不应该是../data/text.xml 吗?对于媒体类型,在其他条件相同的情况下,只需使用text/xmlapplication/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 ajax 实现中 epub 不喜欢的东西。谢谢!
猜你喜欢
  • 2022-01-15
  • 2020-09-12
  • 1970-01-01
  • 2011-07-10
  • 1970-01-01
  • 1970-01-01
  • 2014-10-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多