【问题标题】:Integrate epub.js into firefox as default reader of .epub将 epub.js 集成到 firefox 作为 .epub 的默认阅读器
【发布时间】:2016-05-11 10:20:41
【问题描述】:

在我的 PC 上,我使用 Firefox AddOn Lucifox 来阅读 EPUB 书籍。 这很好,但它接管了 RightClick 上下文菜单。 所以我不能轻易地搜索/翻译我在页面上突出显示的短语。 较轻的 AddOn EPUBReader 也是一样的。 名为epub.js 的纯javscript EPUB 阅读器避免了该缺陷。 可以使用以下 javascript 将其嵌入到网页中:

<script src="https://cdn.jsdelivr.net/epub.js/0.2.11/epub.min.js"></script>
<script>
  var book = ePub("url/to/book/");
  book.renderTo("area");
</script>
<div id="area"></div>

来自here的代码。

我的问题:有没有 - 比如说 Greasemonkey 或类似的 - 在 Firefox 中使用这个系统自动嵌入打开的 epub?所以我不必手动操作。

【问题讨论】:

    标签: javascript firefox greasemonkey epub


    【解决方案1】:

    你可以从 Greasemonkey 注入脚本

    var script = document.createElement("script");
    script.textContent = ' /* your script */ ';
    document.head.appendChild(script);
    

    JS 库可以与用户脚本一起在本地存储一次,并通过元块条目 @require 在每次站点加载时重复使用

    由于插件只不过是压缩的 JavaScript 项目,您还可以解压缩 .xpi 文件(如果需要,重命名扩展名),修改代码并使用 zip 重新打包。毕竟该文件应该重命名为 .xpi。您甚至可以将其开发为未打包的插件。

    【讨论】:

    • 但我如何触发这样的脚本注入 - 基于 mime/文件类型 epub?
    • 这取决于你。你可以例如添加一个keydown 事件监听器或在DOM 中插入一个按钮。啊……你可能是指@match 元块之类的东西?
    • epub是怎么加载的?一个想法可能是拦截链接并将 URL 提供给库脚本。文件扩展名不够吗?或者基于 AJAX 请求参见 stackoverflow.com/questions/4907876/… 。要拦截 AJAX 请求,您必须操作 XMLHttpRequest.prototype。
    • 或者更好地代理 XMLHttpRequest 对象。 developer.mozilla.org/en/docs/Web/JavaScript/Reference/… 。再次:考虑修改插件。这可能是阻力最小的方式。
    猜你喜欢
    • 2020-11-23
    • 2021-04-06
    • 1970-01-01
    • 1970-01-01
    • 2012-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-20
    相关资源
    最近更新 更多