如何使用Firefox插件SDK从数组中存储和检索变量?

如何使用Firefox插件SDK从数组中存储和检索变量?,firefox,firefox-addon,firefox-addon-sdk,Firefox,Firefox Addon,Firefox Addon Sdk,我正在尝试开发一个Firefox扩展 我有一个简单的需要。在测试的这个时候,我只想定义一个数组。按下按钮时,当前窗口将转到数组中的第一个URL。再次按下按钮时,它将转到数组中的下一个URL 我的印象是,我需要使用simple storage(ss.storage)将当前序列存储在数组中,但我无法使其工作。我想也许我可以使用Cookie存储序列信息,但是附加SDK看起来非常严格。也许有一种简单得多的方法,但我似乎无法确定那是什么 当前状态-按下按钮时,代码会为数组中的每个URL打开三个单独的窗口。

我正在尝试开发一个Firefox扩展

我有一个简单的需要。在测试的这个时候,我只想定义一个数组。按下按钮时,当前窗口将转到数组中的第一个URL。再次按下按钮时,它将转到数组中的下一个URL

我的印象是,我需要使用
simple storage
ss.storage
)将当前序列存储在数组中,但我无法使其工作。我想也许我可以使用Cookie存储序列信息,但是附加SDK看起来非常严格。也许有一种简单得多的方法,但我似乎无法确定那是什么

当前状态-按下按钮时,代码会为数组中的每个URL打开三个单独的窗口。如果您可以帮助我修改此代码,以便在每次按下按钮时从数组中打开一个URL-如上所述

require(“小部件”).widget({
id:“查看源小部件”,
标签:“查看源”,
内容URL:“http://www.mozilla.org/favicon.ico",
onClick:function(){
var arr=新数组(“one.com”、“two.com”、“three.com”);

对于(var i=0;i如果我正确理解了您正在尝试执行的操作-您不需要持久存储,则可以使用普通的全局变量。全局变量表示您当前所在的数组索引。类似以下内容:

var url=[“one.com”、“two.com”、“three.com”];
var-urlIndex=0;
...
onClick:function(){
var窗口=需要(“窗口”)。浏览器窗口;
open(url[urlink]);
//增加下一次单击的索引
URLDINDEX++;
如果(urleindex>=url.length)
urlIndex=0;
}
...

如果我正确理解您正在尝试执行的操作-您不需要持久性存储,则可以使用普通的全局变量。全局变量表示您当前所在的数组索引。类似以下内容:

var url=[“one.com”、“two.com”、“three.com”];
var-urlIndex=0;
...
onClick:function(){
var窗口=需要(“窗口”)。浏览器窗口;
open(url[urlink]);
//增加下一次单击的索引
URLDINDEX++;
如果(urleindex>=url.length)
urlIndex=0;
}
...

是的。非常感谢。这很有效。现在我只需要想一想如何:显示一个表单供用户输入URL列表,将输入的URL写入文本文件,并更新脚本以从URL文本文件创建数组。我假设文本文件是存储用户输入的标准方法。或者有更好的方法吗他也是吗?@user1157584:如果你有不同的问题-请创建不同的问题。顺便说一句,如果这个答案对你有帮助,请随意接受/升级这个答案:因为我是一个新用户,我的声望很低,这显然阻止我升级你的答案。它说我需要15个声望点才能升级。@user1157584:对。但是接受答案应该是可行的。Wladimir,你至少可以指望我为你的答案投票!是的。非常感谢。这是可行的。现在我只需要弄清楚如何:显示一个表单供用户输入URL列表,将输入的URL写入文本文件,并更新脚本以从URL文本f创建一个数组ile。我假设文本文件是存储用户输入的标准方法。或者还有更好的方法吗?@user1157584:如果你有不同的问题,请创建不同的问题。顺便说一句,如果这个答案对你有帮助,请随意接受/投票:因为我是一个新用户,我的声誉很低,这显然阻止了我om向上投票你的答案。上面说我需要15个声望点才能向上投票。@user1157584:对。但是接受答案应该是可行的。瓦拉迪米尔,你至少可以指望我向上投票你的答案!