vool
@vool
Разработчик

Как динамически обновлять дочернее окно?

Есть такой код:
let y = window.open("", "test");
Как мне динамически обновить html-код открытого окна, чтобы не перезагружать или не переоткрывать снова

Обновление: пробовал через y.document.write() но при каждом новом обращении к y.document.write() он не перезаписывает а дозаписывает
  • Вопрос задан
  • 107 просмотров
Решения вопроса 2
wisgest
@wisgest
Не ИТ-специалист
при каждом новом обращении к y.document.write() он не перезаписывает а дозаписывает

Закройте документ после document.write():
y.document.close(),
или, наоборот, откройте перед перезаписыванием:
y.document.open().
Ответ написан
Комментировать
vool
@vool Автор вопроса
Разработчик
Итак, благодаря wisgest, я ещё больше улучшил код, всем кто наткнётся на этот вопрос, вот адекватное решение:
let y = window.open("", "test");
function reloadDOM(html) {
  y.document.open();
  y.document.write(html);
  y.document.close();
}
reloadDOM(`<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>replit</title>
  <script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
  <!--CSS-->
</head>

<body>
  <h1 class="comp">I'm a computer</h1>


  <!--JS-->
  <script src="h.js"></script>
  <script>alert(2)</script>
</body>

</html>`);
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Fragster
@Fragster
помогло? отметь решением!
если один origin то неплохо работает это: https://developer.mozilla.org/en-US/docs/Web/API/B...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы