Window.open и изменение DOM нового окна

63
6

Предположим, я открываю новое окно, используя:

newWindow = window.open(newUrl)
var ul = newWindow.document.getElementsByTagName("ul")[0];
ul.innerHTML = "new content";

Однако это не изменяет DOM нового окна вообще.

Есть ли способ сделать то, что я хочу сделать? который изменяет DOM нового окна, открытого через window.open?

Обратите внимание, что последние две строки работают, если я помещаю их в js для открытой страницы, поэтому нет ничего плохого в моем коде управления DOM.

спросил(а) 2021-01-25T08:51:27+03:00 4 месяца, 3 недели назад
1
Решение
99

Можно предположить, что новое окно, которое вы открываете, принадлежит к тому же домену, что и открывающий. Если нет, вы не можете изменить его DOM по соображениям безопасности, поскольку вы нарушаете одну и ту же политику происхождения.

ответил(а) 2021-01-25T08:51:27+03:00 4 месяца, 3 недели назад
45

DOM не будет загружаться сразу после открытия окна. Вы должны вызвать метод для изменения innerHTML после загрузки дочернего окна. Или просто вы можете использовать setTimeout для задержки доступа DOM.

ответил(а) 2021-01-25T08:51:27+03:00 4 месяца, 3 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема