あなたがしようとしていることを正しく理解していれば、 page-mod
は間違った解決策です。単にアクティブなタブを聴きたいだけです。 のタブを使用してください ready
(新しいURLが読み込まれた)イベントと activate
(アクティブなタブが変更された)イベントを聞いてください:
var tabs = require("tabs");
tabs.on("ready", function(tab)
{
if (tab == tabs.activeTab)
updateActiveTab(tab);
});
tabs.on("activate", function(tab)
{
updateActiveTab(tab);
});
あなたの updateActiveTab()
関数は、 tab.url
をチェックし、ウィジェットを有効または無効にする必要があります。 page-mod
に指定したようなパターンを使用する場合は、内部 match-pattern
var {MatchPattern} = require("match-pattern");
var patterns = [
new MatchPattern("*.site1.com"),
new MatchPattern("*.site2.com")
];
function updateActiveTab(tab)
{
var matches = false;
for (var i = 0; i < patterns.length; i++)
if (patterns[i].test(tab.url))
matches = true;
if (matches)
activateWidget();
else
deactivateWidget();
}
もちろん、 tab.url
をテストするために正規表現などを使うだけで、 match-pattern
モジュールを使う必要はありません。
Disclaimer: The code examples are only there to make the approach easier to understand, they haven't been tested.