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 に答える