Я использую библиотеку javascript, которая generates annotations within an ePub. Я надеюсь использовать HTML5 localStorage для хранения данных аннотации.Конфигурирование использования localStorage как конечной точки вместо локального сервера
Есть ли способ иметь URL-адрес конечной точки, связанный с localStorage?
В крюке, который вызывает библиотеку существует переменное для «сервера», который в настоящее время установлен на URL-адрес локального сервера, порт 5000.
Я надеюсь заменить, что с каким-то указателем на LocalStorage , но я не уверен, какая конечная точка будет задействована. Похоже, что единственным методом для добавления информации будет метод «localStorage.setItem», который, в свою очередь, нуждается в имени переменной в качестве аргумента, поэтому он не подходит в качестве конечной точки.
безупречному крюк, прежде чем я настроить это в this github repo,
Моя текущая версия после редактирования, (который не работает) выглядит следующим образом:
EPUBJS.Hooks.register("beforeChapterDisplay").annotate = function(callback, chapter){
var chap = chapter.bodyEl,
server = localStorage;
files = [
EPUBJS.filePath + "annotator-full.js"
];
console.log(files);//show the pathways defined above
EPUBJS.core.load(files, chapter.doc.head);
$(chapter.doc.body).annotator().annotator('setupPlugins', {}, {
Filter:false,
Store: {
annotationData: {
'uri': chapter.path
},
loadFromSearch: {
'limit': 100,
'uri': chapter.path
}
}
});
Util.mousePosition = function(e, offsetEl) {
var offset;
offset = $(offsetEl).position();
return {
top: e.pageY,
left: e.pageX
};
};
devAnnotator = new Annotator(chapter.doc.body)
// .addPlugin('Auth', {
// tokenUrl: 'http://annotateit.org/api/token',//'http://localhost:5001/api/token'
// })
// .addPlugin('Unsupported')
// .addPlugin('AnnotateItPermissions')
// .addPlugin('Store', {
// prefix: 'http://annotateit.org/api',//'http://localhost:5000',
// loadFromSearch: {
// uri: chapter.currentChapter.href
// },
// annotationData: {
// uri: chapter.currentChapter.href
// }
// });
// devAnnotator.plugins.Auth.withToken(function (tok) {
// console.log(tok);
// })
// EPUBJS.core.addCss("../libs/annotator/css/annotator.css", false, chapter.doc.head);
if(callback) callback();
function annotate(){
// EPUBJS.core.addCss("css/annotator.css", false, chapter.doc.head);
var s = document.createElement("script");
s.type = 'text/javascript';
console.log(jQuery);
var a = "jQuery.migrateTrace = false;";
a += "console.log(document.getElementById('c001p0002').getBoundingClientRect());";
a += "var content = $('body').annotator().annotator('setupPlugins', {}, {Filter:false});";
//-- Use Local Server:
a += "var content = $('body').annotator(),";
a += " server = '" + server + "';";
a += " path = '" + chapter.path + "';";
a += " content.annotator('addPlugin', 'Store', {";
// The endpoint of the store on your server.
a += " prefix: server,";
// Attach the uri of the current page to all annotations to allow search.
a += " annotationData: {";
a += " 'uri': path";
a += " }";
// This will perform a search action rather than read when the plugin
// loads. Will request the last 20 annotations for the current url.
// eg. /store/endpoint/search?limit=20&uri=http://this/document/only
a += ","
a += " loadFromSearch: {";
a += " 'limit': 20,";
a += " 'uri': path";
a += " }";
a += "});";
s.innerHTML = a;
chapter.doc.body.appendChild(s);
if(callback) callback();
}
}
Wha t вы тестируете? интерактивные книги? –
Хм, просто используя браузер с устройством чтения ePub по умолчанию, или, по крайней мере, я считаю, что это значение по умолчанию, связанное с будущим: https://github.com/futurepress/epub.js –
А я вижу, так технически это isn 't стандартный файл ePub: просто файл для использования с ePub.js? –