我创建了一个Chrome扩展程序。该功能可以在单个页面中正常工作。 当前的问题是如何检查每个选项卡中的扩展名是否已激活。因此,我可以重新初始化工具栏图标。
复制步骤: 1.在页面A中,激活扩展名,将工具栏图标更改为关闭图标。 2.打开一个新页面B,该图标仍然使用关闭图标。
我只想使工具栏图标反映到每个页面。
我尝试使用onUpdated标签,但这会影响扩展程序激活的页面。
chrome.tabs.onUpdated.addListener(function (tabId, changeInfo, tab) {
chrome.browserAction.setIcon({
path: "images/logo.png"
});
});
答案 0 :(得分:0)
您可以通过 tabId 键调用chrome.browserAction.setIcon(),例如:
chrome.browserAction.setIcon({
tabId: my-tab-id,
path: {"images/logo.png"}
});
在某些情况下,您还可以将图标从背景更新到所有选项卡,因此您可以执行以下操作:
if (someCondition) {
chrome.tabs.query({}, function(tabs) {
tabs.forEach(tab => {
chrome.browserAction.setIcon({
tabId: tab.id,
path: {"images/logo-A.png"}//ICON A
});
});
});
} else {
chrome.tabs.query({}, function(tabs) {
tabs.forEach(tab => {
chrome.browserAction.setIcon({
tabId: tab.id,
path: {"images/logo-B.png"}//ICON B
});
});
});
}