Проблема с регулировкой высоты <iframe>: scrollHeight возвращает 0 - PullRequest
0 голосов
/ 08 июля 2019

Я работаю над почтовым ящиком, получаю письмо по HTTP-запросу и пытаюсь отобразить его в iframe, поскольку это может быть обычный текст или электронное письмо в формате HTML.

Нет проблем споказать содержимое, но я не могу отрегулировать высоту для этого содержимого.Я всегда получаю 0 от contentWindow.document.body.scrollHeight.

. Я пытался выяснить, исходит ли это от того факта, что письмо может быть в виде обычного текста, но это то же самое для html-письма.

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

Кстати, iframe.contentWindow.document.body - это [Object HTMLBodyElement]

$scope.iFrameDisplayMail = function (Mail_content) {

    var iframe = document.getElementById('mail-display');
    if (Mail_content.html != null) {
      iframe.contentWindow.document.write(Mail_content.html);
    } else {
      iframe.contentWindow.document.write(Mail_content.plain);
    }
    iframe.style.width = 'auto';
    alert(iframe.contentWindow.document.body.scrollHeight);
    iframe.style.height = iframe.contentWindow.document.body.scrollHeight + 'px';
    iframe.contentWindow.document.close();  
}

В консоли нет ошибок по этому поводу.

1 Ответ

0 голосов
/ 08 июля 2019

На основе вашего примера вы можете использовать:

var iframe = document.getElementById('mail-display');
var scrollHeight = iframe.ownerDocument.body.scrollHeight;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...