javascript - 在 Vue.js 组件中使用 Chrome 扩展 API

标签 javascript google-chrome-extension vue.js google-chrome-storage

我正在尝试访问 chrome 扩展程序的本地存储,即我的 vue.js 组件中的 chrome 浏览器。

ServerList.vue

    <template>
      <div>
        <server-list :server-descriptions="serverDescriptions"/>
      </div>
    </template>

    <script>
      import ServerList from "./ServerList.vue"

      chrome.storage.sync.set({'foo': 'hello', 'bar': 'hi'}, function() {
        console.log('Settings saved');
      });

      chrome.storage.sync.get(['foo', 'bar'], function(items) {
        console.log('Settings retrieved', items);
      });
    [...]

   </script>

此代码位于我的 popup.html 中,这就是 popup.html 检查的控制台告诉我的内容: enter image description here

因此我认为它确实有效。但是当我通过调试器选项卡检查本地存储时,我什么也没看到:enter image description here

即使在控制台中手动检查 localStorage 也不会向我显示任何内容: enter image description here

因此我假设数据未持久保存在我的 Chrome 浏览器中?

有人知道我怎样才能让它工作吗?或者给我一个提示?

最佳答案

Chrome.storage api 和 localStorage api 都是不同的东西。 Chrome.storage api 已经过优化,可以满足扩展程序的特定存储需求。它提供与 localStorage API 相同的存储功能。这两者之间有很多区别,例如 localStorage API 将数据存储在字符串中,而存储 api 可以存储为对象,并且它与批量读写操作异步,因此它比 localStorage api 更快。如果你想存储在localStorage api中。你可以这样做,

localStorage.myvar = "This is an example";

localStorage.setItem("myvar", "This is an example");

您可以通过以下方式获取元素

localStorage.getItem("myvar");

删除类似的项目

localStorage.removeItem("myvar");

您可以使用localStorage.myvar访问此变量。希望对您有帮助

关于javascript - 在 Vue.js 组件中使用 Chrome 扩展 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44493426/

相关文章:

javascript - 让谷歌浏览器扩展自动弹出

javascript - 在我的内容脚本中调用 JS 库 - WebExtension

vue.js - 如何在 vuejs 中将 Leaflet 与 Mapbox GL 集成

vue.js - VueJS组件,无法覆盖类

javascript - jQuery 的when.apply 和包装的异步函数

javascript - D3.js 不附加 HTML

javascript - 如何使用 jquery 删除外部标签(<tag></tag>)并将其余标签附加到其父级?

laravel - 如何忽略vuejs中的html元素

javascript - jQuery Date() 函数返回 1969 年 12 月 31 日而不是当前日期

javascript - Polymer 检查元素是否打开并将 css 类分配给父级