RussCoder/djvujs

В firefox не работает djvu.js версии выше 0.3.5

Closed this issue · 7 comments

В chromium 90 работает DjVu.js v.0.5.3, DjVu.js Viewer v.0.8.2. В firefox 88 (и более ранних) просто пустое окно. Последняя версия которая работает у меня - 0.3.5.

Uncaught 
Exception { name: "NS_ERROR_NOT_IMPLEMENTED", message: "", result: 2147500033, filename: "https://ptah-alexs.info/djvu_reader/djvu.js", lineNumber: 13330, columnNumber: 0, data: null, stack: "DjVuScript@https://ptah-alexs.info/djvu_reader/djvu.js:13330:51\nDjVu<@https://ptah-alexs.info/djvu_reader/djvu.js:15534:26\n@https://ptah-alexs.info/djvu_reader/djvu.js:15536:2\n" }
​columnNumber: 0
​data: null
​filename: "https://ptah-alexs.info/djvu_reader/djvu.js"
​lineNumber: 13330
​message: ""
​name: "NS_ERROR_NOT_IMPLEMENTED"
​result: 2147500033
​stack: "DjVuScript@https://ptah-alexs.info/djvu_reader/djvu.js:13330:51\nDjVu<@https://ptah-alexs.info/djvu_reader/djvu.js:15534:26\n@https://ptah-alexs.info/djvu_reader/djvu.js:15536:2\n"
​<prototype>: ExceptionPrototype { toString: toString(), name: Getter, message: Getter, … }
djvu.js:13330
Uncaught Error: There is no DjVu object! You have to include the DjVu.js library first!
    <anonymous> https://ptah-alexs.info/djvu_reader/djvu_viewer.js:2
    n https://ptah-alexs.info/djvu_reader/djvu_viewer.js:2
    <anonymous> https://ptah-alexs.info/djvu_reader/djvu_viewer.js:2
    <anonymous> https://ptah-alexs.info/djvu_reader/djvu_viewer.js:2
djvu_viewer.js:2:206562
Uncaught TypeError: DjVu is undefined
    onload https://ptah-alexs.info/djvu_reader/:21
djvu_reader:21:13

Речь идет о расширении для браузера или вы пытаетесь добавить приложение на стороннюю веб-страницу?
Посмотрите работает ли у вас сайт https://djvu.js.org/

Приложение на стронней странице https://ptah-alexs.info/djvu_reader/ на https://djvu.js.org/ также пустой iframe, в консоли браузера те же ошибки.
изображение

Я установил Firefox 87 и у меня все работает. Скорее всего все версии до 66 будут работать без проблем.

Вторая и третья ошибки означают, что скрипт djvu.js (библиотека) почему-то не был загружен. А загружен он не был из-за первой ошибки, которая очень странная. Ошибки с префиксом NS_ я видел, когда браузер почему-то не мог выполнить операцию, памяти не хватало или еще что-то было не так. Это не ошибка кода скрипта.

Что у вас за браузер такой? Можно ли обновиться до 92 версии? Нет ли каких-то особых настроек?

Попробовал версию 92 с сайта mozilla, всё тоже. Забыл уточнить у меня debian linux. Возможно проблема в html откуда я вызываю? https://pastebin.com/hMSDZHUK

Пробовал запускать в безопасном режиме т.е. без дополнений, всё равно пустой iframe.

В HTML надо вместо header использовать head. Но это не должно так влиять.
Если сайт https://djvu.js.org/ не работает, то проблема не в разметке. И у меня ваш сайт работал.

Дело значит в настройка операционной системы. Другие сайты работают нормально? Вообще помочь с такой проблемой я вряд ли смогу - она слишком специфична. Даже если я поставлю Debian, боюсь, что у меня все будет работать.

Первая ошибка ссылается на строку 15534:

return Object.assign(DjVuScript(), {DjVuScript});

Можете попробовать ее заменить на

var returnValue = DjVuScript();
returnValue.DjVuScript = DjVuScript;;
return returnValue;

Не факт, что поможет, но не сложно попробовать. Скорее всего будет та же ошибка.
Тут дело в том, что браузер будто бы некорректно JavaScript исполняет.

В общем какой-то непонятный трудноуловимый баг. На FF для андроида всё работает как ни странно.