Firefox附加组件sdk:如何在内容脚本中使用简单存储API?

时间:2013-06-11 15:11:11

标签: javascript firefox firefox-addon storage firefox-addon-sdk

我正在使用Erik Vold的toolbar button添加Firefox,我想知道如何在内容脚本中访问简单存储API。我知道您无法直接访问API。

var data = require('self').data;
var tabs = require('tabs');
var pageMod = require('page-mod');
var ss = require('sdk/simple-storage');

    var tbb = require('toolbarbutton').ToolbarButton({
      id: 'button',
      label: 'us-button',
      image: data.url('img/on.png'),
      onCommand: function () {

        tabs.activeTab.attach ({

            contentScriptFile: [
                data.url('jquery/jquery.min.js'),
                data.url('jquery/jquery-ui.js'),
                data.url('recuperation.js'),
                data.url('dialog.js')
          ],
          contentScriptOptions: {
          imgfr: data.url('img/fr.png'),
          imgen: data.url('img/en.png'),
          imglogo: data.url('img/logo.png')
        }
       });
      }
    });

我的问题是:如何在我的内容脚本dialog.js

中访问简单存储API

1 个答案:

答案 0 :(得分:1)

tabs.activeTab.attach (...)返回worker,您可以使用该let worker = tabs.activeTab.attach(...); worker.port.on('simple-storage', function(newData) { ss.storage = newData; }); 在内容脚本和插件之间发送消息。通过这种方式,您可以让内容脚本向插件发送有关要在简单存储中存储哪些数据的消息。

所以插件方面看起来像是:

self.port.emit('simple-storage', newData)

,内容脚本方面如下:

newData

当您{{1}}要保存时。