我正在IOS上创建一个ePub阅读器。基本上,我使用uiwebview来加载xhtml文件。 每次翻页时,我需要用uiwebview加载文件,然后调用javascript滚动到右偏移量。这是一个问题,一些xhtml文件很大(如大于2MB),因此加载时间太长。因此翻页动画并不那么流畅。 所以我想我可以用uiwebviewA加载一次xhtml,并且每次翻页时,我都会创建另一个uiwebviewB并从uiwebviewA中获取所需的html内容(如第二页)。这样,我可以将html限制为小尺寸,并且页面转动动画应该平滑。 我的问题是,是否有任何开源的JavaScript库可以完成这项工作? 任何意见是赞赏!Javascript拆分html内容
回答
没有有意义的,明确定义的方法来按照您所描述的方式拆分HTML文档。你混淆了两个截然不同的东西:(1)将渲染分成页面大小的块,(2)拆分HTML源代码。换句话说,没有一种算法能够想象将一个HTML文件分割成多个片段,这样渲染片段的顺序组合就与原始HTML文件的渲染相同。换句话说,为了弄清楚如何分割HTML,假设它甚至是可能的,你必须做很多或所有涉及渲染页面的工作,这将失去整个目的。
您应该放弃分割HTML的概念。电子书阅读器的所有分页都是基本上呈现整个HTML文档,然后“窗口化”和“剪辑”和“抵消”,或者在某些情况下使用CSS区域。
如果我明白你想要做什么,我可以想到有几种选择。
通过预分裂他们早在 工作流程降低输入HTML文件的大小。例如,在我知道的一个项目中,源(X)HTML文件有一些额外的标记,告诉预处理器在需要时将它们分割成单独的文件,在这种情况下,这是对电子书阅读器的解决方法无法正确使用CSS
page-break-*
属性。预先计算下一页的渲染为图形,并使用 进行翻页。
如上所述,重新考虑您的书中每个页面重新加载整个HTML文档的架构。如果仅仅是翻页效果,那么导致你想要这样做,然后放弃它。
考虑到许多电子书阅读器提供滚动模式,做 不需要分页,有的(如向日葵阅读器)提供只有 滚动模式,这实际上是一些读者喜欢的东西。 您可以放出滚动版本,然后在版本2中进行分页。
非常感谢您的解决方案。这些对我非常有帮助! – user418751
你知道任何提供滚动模式的开源阅读器吗?这对我有帮助并节省我的时间。提前致谢! – user418751
你真的应该检查:
而且这个演示是不正是你问什么:
http://cubiq.org/dropbox/SwipeView/demo/ereader/
它需要一个文本(书)和对文本进行分页以适应屏幕大小。
我在Android和iOS上测试了这个演示,效果很棒!
- 1. 拆分内容=值
- 2. 拆分HTML内容显示更多内容
- 3. javascript:按类拆分html
- 4. scala.xml.parsing.ConstructingParser拆分文本内容
- 5. 拆分Combobox的内容
- 6. JavaScript - 插入到HTML的内容部分
- 7. UITableView将内容拆分成部分
- 8. 场的拆分内容分成2场
- 9. 拆分股利内容分成两行
- 10. JQuery/Javascript和分裂内拆分?
- 11. Perl - 通过“table”标记及其内容拆分html代码
- 12. 网站数据抓取:拆分HTML内容
- 13. 将CSV列内容拆分为多列
- 14. 将内容拆分为两列 - Wordpress
- 15. SQL - 基于列内容的拆分表
- 16. 顺序按拆分列内容
- 17. HTML内容加载在JavaScript
- 18. 设置HTML内容的JavaScript
- 19. Javascript替换html的内容
- 20. 输出JavaScript的HTML内容
- 21. 在保留HTML布局的情况下将HTML文本内容拆分为组
- 22. 在html/css中“硬”字拆分/拆分
- 23. Javascript拆分(Bug?)
- 24. 拆分在JavaScript
- 25. HTML内容部分解析
- 26. TinyMCE不分析html内容
- 27. FreeIPA拆分容器
- 28. C#拆分容器
- 29. 拆分HTML文件
- 30. 拆分html表单?
jQuery Mobile处理您的问题非常好,它使用一个HTML文件并在其中定义了多个页面,因此请尝试:[JQM](http://jquerymobile.com/) –
“什么是页面”它很难检测到页面上的内容。不同的字体,大小,图像,布局,间距,内容等 – epascarello
我使用-webkit-columns将html内容格式化为列,所以页面意味着列 – user418751