Держите всплывающее окно расширения браузера открытым, когда дочернее окно закрывается с помощью `window.close ()` - PullRequest
0 голосов
/ 29 апреля 2020
Всплывающее расширение

My Chrome открывает новое окно через window.open(). Но когда я вызываю close для ссылки на новое окно, оно фактически закрывает и окно, созданное программным способом, и само всплывающее окно расширения. То же самое происходит, когда я закрываю новое окно с помощью клавиатуры (Cmd + W на Ма c), но не , когда закрываю его курсором из кнопки X (закрыть) окна ( только окно закрывается, а расширение остается открытым).

Вот как окно открывается и закрывается:

const popup = window.open('domain.com/extension', 'Title', params)
window.addEventListener('message', async ({ data }) => {
  if (!data.status) popup.close()
})

То же самое происходит, когда само дочернее окно вызывает window.close():

if (location.pathname === '/extension') {
  window.opener.postMessage({ status: condition }, '*')
  return window.close()
}

Это из-за смещения фокуса между windows (то есть окно с открытым расширением временно теряет фокус)? Есть ли какой-нибудь известный способ для этого?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...