Как получить высоту Iframe после записи в его содержимое

#javascript #jquery

Вопрос:

Я записываю содержимое текстовой области в iFrame, поэтому мне нужно установить высоту элемента на родительской странице, чтобы он отображался правильно:

   const $iFrames = $('iframe');

  function iframeLoaded(iFrameID) {
    const iFrame = document.getElementById(iFrameID);
    if (iFrame) {
      const height = `${iFrame.contentWindow.document.body.scrollHeight}px`;
      iFrame.height = '';
      iFrame.height = height;
      console.log('height:', height);
    }
  }

  $iFrames.each((i, frame) => {
    const $frame = $(frame);
    const ta = $frame
      .next('textarea');

    const doc = $(frame)[0].contentWindow.document;
    doc.open();
    doc.write(ta.val());
    doc.close();
    iframeLoaded($frame.attr('id'));
  });
 

Однако в этом примере height константа всегда равна 0, но содержимое загружено правильно. Где я ошибаюсь?