Chrome扩展程序:如何从背景页面知道选项卡何时完成加载
我在后台页面中使用一个监听器来知道何时加载一个标签:
chrome.tabs.onUpdated.addListener(function (tabId) { })
但是这个监听器被激发了两次:页面开始加载,页面完成。有没有办法区分这两种情况?
幸运的是find了解决办法。
还有一个附加参数可以保存状态值:
chrome.tabs.onUpdated.addListener(function (tabId , info) { if (info.status === 'complete') { // your code ... } });
状态可以是loading
或complete
。
打开选项卡后,我想要一个更简单的方法来做到这一点
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');