添加一个用户更改选项卡时触发的侦听器

时间:2013-08-10 14:02:51

标签: javascript google-chrome-extension

我正在创建Chrome扩展程序并尝试在每次用户更改标签时触发一个功能。我一直在关注webRequest API中的监听器和chrome.tabs,但无法确定要使用什么,以及什么不能使用。

我需要从标签中获取的唯一信息是其网址。

1 个答案:

答案 0 :(得分:4)

看看chrome.tabs.onActivated

  

窗口中的活动标签更改时触发。请注意标签的网址   可能不会在此事件触发时设置,但您可以收听   设置URL时要通知的onUpdated事件。   
   - Google Documentation

chrome.tabs.onActivated.addListener(function(activeInfo) {
    chrome.tabs.get(activeInfo.tabId, function (tab) {
        mySuperCallback(tab.url);
    });
});

chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, updatedTab) {
    chrome.tabs.query({'active': true}, function (activeTabs) {
        var activeTab = activeTabs[0];

        if (activeTab == updatedTab) {
            mySuperCallback(activeTab.url);
        }
    });
});

function mySuperCallback(newUrl) {
    // ...
}

它肯定适用于背景页面(正如a comment中确认的Locercus),但请考虑使用event pages(自Chrome 22以来稳定)。