このtabs API関連のイベントリスナーもBackgroundかEvent Pagesからだいたい使うので、テンプレート化した。
// On tab created (Note that the tab's URL may not be set at the time this event fired.)
chrome.tabs.onCreated.addListener(function(tab) {
});
// On tab updated
chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) {
if (changeInfo.status == "loading") {
} else if (changeInfo.status == "complete") {
}
});
// On tab removed
chrome.tabs.onRemoved.addListener(function(tabId) {
});
注意点
onCreated
発生時点ではtab
にurl
がセットされていない(ことが多い)ので、url
を必要とする処理はonUpdated
で行う。onUpdated
では1ページのロードでloading
とcomplete
の2回発生するので、changeInfo.status
を見ておかないと重複して実行される。