Внутри iframe вызываешь метод
parent.postMessage({height: document.body.scrollHeight}, '*');
Он отправляет родителю высоту
Внутри родителя пишешь вот такой код
// прослушиваем все сообщения из iframe-ов
window.addEventListener("message", function(event)
{
var frames = document.getElementsByClassName('iframe');
// задаем высоту iframe из источников
for (var i = 0; i < frames.length; i++)
{
// если iframe не соответствует источнику, то пропускаем
if (frames[i].contentWindow !== event.source)
continue;
if(typeof event.data.height != 'undefined')
{
// задаем высоту нужному iframe
$(frames[i]).css({'height': event.data.height + 20 + 'px'});
}
}
}
Могут быть нюансы с CORS