【发布时间】:2014-03-12 16:27:07
【问题描述】:
我删除存储在主脚本中的简单存储数组中的元素。这会在简单存储数组中创建空元素。所以我运行一个脚本以将一个新数组返回给主插件脚本(不包含空元素)和我将它分配给简单存储数组。但主脚本只获取一个元素而不是整个数组。如何获取整个数组? 以下是主要的插件代码部分:
text_entry.port.on("del", function (todel) {
console.log(todel);
site_l=ss.storage.sites.length;
for(var i=0;i<site_l;i++)
{
if(ss.storage.sites[i]==todel)
{
delete ss.storage.sites[i];
}
}
text_entry.port.emit("c",ss.storage.sites);
text_entry.port.on("cd",function(arr){
ss.storage.sites=[];
ss.storage.sites=arr;
});
});
返回不包含空元素的新数组的脚本:
self.port.on("c",function(arr)
{
var a=arr;
var l=a.length;
function isEmpty(element) {
if(element!=null)
return true;
}
a=a.filter(isEmpty);
self.port.emit("cd",a);
});
【问题讨论】:
-
很难说你在这里做什么 - text_entry 是一个 page-mod 实例,还是什么?您能否提供一个简化的示例,供人们自己运行和测试?
-
如果您有非 sdk 版本,我可以帮助您。你能做一个简单的测试用例吗,我可以为你做一个演示插件。
-
@canuckistani 它的面板实例。用户从面板中的列表中选择项目并单击删除按钮,这使面板内容脚本从列表中获取所选项目并将其存储在本地数组中。现在它需要将该数组发送到主脚本。我找到了一种方法.将数组转换为字符串并将其传递给主脚本并使用 split 使其成为数组。
标签: firefox-addon firefox-addon-sdk add-on