1

这是我使用 Firefox AddOn SDK 的第一步。我想要创建的是一个简单的“设置对话”。我想到了一个包含值表单和提交按钮的 html 页面。在第一个 mozilla 教程之后,我创建了一个小部件:

var widget = require('widget').Widget({
  label: 'Settings',
  id: 'settings',
  //panel: text_entry
  contentURL: data.url('images/stgfavicon.ico'),
  contentScriptFile: data.url('scripts/submit.js'),
  onClick: function() {
    tabs.open(data.url('forms/settings.html'));
  }
});

但是由于settings.js不是 contentScriptFile 我在settings.htmlsettings.js之间没有通信。是否有可能在没有一些(看起来很复杂的)消息传递系统的情况下完成这项工作?以及如何最好地保存这些值?一个 JSON 文件?一些链接/示例/API 名称会对我有很大帮助。:)

4

1 回答 1

3

那是因为您试图将脚本附加到小部件(不是 HTML 文件)。您需要在选项卡打开后将其附加到实际的 html 文件中。

tabs.open({
    url: data.url('forms/settings.html'),
    onOpen: function onOpen(tab) {
        tab.attach({ contentScriptFile: data.url('scripts/submit.js'); });
    }
});

我没有测试过,所以可能有错误。

如果这些设置不会经常调整,您还应该查看 simple-prefs 模块。

于 2012-09-24T18:46:59.227 回答