forked from 0x2620/pandora
parse document position
This commit is contained in:
parent
af0affb7bf
commit
a7d70c15ea
3 changed files with 23 additions and 6 deletions
|
@ -254,7 +254,7 @@ pandora.URL = (function() {
|
|||
set[!state.item ? 'collectionView' : 'documentView'] = state.view;
|
||||
}
|
||||
if (state.span) {
|
||||
if (Ox.isNumber(state.pan)) {
|
||||
if (Ox.isNumber(state.span)) {
|
||||
set['documents.' + state.item] = {position: state.span};
|
||||
} else {
|
||||
set['documents.' + state.item] = {name: state.span};
|
||||
|
|
|
@ -393,8 +393,17 @@ pandora.ui.textHTML = function(text) {
|
|||
if (settings.name) {
|
||||
element = that.find('*[data-name="' + settings.name + '"]');
|
||||
if (element.length) {
|
||||
scrollTop = Math.max(that[0].scrollTop + element.offset().top - 48, 0);
|
||||
position = 100 * scrollTop / that[0].scrollHeight;
|
||||
scrollTop = that[0].scrollTop + element.offset().top;
|
||||
if (pandora.user.ui.page == 'document') {
|
||||
scrollTop -= 48;
|
||||
} else {
|
||||
scrollTop -= 80;
|
||||
if (pandora.user.ui.showBrowser) {
|
||||
scrollTop -= (112 + Ox.UI.SCROLLBAR_SIZE);
|
||||
}
|
||||
}
|
||||
|
||||
position = 100 * Math.max(scrollTop, 0) / that[0].scrollHeight;
|
||||
}
|
||||
}
|
||||
scrollTo(position);
|
||||
|
|
|
@ -1994,9 +1994,11 @@ pandora.getSpan = function(state, val, callback) {
|
|||
if (Ox.contains(['epub', 'pdf', 'txt'], extension)) {
|
||||
state.span = Ox.limit(parseInt(val), 1, dimensions);
|
||||
} else if (Ox.contains(['html'], extension)) {
|
||||
//fixme: allow numbers or check names?
|
||||
//state.span = Ox.limit(parseInt(val), 0, 100);
|
||||
state.span = val
|
||||
if (pandora.isNumericalSpan(val)) {
|
||||
state.span = Ox.limit(parseInt(val), 0, 100);
|
||||
} else {
|
||||
state.span = val;
|
||||
}
|
||||
} else if (Ox.contains(['gif', 'jpg', 'png'], extension)) {
|
||||
values = val.split(',');
|
||||
if (values.length == 4) {
|
||||
|
@ -2443,6 +2445,12 @@ pandora.isLicensed = function() {
|
|||
return !pandora.site.license || pandora.site.license > +new Date();
|
||||
};
|
||||
|
||||
pandora.isNumericalSpan = function(str) {
|
||||
return str.split(',').every(function(str) {
|
||||
return /^[0-9-\.:]+$/.test(str);
|
||||
});
|
||||
}
|
||||
|
||||
pandora.isPrintURL = function(url) {
|
||||
url = url || document.location.href;
|
||||
var hash = Ox.parseURL(url).hash;
|
||||
|
|
Loading…
Reference in a new issue