gpt4 book ai didi

javascript - 配置使用 localStorage 作为端点而不是本地服务器

转载 作者:行者123 更新时间:2023-12-03 11:24:29 26 4
gpt4 key购买 nike

我正在使用一个 javascript 库 generates annotations within an ePub 。我希望使用 HTML5 localStorage用于存储注释数据。

有没有办法让端点 URL 与 localStorage 关联?

在调用库的 Hook 中,有一个“服务器”变量,当前设置为本地服务器的 URL,端口 5000。

我希望用一些指向 localStorage 的指针替换它,但我不确定会涉及哪个端点。似乎添加信息的唯一方法是“localStorage.setItem”方法,该方法又需要变量名作为参数,因此它不适合作为端点。

纯粹的钩子(Hook),在我定制之前它位于 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();
}



}

最佳答案

只是为了关闭这个循环,解决方案:

该文件不是真正的 ePub,它是一个“外壳”,用于使用 ePub.js 摄取 ePub,然后以自定义方式显示它...

关于javascript - 配置使用 localStorage 作为端点而不是本地服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26982738/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com