我开发了一个库(我将很快在 BSD/MIT 许可下发布)来模拟 Apple iBooks 中可重排 EPUB3 电子书的媒体覆盖支持(也称为“大声朗读”或“SMIL”)。 (我提醒您,iBooks 仅在 FXL 布局模式下支持 MO,这与 Readium 或 Azardi 不同。)
当当前事件的 SMIL 片段离开当前页面并转到下一页时,我想让 iBooks“翻页”。为此,我需要:
1) 意识到事件片段已经超出了当前页面,并且 2) 强制翻页。
第一点可以(麻烦地)通过计算 SMIL 元素偏移量来实现;我坚持执行 2)。
在 Apple 的 ibooks.js 中没有任何帮助,并且注入(inject) TouchEvent 似乎不起作用,因为它们被报告给事件文档而不是“主机 WebKit”。
有什么想法可以让 iBooks 从当前显示的 EPUB3 可重排电子书加载的 JS 中翻页吗?
编辑:在这个问题之后,我在这里发布了上述 JS:https://github.com/pettarin/rb_smil_emulator
最佳答案
如果您正在谈论进入下一个 XHTML 文档,那么简单地做就足够了
location.href="nextpage.xhtml";
如果您正在谈论在同一个 XHTML 文档中移动,那么您能做的最好的事情就是使用 ID 元素以某种方式识别该页面中的位置,然后跳转到它:
location.href="#id";
据我所知,没有任何方法可以简单地执行/模拟翻页。
关于javascript - 使用嵌入在显示的 EPUB3 电子书中的 Javascript 使 iBooks 翻页(在回流模式下),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16922631/