Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

204
Views
Cómo cargar la última página visitada en epub.js

Estoy construyendo un lector de epub simple. Estoy usando epub.js. Quiero que la aplicación cargue la última página, sea cual sea la página en la que se encontraba el usuario antes de cerrar el libro/lector.

Aquí está mi código:

 const epubBook = "{{ bookpath }}"; var book = ePub(epubBook); var rendition = book.renderTo("viewer", {manager: "continuous", flow: "scrolled", width: "100%", height: "100%", snap: true } ); var displayed = rendition.display(); book.ready.then(function() { const stored = localStorage.getItem(book.key() + '-locations'); //console.log('metadata:', book.package.metadata); bookTitleDiv.innerHTML = book.package.metadata['title'] if (stored) { return book.locations.load(stored); } else { return book.locations.generate(1024).then( ()=>{ localStorage.setItem(key, book.locations.save()); }).catch( err => console.error("error generating locations: ", err)); // Generates CFI for every X characters (Characters per/page) } }).then(function(location) { // This promise will take a little while to return (About 20 seconds or so for Moby Dick) localStorage.setItem(book.key() + '-locations', book.locations.save()); });
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Si solo guarda el número de página, su código se romperá una vez que un usuario cambie el tamaño de fuente del libro o cambie el tamaño del lector. En ese caso, su número total de páginas puede aumentar/disminuir y solo confiar en el número de página podría llevarlo a la página incorrecta o podría terminar saliendo de los límites (su número de página> cantidad de páginas del libro).

Una forma segura de guardar la página sería guardar la cadena de posición CFI de esa página (en lugar del número de página). Estas cadenas se ven así: epubcfi(/6/4[chap01ref]!/4[body01]/10[para05]/2/1:3) .

Cómo obtener la cadena de posición de CFI de la página actual:


    let ubicación = this.rendition.currentLocation();
    let cfiString = ubicación.start.cfi; // esto es lo que quieres guardar

Navegar a una ubicación determinada:


    this.rendition.display(cfiString);

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!