Получение доступа к управлению к окну через метод open
Открываю на странице окно сайта через метод open.
Можно ли как-то получить доступ к окну и вызывать методы работы с элементами на этом окне?
let mywindow = window.open(URL);
//Дальше какие-то операции с mywindow
//к примеру
mywindow.addEventListener("onload", () => {
//...
})
Ответы (2 шт):
Да, можно.
В целом, код из вопроса и так делает то что вам нужно. Проблема в том, что addEventListener вешается не на то событие.
let mywindow = window.open('https://ru.stackoverflow.com');
// onload заменён на load
mywindow.addEventListener("load", () => {
console.log(mywindow.document.querySelector('title').innerText);
})
Так же стоит учитывать Same-origin политику.
Можно только в том случае, если открываемое окно принадлежит тому же домену, либо при открытии url вообще не был указан.
При попытке сделать что-то лишнее будет происходить ошибка вроде
Uncaught DOMException: Blocked a frame with origin "https://ru.stackoverflow.com" from accessing a cross-origin frame.
Доступ к окну с протоколом data: таже будет считаться кроссдоменным.