Взгляните на chrome.tabs.onActivated:
Срабатывает, когда активная вкладка в окне изменения. Обратите внимание, что URL-адрес табуляции не может быть установлен во время запуска этого события, но вы можете прослушивать onUpdated events, чтобы получать уведомления о появлении URL-адреса.
— 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) {
// ...
}
Это определенно работает в фоновом режиме страниц (как Locercus подтверждено в a comment), но, пожалуйста, рассмотреть вопрос об использовании event pages (стабильный, так как Chrome 22) вместо этого.
Я взглянул на него. Но как я буду искать URL, когда он будет установлен. Мне нужно, чтобы событие срабатывало, когда вы переходите на новый URL-адрес на активной вкладке. – miestasmia
@Locercus Используйте [chrome.tabs.onUpdated] (https://developer.chrome.com/extensions/tabs.html#event-onUpdated) и проверьте, является ли измененная вкладка активной вкладкой в текущем окне * и * URL был изменен. – ComFreek
Не могли бы вы привести мне пример в контексте? Где я разместил onActivated прослушиватель? Я уверен, что это не сработает в popup.js – miestasmia