o0o*_*o0o 6 javascript google-chrome-extension
我的扩展使用tab.url获取数据并将其放在chrome.browserAction.setBadgeText中.当我打开一个新标签时,它会重置.如何仅为新标签更新BadgeText?为旧的保持不变?
扩展布局:
chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab){
function(tabId, changeInfo, tab){
//using tab.url and XMLHttpRequest() i get newText for:
chrome.browserAction.setBadgeText({text: newText});
};
});
Run Code Online (Sandbox Code Playgroud)
两个关键点应该可以帮助您解决问题.
1)chrome.browserAction.setBadgeText有一个可选参数,tabId它将值绑定到选项卡.
2)您应该chrome.tabs.onUpdated按changeInfo字段过滤事件.
因此,将您的代码更改为:
chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab){
function(tabId, changeInfo, tab){
if(!changeInfo.url) return; // URL did not change
// Might be better to analyze the URL to exclude things like anchor changes
/* ... */
chrome.browserAction.setBadgeText({text: newText, tabId: tab.id});
};
});
Run Code Online (Sandbox Code Playgroud)
这可能无法捕捉新标签的创建; 如果没有,也听onCreated
| 归档时间: |
|
| 查看次数: |
1648 次 |
| 最近记录: |