2

我有一个page-mod使用数组作为包含字段的数据。我希望能够使用 来添加/删除数组中的数据splice,并进行page-mod刷新。这是我的代码:

//APIs:
var store = require("simple-storage");
var pageMod = require("page-mod");
var self = require("self");

//Array for Include:
store.storage.sites = ["*.example.com","*.google.com","*.org"];

//Page-mod code:
myPageMod = pageMod.PageMod({
  include: store.storage.sites,
  contentScriptWhen: 'start',
  contentScriptFile: [self.data.url("nicEdit-latest.js"),
                      self.data.url("pagedit.js")]
});

//Code to change array
function deleteItem(index) {
  store.storage.sites.splice(index,1);
});

现在我需要一种方法来更新page-modas 的一部分deleteItem,以便它不再适用于新删除的站点。

我尝试将其page-mod放入一个函数并调用该函数。我也尝试过更新数组然后myPageMod.include = store.storage.sites,但这也没有做任何事情。

4

2 回答 2

2

page-mod有一个include属性,一个当前包含规则的列表。您可以对其调用add()remove()方法,例如:

function addItem(rule) {
  store.storage.sites.push(rule);
  myPageMod.include.add(rule);
}

function deleteItem(index) {
  myPageMod.include.remove(store.storage.sites.splice(index,1));
}
于 2012-08-28T08:04:37.783 回答
0

我认为如果您使用变量来引用您的 pagemod,您应该能够更改它。

var myPageMod = pageMod.PageMod({
  include: store.storage.sites,
  contentScriptWhen: 'start',
  contentScriptFile: [self.data.url("nicEdit-latest.js"),
                      self.data.url("pagedit.js")]
});

function deleteItem(index) {
  myPageMod.include = store.storage.sites.splice(index,1);
});
于 2012-08-28T04:14:46.980 回答