3

我为下一个和上一个按钮创建了此功能,换句话说,我的 html 页面中有 2 个按钮,当我单击下一个或上一个按钮时,单片眼镜中的页面也会相应移动,我读到我必须使用自定义页面翻转器这但他们没有提供如何创建一个示例。

这是我尝试过但失败了:

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不是那么精通。对不起 :(

4

1 回答 1

4

我认为问题出在这个变量声明块中:

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();

是否有任何具有“值”属性的输入字段适用,例如<input type="text" id="file">

您确定文件名中肯定会有一个点,即扩展名?

看起来也event.target.files很可疑。

如果没有问题,请告诉控制台在哪一行显示错误。您可以双击错误以突出显示错误的行。

于 2014-06-21T17:17:47.920 回答