Chrome扩展程序:如何从后台页面了解标签何时完成加载

时间:2010-01-27 20:12:06

标签: google-chrome

我在后台页面中使用了一个监听器来了解加载选项卡的时间:

chrome.tabs.onUpdated.addListener(function (tabId) { })

但是听众被解雇了两次:当页面开始加载时,页面已经完成。有没有办法区分这两种情况?

2 个答案:

答案 0 :(得分:74)

幸运的是找到了解决方案。

additional parameter保存状态值:

chrome.tabs.onUpdated.addListener(function (tabId , info) {
  if (info.status === 'complete') {
    // your code ...
  }
});

状态可以是loadingcomplete

答案 1 :(得分:8)

打开标签后,我想要一种更简单的方法来执行此操作

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');