Iframe resizing с scrollheight в хром/сафари

Я пытаюсь изменить размер (сделать больше или меньше) iframe на основе его содержимого. После щелчка на каждой странице вызывается метод, который выполняет изменение размера.

В Chrome я могу сделать iframe больше, но не меньше. document.body.scrollHeight всегда самое большое значение.

Итак, если одна большая страница устанавливает # iframe.height = '620px', а кто-то нажимает на ссылку на страницу с меньшим количеством содержимого scrollHeight останется на уровне 620 пикселей вместо уменьшения.

Каков правильный способ обращения с этим в Chrome/Safari?

Ответ 1

Прежде чем запрашивать высоту документа внутри iframe, вы должны установить высоту объекта iframe на "auto". Что-то вроде этого:

objIframe = document.getElementById('theIframeId');    
objIframe.style.height = 'auto';

И теперь:

document.body.scrollHeight

возвращает фактическую высоту документа.

Ответ 2

Вместо этого вы пытались использовать document.documentElement.scrollHeight?