获取本地存储值到内容脚本[Chrome扩展程序]的简便方法

Surjith SM

我想将某些数据存储在“本地存储到内容脚本”页面中。由于它不直接可用,因此我完成了它,chrome.runtime.sendMessage但是我有几个值,看起来像这样。

var username, apikey, openexchange, currency, locale;

chrome.runtime.sendMessage({method: "getLocalStorage", key: "username"}, function(response) {
  username = response.data;
});

chrome.runtime.sendMessage({method: "getLocalStorage", key: "apikey"}, function(response) {
  apikey = response.data;
});

chrome.runtime.sendMessage({method: "getLocalStorage", key: "openexchange"}, function(response) {
  openexchange = response.data;
});

chrome.runtime.sendMessage({method: "getLocalStorage", key: "currency"}, function(response) {
  currency = response.data;
});

chrome.runtime.sendMessage({method: "getLocalStorage", key: "locale"}, function(response) {
  locale = response.data;
});

当值增加时,此列表将更进一步,相反,是否还有其他方法可以将所有值包装在一个函数中?

任何帮助,将不胜感激。

可汗

我将首先回答您的直接问题(出于教育目的),然后提供一种更好的解决方法(根本不使用localStorage)。


您是编写回答该getLocalStorage方法的消息侦听器的人因此,您可以通过为每个请求发送多个值来使其具有更多用途。

例子:

chrome.runtime.onMessage.addListener(function(message, sender, sendResponse) {
  switch(message.method) {
    // ...
    case "getLocalStorage":
      if(message.key) { // Single key provided
        sendResponse({data: localStorage[message.key]});
      }
      else if(message.keys) { // An array of keys requested
        var data = {};
        message.keys.forEach(function(key) {data[key] = localStorage[key];})
        sendResponse({data: data});
      }
      break;
    // ...
  }
});

现在,您可以执行以下操作:

chrome.runtime.sendMessage(
  {method: "getLocalStorage", keys: ["username", "apikey"]},
  function(response) {
    username = response.data.username;
    apikey = response.data.apikey;
  }
);

也就是说,您正在重新发明轮子。Chrome浏览器已经具备了存储API(称为,出奇chrome.storage),其地址正是这样的场景:某种持久存储可用于扩展页面和内容脚本两者。

添加"storage"权限后,您可以执行以下操作:

chrome.storage.local.get(key, function(data) {
  // Use data[key]
});

chrome.storage.local.get([key1, key2], function(data) {
  // Use data[key1], data[key2]
});

chrome.storage.local.get({key1: default1, key2: default2}, function(data) {
  // Use data[key1], data[key2], and defaults will be used if not yet in storage
});

chrome.storage.local.set({key1: value1, key2: value2});

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Chrome扩展程序的本地存储

来自分类Dev

如何在内容脚本中同步到扩展本地存储?

来自分类Dev

Chrome扩展程序:本地存储,如何导出

来自分类Dev

在Chrome扩展程序中停止内容脚本

来自分类Dev

Chrome扩展程序内容脚本访问扩展程序框架

来自分类Dev

是否将扩展程序内容脚本绑定到Chrome的起始页?

来自分类Dev

Chrome扩展程序注入脚本获取错误

来自分类Dev

Chrome扩展程序注入脚本获取错误

来自分类Dev

更新存储在chrome扩展程序本地存储中的对象

来自分类Dev

如何在Chrome扩展程序内容脚本中获取错误堆栈跟踪?

来自分类Dev

Chrome扩展程序:如何获取网页以访问由内容脚本定义的功能?

来自分类Dev

如何在Chrome扩展程序内容脚本中获取错误堆栈跟踪?

来自分类Dev

在Chrome扩展程序中将远程脚本作为内容脚本

来自分类Dev

有什么方法可以从已删除的Chrome扩展程序恢复本地存储数据?

来自分类Dev

Chrome扩展程序:内容脚本注入时如何解决“不允许加载本地资源”错误

来自分类Dev

Chrome扩展程序从DOM获取CSS值

来自分类Dev

从内容脚本重定向到chrome扩展名URL?

来自分类Dev

Chrome扩展程序内容脚本:click()和异步结果

来自分类Dev

Chrome扩展程序内容脚本未触发代码

来自分类Dev

如何自动测试Chrome扩展程序中的内容脚本?

来自分类Dev

Chrome扩展程序:检查内容脚本是否已注入

来自分类Dev

从Chrome扩展程序中的内容脚本传递消息

来自分类Dev

Chrome扩展程序内容脚本自定义ui

来自分类Dev

从Chrome扩展程序内容脚本创建Web Worker

来自分类Dev

将按钮注入网站(Chrome扩展程序内容脚本)

来自分类Dev

Chrome扩展程序:如何全局捕获/处理内容脚本错误?

来自分类Dev

Chrome扩展程序内容脚本不起作用

来自分类Dev

Chrome扩展程序后台页面和内容脚本同步

来自分类Dev

Chrome扩展程序的内容脚本未注入特定网站

Related 相关文章

  1. 1

    Chrome扩展程序的本地存储

  2. 2

    如何在内容脚本中同步到扩展本地存储?

  3. 3

    Chrome扩展程序:本地存储,如何导出

  4. 4

    在Chrome扩展程序中停止内容脚本

  5. 5

    Chrome扩展程序内容脚本访问扩展程序框架

  6. 6

    是否将扩展程序内容脚本绑定到Chrome的起始页?

  7. 7

    Chrome扩展程序注入脚本获取错误

  8. 8

    Chrome扩展程序注入脚本获取错误

  9. 9

    更新存储在chrome扩展程序本地存储中的对象

  10. 10

    如何在Chrome扩展程序内容脚本中获取错误堆栈跟踪?

  11. 11

    Chrome扩展程序:如何获取网页以访问由内容脚本定义的功能?

  12. 12

    如何在Chrome扩展程序内容脚本中获取错误堆栈跟踪?

  13. 13

    在Chrome扩展程序中将远程脚本作为内容脚本

  14. 14

    有什么方法可以从已删除的Chrome扩展程序恢复本地存储数据?

  15. 15

    Chrome扩展程序:内容脚本注入时如何解决“不允许加载本地资源”错误

  16. 16

    Chrome扩展程序从DOM获取CSS值

  17. 17

    从内容脚本重定向到chrome扩展名URL?

  18. 18

    Chrome扩展程序内容脚本:click()和异步结果

  19. 19

    Chrome扩展程序内容脚本未触发代码

  20. 20

    如何自动测试Chrome扩展程序中的内容脚本?

  21. 21

    Chrome扩展程序:检查内容脚本是否已注入

  22. 22

    从Chrome扩展程序中的内容脚本传递消息

  23. 23

    Chrome扩展程序内容脚本自定义ui

  24. 24

    从Chrome扩展程序内容脚本创建Web Worker

  25. 25

    将按钮注入网站(Chrome扩展程序内容脚本)

  26. 26

    Chrome扩展程序:如何全局捕获/处理内容脚本错误?

  27. 27

    Chrome扩展程序内容脚本不起作用

  28. 28

    Chrome扩展程序后台页面和内容脚本同步

  29. 29

    Chrome扩展程序的内容脚本未注入特定网站

热门标签

归档