Litres/FB3Reader

Не работает фоновый рендер, если открыть книгу на последней странице

Closed this issue · 1 comments

Если открыть книгу с CurStartPos равной последней странице, фоновый рендер не работает.

Воспроизводится в браузере без проблем.

  1. Открываем книгу с this.CurStartPos = [0];
  2. Ждем пока закончит работать фоновый рендер.
  3. Листаем до последней страницы. Видим:
    Position xpath: /1458
    Percent: 99.86%
    Page number: 309/309
  4. Чистим localstorage.
  5. Открываем книгу с this.CurStartPos = [1458];
    Видим, что рендер не работает, в консоле ошибка:

Uncaught TypeError: Cannot set property 'Range' of undefined FB3ReaderPage.js:239
ReaderPage.DrawEnd FB3ReaderPage.js:239
(anonymous function) FB3ReaderPage.js:159
AsyncLoadConsumer.BlockLoaded FB3DOM.js:34
DOM.OnChunkLoaded FB3DOM.js:156
AjRequest.DataProvider.Request.ChunkN FB3DOM.js:110
AjaxLoader.onTransferComplete FB3AjaxDataProvider.js:63
AjaxLoader.Req.onreadystatechange

Если открыть книгу с CurStartPos равной последней странице, фоновый рендер не работает.

  1. Открываем книгу с this.CurStartPos = [0];
  2. Ждем пока закончит работать фоновый рендер.
  3. Листаем до последней страницы.XPath=1460/26
  4. Чистим localstorage.
  5. Открываем книгу с this.CurStartPos = [1460, 26];
  6. Видим, что фоновый рендер не стартует работу.
  7. Делаем GoToPercent, например с параметром 50.

В лог упала ошибка:
Uncaught TypeError: Cannot read property 'length' of undefined FB3Reader.js:12
PosCompare FB3Reader.js:12
ReaderPage.FalloutConsumeFirst FB3ReaderPage.js:286
ReaderPage.FallOut FB3ReaderPage.js:683
(anonymous function)

После этого фоновый рендер стартанул работу.