入手 Kindle 后开始自己做 ePub,之前一直用原生系统,使用的弹出注释代码如下:

<p class="P_Footnote" id="ref_footnotebookmark_end_9_1"><span style=" font-size: 0.75em; vertical-align: super;"><a href="#ref_footnotebookmark_start_9_1">①</a></span>注释的内容</p>

  逐渐由于制作 ePub 的需要,我开始使用多看系统,这时候原生系统弹出注释代码失效,这样就造成极大的不便——我必须制作两个不同的 ePub 来适应系统切换。多看弹出注释代码如下:

<ol class="duokan-footnote-content">
<li class="duokan-footnote-item" id="a_1_1"><a href="#c_1_1">这里是注释</li>
</ol>

  于是我开始寻求一种方法,使得弹窗注释能支持原生和多看。上面的两处代码中可以发现,原生系统的弹窗注释基于标签<p>,而多看系统的弹窗注释依赖于<ol>,于是我有一个思路,如果将两个标签嵌套使用,是否就能实现双系统的弹窗呢?

  一开始我将<p>嵌套在<li>中,将<p>嵌套在<a>中,代码如下:

 <ol class="duokan-footnote-content">
<li class="duokan-footnote-item" id="a_1_1">
<p><a href="#c_1_1">这里是注释</a></p>
</li>
</ol>
<!--<p>嵌套在<li>-->
 <ol class="duokan-footnote-content">
<li class="duokan-footnote-item" id="a_1_1">
<a href="#c_1_1"><p>这里是注释</p></a>
</li>
</ol>
<!--<p>嵌套在<a>-->

  然而这两种方法在实际测试中都失效。不过在论坛坛友的指点下,找到了这么一种方法,代码如下:

 <ol class="duokan-footnote-content">
<li class="duokan-footnote-item" id="ref_footnotebookmark_end_1_1">
<p class="f"><a href="#ref_footnotebookmark_start_1_1">这里是注释</a>​​​​​​​​​</p>
</li>
</ol>

P.S. "​"这个字串是 Zero-width space ( 零宽度非换行空格 )

P.S.想要批量修改可以使用通配符,如下:

Search:<li class="duokan-footnote-item" id="(.*?)"><a href="#(.*?)">(.*?)</li>

Replace:<li class="duokan-footnote-item" id="\1"><p class="f"><a href="#\2">\3</a>​​​​​​​​​​</p>

实现 kindle 原生系统、多看系弹出注释的通用写法的更多相关文章

  1. 原生Js封装的弹出框-弹出窗口-页面居中-多状态可选

    原生Js封装的弹出框-弹出窗口-页面居中-多状态可选   实现了一下功能: 1.title可自定义 可拖拽 2.width height可以自定义 3.背景遮罩和透明度可以自定义 4.可以自己编辑弹出 ...

  2. PHPCMS系统使用的弹出窗口插件artDialog

    来源: http://aui.github.io/artDialog/doc/index.html  (官方) http://lab.seaning.com/ http://www.mb5u.com/ ...

  3. (三)原生JS实现 - 插件 - 弹出层

    创建遮罩层 _createCover: function() { var newMask = document.createElement("div"); newMask.id = ...

  4. html、css和js原生写一个模态弹出框,顺便解决父元素半透明子元素不透明效果

    模态框: html部分: <!-- 按钮 --> <button id="box" onclick="pop_box()">弹出框< ...

  5. 四种常见的提示弹出框(success,warning,error,loading)原生JavaScript和jQuery分别实现

    原文:四种常见的提示弹出框(success,warning,error,loading)原生JavaScript和jQuery分别实现 虽然说现在官方的自带插件已经有很多了,但是有时候往往不能满足我们 ...

  6. wpf Popup Win8.0 bug HorizontalOffset 弹出位置偏移

    问题描述参考 wpf 客户端[JDAgent桌面助手]开发详解(四) popup控件的win8.0的bug 当开发完程序后,我们在多操作系统测试时候发现:win8.0  系统中 popup 弹出的位置 ...

  7. 禁用 WebView 放大镜及拷贝粘贴弹出框

    文/KyXu(简书作者)原文链接:http://www.jianshu.com/p/40048d9c979a著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”. 背景:当你的App中有 We ...

  8. html点击按钮 弹出 多选择窗口级联下拉复选

    参考代码 代码示例1: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:/ ...

  9. ASP.NET查询页面设置form的action属性只弹出一个页面,并且每次将页面设置到最前

    原文:ASP.NET查询页面设置form的action属性只弹出一个页面,并且每次将页面设置到最前 背景 当数据量大.查询条件复杂,多样多的时候,我们可能需要单独做一个查询界面,当用户选择设置了相关的 ...

随机推荐

  1. 利用HTML5开发Android(6)---构建HTML5离线应用

    需要提供一个cache manifest文件,理出所有需要在离线状态下使用的资源例如 Manifest代码 CACHE MANIFEST #这是注释 images/sound-icon.png ima ...

  2. Ehcache(08)——可阻塞的Cache——BlockingCache

    http://haohaoxuexi.iteye.com/blog/2119737 可阻塞的Cache—BlockingCache 在上一节我们提到了显示使用Ehcache锁的问题,其实我们还可以隐式 ...

  3. 【转】android出现注: 某些输入文件使用或覆盖了已过时的 API。 注: 有关详细信息, 请使用 -Xlint:deprecation 重新编译。 注: 某些输入文件使用了未经检查或不安全的操作。 注

    使用Android studio打包应用程序出现如下错误: 注: 某些输入文件使用或覆盖了已过时的 API. 注: 有关详细信息, 请使用 -Xlint:deprecation 重新编译. 注: 某些 ...

  4. USB DATA Toggle

    For bulk and interrupt transfers, the data toggle resets <0> only on Set Configuration, Set In ...

  5. jeecg团队招新人(5人)

    jeecg团队招新人(5人) http://www.jeecg.org/forum.php? mod=viewthread&tid=2046&page=1&extra=#pid ...

  6. 【M32】在未来时态下发展程序

    1.在未来时态下发展程序,就是接受“事情总会变化”的事实,并准备应对之策. 2.记住,程序的维护者通常不是最初的开发者,因此,设计和实现的时候,应该考虑别人更好地理解,修改自己的程序. 3.重要的一点 ...

  7. 反射遍历List<>泛型类型

    有这样一个需求:一个实体模型,有一个属性是一个实体列表List<OrderDetail>,我需要对实体列表遍历,对每一个实体的属性根据属性特性进行验证,如是否为必填等等,如下一个反射方法能 ...

  8. Codeforces Beta Round #5 C. Longest Regular Bracket Sequence 栈/dp

    C. Longest Regular Bracket Sequence Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.c ...

  9. iOS开发——动画编程Swift篇&(五)CAKeyframeAnimation

    CAKeyframeAnimation //CAKeyframeAnimation-关键针动画 @IBAction func cakFly() { let animation = CAKeyframe ...

  10. UITableViewController

    UITableViewController 目录 概述 UITableView UITableViewCell 与UITableViewController相关的代理 UITableViewDataS ...