我在后台页面使用监听器来知道标签页何时加载:
chrome.tabs.onUpdated.addListener(function (tabId) { })
但是监听器会被触发两次:页面开始加载时和页面加载完成时。有没有办法区分这两种情况?
我在后台页面使用监听器来知道标签页何时加载:
chrome.tabs.onUpdated.addListener(function (tabId) { })
但是监听器会被触发两次:页面开始加载时和页面加载完成时。有没有办法区分这两种情况?
很幸运地找到了解决方案。
这里有一个额外的参数,它保存了状态值:
chrome.tabs.onUpdated.addListener(function (tabId , info) {
if (info.status === 'complete') {
// your code ...
}
});
状态可以是 loading
或 complete
。
window.onready
。 - Peter Ehrlich在打开一个标签页后,我希望有一种更简单的方法来完成这件事。
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');