我写了一个扩展,它改变了他在网站上的图标,匹配了 if 子句。 看看:
chrome.tabs.onActivated.addListener(
function (activeInfo) {
chrome.tabs.get(activeInfo.tabId, function(tab){
hosterRegExp(tab.url); //Function to change Icon
});
}
);
chrome.tabs.onUpdated.addListener(
function checkHosts(tabId, changeInfo, tab) {
hosterRegExp(tab.url); //Function to change Icon
}
);
每次更改事件选项卡或重新加载选项卡时,都会使用当前 URL 调用函数 hosterRegExp。这工作得很好。
现在,这不适用于两个窗口。如果我在两个窗口之间进行更改,它不会调用 hosterRegExp();这是因为事件选项卡不会重新加载,也不会更改事件选项卡。
此外,我找不到另一个可以帮助我的 EventHandler。 所以我还必须检查当前的windowID?我不知道 - 请帮助我。
谢谢。
最佳答案
就像 RobW 告诉我的那样,我正在使用
chrome.windows.onFocusChanged
现在提供 API。
嗯,就我而言,它看起来像这样:
chrome.windows.onFocusChanged.addListener(function()
{
chrome.tabs.query({currentWindow: true, active: true}, function(tab)
{
hosterRegExp(tab[0].url);
});
});
我使用查询方法来获取焦点更改后的选项卡。虽然一个窗口中不可能有 2 个选项卡处于事件状态,但该数组每次只有一个元素。
这并不漂亮,如果有人有更好、更简洁的代码,请告诉我!
关于javascript - 谷歌扩展程序 : Tab Events - changing windows?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19201718/