Прежде всего, когда загружено ваше начальное окно first , оно кэшируется . Поэтому при создании окна new из окна first содержимое нового окна не загружается с сервера, а загружается из кэша. Следовательно, событие onload
не возникает при создании окна new .
Однако в этом случае происходит событие onpageshow
. Это всегда происходит после события onload
и даже когда страница загружена из кэша.
Это объясняется на веб-сайте w3school :
Событие onpageshow аналогично событию onload
, за исключением того, что оно происходит после события onload при первой загрузке страницы. Кроме того, событие onpageshow
происходит каждый раз, когда страница загружается, тогда как событие onload не происходит, когда страница загружается из кэша.
Итак, это рабочее решение вашей проблемы с использованием onpageshow
прослушивателя событий на newWindow
вместо onload
:
var newWindow = window.open("replaceWindow.html", "newWindow", "width=500,height=500");
newWindow.onpageshow = () => {
let newDiv = newWindow.document.createElement("div");
newDiv.className = "card-body";
newWindow.document.getElementsByClassName('contain').item(0).appendChild(newDiv);
}