2013-04-03 11 views
16

Próbowałem już window.unload, window.beforeunload, itp. Poszukuję sposobu powiadomienia mojej strony tła po zamknięciu okna popup.Czy jest jakieś wydarzenie, gdy wyskakujące okienko rozszerzenia Chrome jest zamknięte?

+0

Czy próbowałeś [ 'chrome.tabs.onRemoved'] (http://developer.chrome.com/extensions/tabs.html#event-onRemoved) lub może [ 'chrome.windows.onRemoved'] (http://developer.chrome.com/extensions/windows.html#event-onRemoved), jeśli liczy się jako okno? – BeardFist

+0

Nie liczy się jako okno. – ebi

+1

Zobacz też: [Czy wywołuje on wyzwalacz zdarzeń dla popup.html w rozszerzeniu google chrome?] (Http://stackoverflow.com/q/2315863/405550) – Zaz

Odpowiedz

15

Możesz spróbować tego. Po zamknięciu wyskakującego okienka połączy się ze stroną w tle za pomocą chrome.runtime.connect (lub chrome.extension.connect przed Chrome 26) i port.onDisconnect na stronie w tle.

+0

Tak właśnie myślałem, to powinno wystarczyć, dzięki . – ebi

+0

'port.onDisconnect' uruchamia się po usunięciu/usunięciu rozszerzenia, gdy użytkownik przestaje go używać, a okno podręczne zamyka się. – Paralellos

2

Obecnie nie ma sposobu, aby dowiedzieć się, kiedy popup działanie przeglądarka była zamknięte window.unonload jest wyzwalany natychmiast po zakończeniu popup załadunku, a nie kiedy jest zamknięte. Wystąpił błąd crbug.com/31262.

Trzy dostępne opcje to: well described here. Obejmują one sztuczkę port.onDisconnect i okresowe łączenie chrome.extension.getViews() ze strony podręcznej lub strony w tle.

+0

To jest odpowiedź typu "link-only". – msangel

+0

Dzięki za powiadomienie, rozszerzony. – user7610

0

W końcu znalazłem rozwiązanie. Umieścić poniżej kod w background.js/eventPage.js:

chrome.windows.onFocusChanged.addListener(function(window) { 
    //handle close event 
}); 
Powiązane problemy