Есть ли событие, когда всплывающее окно расширения Chrome закрыто?

Я уже пробовал window.unload, window.beforeunload и т.д. Я ищу способ уведомлять мою фоновую страницу после закрытия всплывающего окна.

Ответы

Ответ 1

Вы можете попробовать это. Подключитесь к своей фоновой странице chrome.runtime.connect (или chrome.extension.connect до Chrome 26) и port.onDisconnect будет запущена на вашей фоновой странице, когда всплывающее окно закрыто.

Ответ 2

Вероятно, хакерский путь, но на всплывающей странице вы можете прослушать

  window.onblur = function(){}

и отправьте сообщение на активную вкладку.

Ответ 3

В настоящее время нет способа выяснить, когда всплывающее окно действий браузера было закрывается, так как window.unonload запускается сразу после завершения всплывающего окна загрузка, а не когда она закрыта. Для этого есть ошибка crbug.com/31262.

Три доступных обходных пути хорошо описаны здесь. Они включают в себя трюк port.onDisconnect и периодический опрос chrome.extension.getViews() из всплывающей или фоновой страницы.

Ответ 4

Наконец нашел решение. Введите код ниже background.js/eventPage.js:

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