2014-12-30 23 views
5

Tworzę rozszerzenie chrome i moim problemem jest to, że chrome.tabs.onUpdated.addListener() jest wywoływane wiele razy.chrome.tabs.onUpdated.addListener() o nazwie wiele razy

Moje kodu jest jak ten

chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) { 
    if(changeInfo.status == 'complete' && tab.status == 'complete' && tab.url != undefined){ 
     doSomething 
    } 
}); 

Jest to związane z Chrome Issue 162543 i wydaje się ustalone, ale nadal mam ten problem.

+0

Czy detektor zdarzeń jest uruchamiany wiele razy lub czy uruchamia się wiele zdarzeń? – abraham

+0

Detektor zdarzeń –

+1

Czy możesz wysłać swój plik manifest.json? Jeśli masz wartość "persistent": false w swoim wpisie w tle, możesz uzyskać wiele połączeń w zdarzeniu onUpdated. – Paul

Odpowiedz

2

Należy pamiętać, że chrome.tabs.onUpdated zostanie również uruchomiony dla elementów iframe, jeśli strona zawiera wiele elementów iframe, każde ukończone iframe wywoła zdarzenie, mimo że zostało zaznaczone changeInfo.status.

Aby rozwiązać ten problem, możesz rzucić okiem na moją odpowiedź w tym poście Chrome extension - page update twice then removed on YouTube i użyć chrome.webNavigation.onCompleted lub chrome.webNavigation.onHistoryStateUpdated, która zależy od twoich stron testujących.

Powiązane problemy