如何让Apple Books中EPUB非线性页面链接直接跳转而非弹窗?
问题描述
我在metadata.opf文件中标记了若干非线性页面:
<itemref idref="id18" linear="no"/> <itemref idref="id19" linear="no"/> <itemref idref="id20" linear="no"/>
当该书在Apple Books中打开时,点击指向这些页面的链接(比如从目录或其他位置点击),Books并未直接跳转到对应页面,而是将其当作脚注,仅显示悬浮窗口(类似网页上的悬停文本)。
我希望点击链接能直接跳转到目标页面,类似网页中onclick="window.location=url"的效果。EPUB相关的JavaScript文档很少,也没有示例,我对此了解有限。只要方案能在Books中生效,被其他阅读器忽略也没关系——其他EPUB阅读器的表现是正常的。
解决方案
方法1:通过JS覆盖Apple Books默认行为
给指向非线性页面的链接添加自定义点击事件,强制触发页面跳转:
<a href="id18.xhtml" onclick="event.preventDefault(); window.location.href=this.href; return false;">跳转至目标页面</a>
event.preventDefault():阻止Apple Books默认的弹窗展示逻辑window.location.href=this.href:强制跳转到目标页面地址- 不支持JavaScript的阅读器会自动忽略这段代码,沿用原有跳转逻辑,完全符合需求。
方法2:修改OPF的linear属性(可选)
如果不需要保留这些页面的非线性标记,直接将linear="no"改为linear="yes":
<itemref idref="id18" linear="yes"/>
但这个方法会改变EPUB的线性结构,可能影响其他阅读器的表现,因此更推荐方法1。
内容的提问来源于stack exchange,提问作者John O
相关产品推荐
相关产品推荐

