首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ePub未在futurepress/epub.js中定义

ePub未在futurepress/epub.js中定义
EN

Stack Overflow用户
提问于 2018-03-06 18:07:03
回答 3查看 1.2K关注 0票数 4

刚刚开始使用FuturePress/epub.js。并与vue.js一起使用

代码语言:javascript
复制
<head>
    <script src="https://cdn.jsdelivr.net/npm/vue"></script>
    <script src="/static/epub.min.js"></script>
    <script src="/static/libs/zip.min.js"></script>
</head>
<body>
    <div id="app">
        <div onclick="Book.prevPage();">‹</div>
        <div id="area"></div>
        <div onclick="Book.nextPage();">›</div>
    </div>

    <script src="script.js"></script>
</body>

script.js

代码语言:javascript
复制
var app = new Vue({
    el: '#app',
    created: function () {
        this.$nextTick(function () {
            var Book = ePub("http://desq.xyz/epub-test/book.epub");
            Book.renderTo("area");
        })
    }
});

但是,会发生错误。ReferenceError: ePub is not defined。那是什么??

EN

回答 3

Stack Overflow用户

发布于 2019-02-24 05:42:36

它在一些mods上运行良好(我正在遵循epubjs repo上给出的例子)

将cdn用于当前方法的

  • (可能您没有将epub.min.js文件夹设置为/static jszip,因为这是epubjs推荐的方法)
  • 使用Vue的data属性保存方法,并将rendition处理程序设置为jszip。可能不是必须的,但如果没有它,你需要点击监听器,这是(更简单的) Vue方式。
  • 使用了epubjs样本中的一本电子书,因为我不确定你尝试访问的是哪本。

这是一个工作正常的示例index.html。只需将代码粘贴到本地文件中,然后使用浏览器打开它。

index.html

代码语言:javascript
复制
<head>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
  <script src="https://cdn.jsdelivr.net/npm/epubjs/dist/epub.min.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.1.5/jszip.min.js"></script>
</head>
<body>
  <div id="app">
    <div @click="prev()">‹</div>
      <div id="area"></div>
    <div @click="next()">›</div>
  </span>
  <script>
    var app = new Vue({
      el: '#app',
      data: {
        book: null,
        rendition: null
      },
      created() {
        this.book = ePub("https://s3.amazonaws.com/epubjs/books/alice/OPS/package.opf");
        this.rendition = this.book.renderTo("area", {width: 600, height: 400});
        var displayed = this.rendition.display();
      },
      methods: {
        prev() {
          this.rendition.prev();
        },
        next() {
          this.rendition.next();
        }
      }
    });
  </script>
</body>
票数 4
EN

Stack Overflow用户

发布于 2019-02-22 08:50:27

当从公共CDN使用时,epub.min.js对我不起作用。

在克隆库的repository并编译dist文件后,它似乎可以正常工作。

下面是一个包含您的代码和来自自己源代码的epub.min.js的有效JSFiddle

所以问题出在正确的epub.min.js文件中。

按照lib的repository (首选的方式)上的说明构建您自己的源代码,或者随意使用download临时提供的编译源代码。

票数 2
EN

Stack Overflow用户

发布于 2020-11-12 20:42:43

我遇到了同样的问题,并发现来自所谓的“准备构建”的epub.js文件(通过运行命令npm run prepare as describe here)没有加载到我的HTML文件中。我修复了路径问题,也解决了这个问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49128203

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档