1
0
Fork 0
mirror of https://github.com/futurepress/epub.js.git synced 2025-10-04 15:09:16 +02:00

route on start

This commit is contained in:
Fred Chasen 2013-01-27 19:12:03 -08:00
parent 1554dda914
commit 66515b2e9c

View file

@ -464,34 +464,38 @@ FP.Book.prototype.chapterTitle = function(){
return this.spine[this.spinePos].id; //-- TODO: clarify that this is returning title
}
FP.Book.prototype.startDisplay = function(){
FP.Book.prototype.startDisplay = function(chapter){
var routed,
loaded = function(chapter){
//-- If there is a saved page, and the pages haven't changed go to it
if(this.prevChapterPos && this.prevDisplayedPages == chapter.displayedPages){
chapter.page(this.prevChapterPos);
}
//-- If there is network connection, store the books contents
if(this.online && !this.contained){
this.storeOffline();
}
}.bind(this);
this.tell("book:bookReady");
//-- Go to hashed page if present
if(this.useHash){
routed = this.route(loaded);
}
if(!this.useHash || !routed){
this.displayChapter(this.spinePos, loaded);
}
this.displayChapter(this.spinePos, function(chapter){
//-- If there is a saved page, and the pages haven't changed go to it
if(this.prevChapterPos && this.prevDisplayedPages == chapter.displayedPages){
chapter.page(this.prevChapterPos);
}
//-- If there is network connection, store the books contents
if(this.online && !this.contained){
this.storeOffline();
}
//-- Go to hashed page if present
if(this.useHash){
this.route();
}
}.bind(this));
}
FP.Book.prototype.show = function(url){
FP.Book.prototype.show = function(url, callback){
var split = url.split("#"),
chapter = split[0],
section = split[1] || false,
@ -506,14 +510,16 @@ FP.Book.prototype.show = function(url){
//-- Check that URL is present in the index, or stop
if(typeof(spinePos) != "number") return false;
if(spinePos != this.spinePos){
if(spinePos != this.spinePos || !this.currentChapter){
//-- Load new chapter if different than current
this.displayChapter(spinePos, function(chap){
if(section) chap.section(section);
if(callback) callback(chap);
});
}else{
//-- Only goto section
if(section) this.currentChapter.section(section);
if(callback) callback(this.currentChapter);
}
}
@ -646,12 +652,14 @@ FP.Book.prototype.determineStorageMethod = function(override) {
FP.storage.storageMethod(method);
}
FP.Book.prototype.route = function(){
FP.Book.prototype.route = function(callback){
var location = window.location.hash.replace('#/', '');
if(this.useHash && location.length && location != this.prevLocation){
this.show(location);
this.show(location, callback);
this.prevLocation = location;
return true;
}
return false;
}
FP.Book.prototype.hideHashChanges = function(){