В скрипте содержимого расширения chrome я хотел бы открыть всплывающее окно и получить ссылку, чтобы я мог отправлять сообщения в окно и закрывать его в событии onbeforeunload
.
Однако кажется, что ссылка существует только в локальной области, и она теряется в любых других замыканиях.
Например, если я использую следующий код в скрипте содержимого:
var popup = window.open("https://example.com/", 'popwin');
console.log("@1", popup);
setTimeout(function(){
console.log("@2", popup);
}, 2000);
Здесьэто то, что я вижу в окне консоли
@ 1 Window {window: Окно, self: Window, местоположение: Location, закрыто: false, frames: Window,…}
@2 global {}
И это даже то же самое, если я использую свойство глобального окна для хранения ссылки, то есть
window.popup = window.open("https://example.com/", 'popwin');
console.log("@1", window.popup);
setTimeout(function(){
console.log("@2", window.popup);
}, 2000);
@ 1 Window {window: Window, self: Window, location: Location, closed: false, фреймы: Window,…}
@ 2 global {}
Есть идеи по этому поводу?Большое спасибо.