【问题标题】:Google Chrome extenstion - local storage set and get谷歌浏览器扩展 - 本地存储设置和获取
【发布时间】:2017-06-08 09:24:16
【问题描述】:

我正在为 Google Chrome 开发一个扩展程序,但遇到了一些问题。我创建了一个 options.html 页面并将其添加到 manifest.json 文件中。页面显示正常。

我还需要将填充的数据保存在本地存储中,我无法继续进行

你能帮我通过set和get来获取执行本地存储的代码吗

enter image description here[入口表格2

清单

{
   "background": {
      "scripts": [ "background.js" ]
   },
   "browser_action": {
      "default_icon": "t19.png"
   },
   "description": "Fill out web forms instantly with junk or custom data",
   "icons": {
      "128": "t128.png",
      "48": "t48.png"
   },

   "manifest_version": 2,
   "name": "Tatkal on budget style",
   "options_page": "entry_form.html",
   "permissions": [ "storage",  "tabs", "http://*/*", "https://*/*" ],
   "version": "1.0"
}`enter code here`


Background

chrome.browserAction.onClicked.addListener(function(tab) {
  chrome.tabs.create({'url': chrome.extension.getURL('entry_form.html')}, function(tab) {
    // Tab opened.
  });
});

期待有本地存储的代码

【问题讨论】:

    标签: javascript java jquery google-chrome


    【解决方案1】:

    Chrome 扩展不支持本地存储。您必须使用chrome.storage.sync(跨设备为用户同步数据)或chrome.storage.local(当前chrome 实例的本地)。 假设您想保存一个名为 name 的字段,其值为 John。 本地存储:

    localstorage.setItem('name', 'Jogn');
    

    Chrome 扩展程序

    var obj = {
        name:'Jogn'
    }
    chrome.storage.sync.set(obj, function () {
        //success callback
    });
    

    获取存储的名称使用:

    var keys = ['name'];
    chrome.storage.sync.get(key, function (result) {
        // the received result  field will be an object
        console.log(result.name);
    });
    

    【讨论】:

    • 嗨,Bij,谢谢您的热情回复>
    • 为了使用它,您需要请求storage 权限。你有没有在你的manifest文件中的permissions下添加storage
    • 是的,已添加到清单中,我也在我的问题中发布了清单代码
    猜你喜欢
    • 2011-03-03
    • 1970-01-01
    • 2013-07-21
    • 1970-01-01
    • 2013-01-25
    • 2013-02-07
    相关资源
    最近更新 更多