как сделать следующую и предыдущую кнопки в монокле чтения электронных книг, используя эти коды?


Я создал эту функцию для кнопки next и previous, другими словами, на моей html-странице есть 2 кнопки, и когда я нажимаю next или previous, страницы в монокле также перемещаются соответственно., я читал, что для этого мне нужно использовать пользовательский Флиппер страниц, но они не предоставили пример того, как его создать.

Это то, что я пытался и потерпел неудачу:

function fileSelected(event,str) {

    var thefile = document.getElementById('file');
    var tval = thefile.value;
    var ext = tval.split('.').pop();
    var files = event.target.files;
    var fname = tval.split(/(\|/)/g).pop();


   if (ext == "epub" || ext == "EPUB"){
        function createReader(bookData) {
            Monocle.Reader("reader", bookData);
        }
        new Epub(files[0], createReader);

   }else if(ext == "htm" || ext == "htm" || ext == "html" || ext == "HTML"){

        var bookData = {
            getComponents: function () {
                return [
                    fname
                    ];
            },
            getContents: function () {
                return [
                    {title: "test", src: fname}
                    ]
            },
            getComponent: function (componentId) {
                return {url:componentId};
            },
            getMetaData: function(key) {
                return {
                    title: "Test documents",
                    creator: "Aron Woost"
                    }[key];
            }
        }
                window.reader = Monocle.Reader('reader', bookData);

   }else{
        return false;
   }


}
function next(){    
    Monocle.Reader('reader', {}, {}, function (reader) {
      reader.moveTo({ direction: 1 });
    });
}

При нажатии кнопки Далее будет выдана неопределенная ошибка в моей консоли.

Любая идея, как реализовать пользовательскую страницу Флиппер?

Https://github.com/joseph/Monocle/wiki/Page-flippers

Я не настолько подкован в JS. извините : (

1 3

1 ответ:

Я думаю, что проблема заключается в этом блоке объявления переменных:

var thefile = document.getElementById('file');
var tval = thefile.value;
var ext = tval.split('.').pop();
var files = event.target.files;
var fname = tval.split(/(\\|\/)/g).pop();

Существует ли какое-либо поле ввода со свойством 'value', например <input type="text" id="file"> ?

Вы уверены, что в имени файла обязательно будет точка, то есть расширение?

Также event.target.files выглядит подозрительно.

Если ничего не случилось, пожалуйста, скажите, в какой строке консоли отображается ошибка. Вы можете дважды щелкнуть на ошибке, чтобы выделить ошибочную строку.