Google chrome extension 使用Chrome中的本地存储作为数据库?

Google chrome extension 使用Chrome中的本地存储作为数据库?,google-chrome-extension,local-storage,Google Chrome Extension,Local Storage,我通过本地存储成功设置/获取数据。本质上,我正在构建一个提醒扩展/地理位置,允许用户保存url、他们的地理位置和url的标题。每次需要保存3条数据。我使用JSON.stringfy和JSON.parse来实现这一点。这就是我被困的地方: 如何保存用户的每个条目而不在本地存储中写入最后一个条目?每次我保存url时,它不会将其作为新条目保存在本地存储中。它只是在最后一个条目中不断保存 随着时间的推移,用户可能会有几十个条目,但我希望能够更新数据集中的特定条目。(例如,如果[数据集中存储的url之一]

我通过本地存储成功设置/获取数据。本质上,我正在构建一个提醒扩展/地理位置,允许用户保存url、他们的地理位置和url的标题。每次需要保存3条数据。我使用JSON.stringfy和JSON.parse来实现这一点。这就是我被困的地方:

  • 如何保存用户的每个条目而不在本地存储中写入最后一个条目?每次我保存url时,它不会将其作为新条目保存在本地存储中。它只是在最后一个条目中不断保存
  • 随着时间的推移,用户可能会有几十个条目,但我希望能够更新数据集中的特定条目。(例如,如果[数据集中存储的url之一]=[当前在浏览器url$(location).attr('href');]中的url,则执行某些操作
  • 我从一件非常简单的事情开始。保存和获取数据是可行的

    //save my data
    var mydata = { urlTitle: myTitle, myurl: currentUrl, urlLoc: geoUrl }​​​​​​​;
    localStorage.setItem("mydata", JSON.stringify(mydata));
    
    //get my data
    var returnData = localStorage.getItem("mydata");
    mydata = JSON.parse(returnData);
    
    只需要一点指导。

    就是这样做的

    // Setup database
    var lib = new localStorageDB("library", localStorage);
    lib.createTable("books", ["code", "title", "author", "year", "copies"]);
    
    // Insert rows
    lib.insert("books", {code: "B001", title: "Phantoms in the brain", author: "Ramachandran", year: 1999, copies: 10});
    lib.commit();
    
    // Query rows
    lib.query("books", {author: "ramachandran"});
    

    披露:我编写了库

    无需感谢——这就是接受和向上投票的目的。@Nadh,我注意到的一件事是,我只能按域查看我存储在localstorage中的文件。因此,如果我在域hello.com下存储了一组URL,我只能在我处于活动状态时检索数据。如果tab位于不同的域中(例如再见,adios.com)我无法检索存储在hello.com下的数据。无论活动选项卡中的域是什么,我如何检索所有数据?@oxtail,这是设计上不可能的!就像cookies一样,localStorage是基于每个域的。否则,任何站点都可以访问任何其他站点的数据。@nadh感谢您提供的信息。我认为,因为保存的来源是来自同一个源(我的扩展名),我将能够检索从同一个源保存的数据列表。