【发布时间】:2015-11-19 21:09:55
【问题描述】:
我正在开发一个处理某些 cookie 的 chrome 扩展程序。大多数操作发生在后台服务中,但我需要更新图标并将数据传递给当前选项卡的浏览器操作。
我正在寻找类似于 AdBlock 扩展的操作。 AdBlock 会在图标的右下角加载一个用于阻止广告数量的小数字,因此它因标签而异。
当我从后台服务执行此操作时,它似乎在所有浏览选项卡中都发生了变化。有扩展经验的人可以为我指出正确的方向吗?
【问题讨论】:
我正在开发一个处理某些 cookie 的 chrome 扩展程序。大多数操作发生在后台服务中,但我需要更新图标并将数据传递给当前选项卡的浏览器操作。
我正在寻找类似于 AdBlock 扩展的操作。 AdBlock 会在图标的右下角加载一个用于阻止广告数量的小数字,因此它因标签而异。
当我从后台服务执行此操作时,它似乎在所有浏览选项卡中都发生了变化。有扩展经验的人可以为我指出正确的方向吗?
【问题讨论】:
这应该让你开始。
setInterval(function(){//every second
chrome.tabs.getSelected(null,function(tab) {//on the current tab,
chrome.browserAction.getBadgeText({tabId:tab.id}, function(badgeText){//get the tab's badge text
if(badgeText.length<1){
badgeText="0";//set the text if its empty
}
chrome.browserAction.setBadgeText({tabId:tab.id,text:badgeText/1+1+""});//and add one.
});
});
},1000);
确保不要在控制台中运行它,因为 chrome 会获取开发人员工具窗口 id,并且由于没有有效的选项卡具有该 id,它会更改每个选项卡的 badgeText。
【讨论】:
你只需要在设置的时候包含tab id,比如:
chrome.browserAction.setBadgeText({ text: "5", tabId: tab.id })
【讨论】: