2014-11-17 1 views
0

Я использую библиотеку 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(); 
     } 



} 
+0

Wha t вы тестируете? интерактивные книги? –

+0

Хм, просто используя браузер с устройством чтения ePub по умолчанию, или, по крайней мере, я считаю, что это значение по умолчанию, связанное с будущим: https://github.com/futurepress/epub.js –

+1

А я вижу, так технически это isn 't стандартный файл ePub: просто файл для использования с ePub.js? –

ответ

1

Просто, чтобы закрыть петлю это, решение:

файл не является фактическим EPUB, это «оболочка» для проглатывания EPUB с ePub.js, а затем отображать его в пользовательском пути ...