gpt4 book ai didi

google-chrome - 每个选项卡使用 chrome.browserAction.setPopup

转载 作者:行者123 更新时间:2023-12-03 16:07:56 27 4
gpt4 key购买 nike

我正在编写一个 Chrome 扩展程序,它会根据当前 URL 动态更改弹出窗口的内容。

我在 background.js 中做这样的事情,效果很好:

if(domains.contains(request.url)){
chrome.browserAction.setPopup({
popup: "tracking.html"
});
}else{
chrome.browserAction.setPopup({
popup: "nottracking.html"
});
}

问题是,如果我切换选项卡,则弹出窗口的内容在选项卡之间保持不变。处理这个问题的正确策略是什么?
  • 以某种方式 Hook 选项卡更改事件(如果存在这种可能性)?
  • 将弹出内容的更改限制为当前选项卡? (我确实注意到 chrome.browserAction.setPopup 有一个可选的 tabId 参数,但文档有点少)
  • 还有什么?

  • 非常感谢所有帮助!

    最佳答案

    选项1,绑定(bind)一个事件监听器:

    使用 chrome.tabs.onUpdated 监听 URI 变化,然后是 chrome.browserAction.setPopup 使用给定的 tabId设置给定选项卡的弹出窗口。例如:

    chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) {
    if (domains.contains(tab.url)) {
    chrome.browserAction.setPopup({
    tabId: tabId,
    popup: 'tracking.html'
    });
    } else {
    chrome.browserAction.setPopup({
    tabId: tabId,
    popup: 'nottracking.html'
    });
    }
    });

    关于google-chrome - 每个选项卡使用 chrome.browserAction.setPopup,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10071357/

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