Расширения Chrome: как узнать, когда вкладка закончила загрузку, из фоновой страницы
Я использую прослушиватель на исходной странице, чтобы узнать, когда загружена вкладка:
chrome.tabs.onUpdated.addListener(function (tabId) { })
Но прослушиватель запускается дважды: когда страница загрузилась и когда страница закончилась. Есть ли способ разграничить два случая?
Ответы
Ответ 1
К счастью, нашли решение.
Существует дополнительный параметр который содержит значение состояния:
chrome.tabs.onUpdated.addListener(function (tabId , info) {
if (info.status === 'complete') {
// your code ...
}
});
Статус может быть либо loading
, либо complete
.
Ответ 2
Мне понадобился более простой способ сделать это после открытия вкладки
function createTab (url) {
return new Promise(resolve => {
chrome.tabs.create({url}, async tab => {
chrome.tabs.onUpdated.addListener(function listener (tabId, info) {
if (info.status === 'complete' && tabId === tab.id) {
chrome.tabs.onUpdated.removeListener(listener);
resolve(tab);
}
});
});
});
}
поэтому было бы
let tab = await createTab('http://google.com');