可以使用纯HTML5、css和jQuery在Web浏览器中显示epub格式的图书吗?有谁能建议我怎么做吗?我还必须使其具有响应性,才能使其在iPad上运行。我知道,但我不知道如何使用超文本标记语言和Java脚本来阅读epub。
Epub可能包含一些数学函数,我也需要正确地显示它们。
bvjxkvbb1#
可以使用纯HTML5、css和jQuery在Web浏览器中显示epub格式的图书吗?
是的,这是可能的。
你为什么想要写一个epub阅读器?已经有很多人在那里了。
在任何情况下,你的问题都是一般问题的具体形式,能为epubs写一个电子书阅读器吗?显然,是的,它可能是写的。如果可以用一种语言或一种平台编写,也可以用另一种语言或另一种平台编写。
但实际上,你甚至不需要写阅读器,因为epubs只是一个罐头里的小网站。将epub文件解压缩到服务器上的某个位置,然后将浏览器导航到其中一个页面。瞧,你在看书。你想要目录表吗?导航到toc.xhtml或类似的文件,就可以了。
从一页翻到下一页怎么样?您需要知道页面应该以什么顺序显示。编写一个小型服务器组件,该组件解析文件,通常名为Conent.opf,并根据清单元素中文件的顺序发出一些具有前进和后退按钮以及用于显示内容的IFRAME的HTML。在此过程中,解析出标题和其他有趣的元数据。所有这些基本上都是epubjs所做的。
但我从您的问题中直觉地感觉到,您希望完全在客户端/浏览器端完成这项工作。嗯,这也已经完成了,以Readium的形式,你应该看看。使用您最喜欢的JS解压库(警告,可能会很慢)来解压缩epub文件,并编写一些JS来解析元数据并抛出页面,同样很可能是在iframe中,周围有一些Chrome。
但是,如果你想要分页输出,而这是人们对电子书阅读器的期望,该怎么办?这是事情开始变得毛骨悚然的地方,可能是一个退后一步,再次问问自己为什么要这样做的好地方。无论如何,如果您决定确实想要分页显示,那么您将需要弄清楚一些逻辑组合,包括窗口、边框、剪裁、偏移和/或使用“区域”来帮助您。一些电子书读者只是在这里平底船,并说,无论如何,滚动/非分页输出有什么问题?
但电子书读者还能做很多其他事情。例如,大多数允许您更改行距、边距或字体大小。这些用户设置如何与图书的css文件中的样式交互?一些读者采用解析CSS的方法(也有相应的库),然后重写它以获得您或您的用户想要的结果。
更喜欢应用程序而不是浏览器应用程序?把整个包在PhoneGap里。
要成为一个称职的读者,你将不得不担心很多很多其他的事情。就在我的头顶,这包括显示一些书指定的“指南”或“地标”,记住阅读位置和用户选项,以及可能提供某种书架功能。
尽管一些客户端电子书阅读器确实使用jQuery,但请记住,由于epub是HTML5/CSS2.5/JS,因此内容本身只能通过现代浏览器可靠地显示。但如果你有一个现代的浏览器,你不需要90%的头发在jQuery中,它是为跨浏览器兼容性而设计的。使用更轻量级的组件会更好,例如 Backbone.js 和/或下划线。您甚至可能不需要选择器库,因为您将拥有querySelector。
祝好运!
eblbsuwk2#
对于科学论文(期刊论文),有一个在浏览器上模拟EPUB阅读器的“最佳解决方案”。它可以使用XML(JATS)或XHTML(来自EPUB)内容。PubReader使用HTML5和CSS3中提供的特性和功能。
通过使用CSS和Java脚本,它实现了格式化、分页、导航和文本回流。整篇文章作为一个单独的HTML页面加载到浏览器中,并在本地处理分页等。请参见:
PS:PubReader类似于@torazaburo建议的EPUB-Readium browser interface。
q3aa05253#
是的,而且已经完成了。我列出了我找到的一对夫妇。
Html阅读器,并以html文件的形式工作:
呈现ePub的库:
3条答案
按热度按时间bvjxkvbb1#
可以使用纯HTML5、css和jQuery在Web浏览器中显示epub格式的图书吗?
是的,这是可能的。
你为什么想要写一个epub阅读器?已经有很多人在那里了。
在任何情况下,你的问题都是一般问题的具体形式,能为epubs写一个电子书阅读器吗?显然,是的,它可能是写的。如果可以用一种语言或一种平台编写,也可以用另一种语言或另一种平台编写。
但实际上,你甚至不需要写阅读器,因为epubs只是一个罐头里的小网站。将epub文件解压缩到服务器上的某个位置,然后将浏览器导航到其中一个页面。瞧,你在看书。你想要目录表吗?导航到toc.xhtml或类似的文件,就可以了。
从一页翻到下一页怎么样?您需要知道页面应该以什么顺序显示。编写一个小型服务器组件,该组件解析文件,通常名为Conent.opf,并根据清单元素中文件的顺序发出一些具有前进和后退按钮以及用于显示内容的IFRAME的HTML。在此过程中,解析出标题和其他有趣的元数据。所有这些基本上都是epubjs所做的。
但我从您的问题中直觉地感觉到,您希望完全在客户端/浏览器端完成这项工作。嗯,这也已经完成了,以Readium的形式,你应该看看。使用您最喜欢的JS解压库(警告,可能会很慢)来解压缩epub文件,并编写一些JS来解析元数据并抛出页面,同样很可能是在iframe中,周围有一些Chrome。
但是,如果你想要分页输出,而这是人们对电子书阅读器的期望,该怎么办?这是事情开始变得毛骨悚然的地方,可能是一个退后一步,再次问问自己为什么要这样做的好地方。无论如何,如果您决定确实想要分页显示,那么您将需要弄清楚一些逻辑组合,包括窗口、边框、剪裁、偏移和/或使用“区域”来帮助您。一些电子书读者只是在这里平底船,并说,无论如何,滚动/非分页输出有什么问题?
但电子书读者还能做很多其他事情。例如,大多数允许您更改行距、边距或字体大小。这些用户设置如何与图书的css文件中的样式交互?一些读者采用解析CSS的方法(也有相应的库),然后重写它以获得您或您的用户想要的结果。
更喜欢应用程序而不是浏览器应用程序?把整个包在PhoneGap里。
要成为一个称职的读者,你将不得不担心很多很多其他的事情。就在我的头顶,这包括显示一些书指定的“指南”或“地标”,记住阅读位置和用户选项,以及可能提供某种书架功能。
尽管一些客户端电子书阅读器确实使用jQuery,但请记住,由于epub是HTML5/CSS2.5/JS,因此内容本身只能通过现代浏览器可靠地显示。但如果你有一个现代的浏览器,你不需要90%的头发在jQuery中,它是为跨浏览器兼容性而设计的。使用更轻量级的组件会更好,例如 Backbone.js 和/或下划线。您甚至可能不需要选择器库,因为您将拥有querySelector。
祝好运!
eblbsuwk2#
对于科学论文(期刊论文),有一个在浏览器上模拟EPUB阅读器的“最佳解决方案”。它可以使用XML(JATS)或XHTML(来自EPUB)内容。PubReader使用HTML5和CSS3中提供的特性和功能。
通过使用CSS和Java脚本,它实现了格式化、分页、导航和文本回流。整篇文章作为一个单独的HTML页面加载到浏览器中,并在本地处理分页等。请参见:
PS:PubReader类似于@torazaburo建议的EPUB-Readium browser interface。
q3aa05253#
是的,而且已经完成了。我列出了我找到的一对夫妇。
Html阅读器,并以html文件的形式工作:
呈现ePub的库: