gpt4 book ai didi

javascript - 如何为每个选项卡保留 chrome.browserAction.setBadgeText?

转载 作者:数据小太阳 更新时间:2023-10-29 05:05:50 29 4
gpt4 key购买 nike

我的扩展程序使用 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});
};
});

最佳答案

两个关键点应该可以帮助您解决问题。

1) chrome.browserAction.setBadgeText有一个可选参数 tabId,它将值绑定(bind)到选项卡。

2) 您应该按 changeInfo's fields 过滤 chrome.tabs.onUpdated 事件.

因此,将您的代码更改为:

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});
};
});

这可能无法捕获新标签的创建;如果没有,还要听 onCreated

关于javascript - 如何为每个选项卡保留 chrome.browserAction.setBadgeText?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23713755/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com