特定のタブにのみバッジ番号を設定するにはどうすればよいですか?これまでのところ、すべてのタブにバッジ番号を設定するコードがあります。私はたくさんのことを読んできましたが、これに関する情報がたくさんあるようには見えないので、これはここです。Safari拡張機能 - 特定のタブにのみバッジ番号を設定するにはどうすればよいですか?
Adblock Plusのように、特定のタブのバッジ番号を設定したいと思います。これはChromeなどではかなり簡単ですが、Safariの場合はそうではありません。
誰もが自分好みのプラスのような機能拡張は、特定のタブのバッジ番号を示して方法を知っていますか?
これまではこのコードしかありませんが、言及したように、すべてのタブにバッジが設定されています。これは私が望む結果ではありません。
safari.extension.toolbarItems[0].badge = 2;
編集:
私は自分好みプラス、およびこの機能を持っていたいくつかの他の拡張機能のソースコードを見てきました。そして、それはいくつかのプロトタイプを使用しているようです。
自分好みプラス背景の抜粋:
BrowserAction.prototype = {
_set: function(name, value)
{
var toolbarItem = getToolbarItemForWindow(this._page._tab.browserWindow);
if (!toolbarItem)
{
return;
}
var property = toolbarItemProperties[name];
if (!property)
{
property = toolbarItemProperties[name] = {
pages: new ext.PageMap(),
global: toolbarItem[name]
};
}
property.pages.set(this._page, value);
if (isPageActive(this._page))
{
toolbarItem[name] = value;
}
},
setIcon: function(path)
{
this._set("image", safari.extension.baseURI + path.replace("$size", "16"));
},
setBadge: function(badge)
{
if (!badge)
{
this._set("badge", 0);
}
else if ("number" in badge)
{
this._set("badge", badge.number);
}
}
};
コンテンツスクリプト(adblockplus.js)
FilterNotifier.on("filter.hitCount", function(filter, newValue, oldValue, page)
{
if (!(filter instanceof BlockingFilter) || !page)
{
return;
}
Prefs.blocked_total++;
var blocked = blockedPerPage.get(page) || 0;
blockedPerPage.set(page, ++blocked);
if (Prefs.show_statsinicon)
{
page.browserAction.setBadge(
{
color: badgeColor,
number: blocked
});
}
});
それは、これが自分好みのプラスはそれをしない方法ですが、これまでのところ、私はすることができていないようですそれを複製する。まだ試みています。
誰も何も持っていませんか? – Anders