После прочтения большого количества ответов здесь у всех возникла одна и та же проблема - не уменьшать размер при необходимости.Я думаю, что большинство людей просто изменяют размеры после загрузки кадра, так что, возможно, это не волнует.Мне нужно изменить размер снова каждый раз, когда размер окна изменяется.Так что для меня, если бы они сузили окно, то iframe стал бы очень высоким, тогда, когда они увеличили окно, оно должно снова стать короче.Это не происходило в некоторых браузерах, потому что scrollHeight, clientHeight, jquery height () и любая другая высота, которую я мог найти с помощью инспекторов DOM (FireBug / Chrome Dev Tools), не сообщали, что высота тела или html была короче после того, как iframe былсделано шире.Как будто в теле была установлена минимальная высота 100% или что-то в этом роде.
Для меня решение было сделать высоту iframe 0, затем проверить scrollHeight, а затем установить это значение.Чтобы избежать прокручивания полосы прокрутки на моей странице, я установил высоту родительского элемента (которая содержит iframe) на высоту iframe, чтобы при этом общий размер страницы оставался фиксированным.
Хотелось бы, чтобы у меня был чищепример, но вот код, который у меня есть:
$(element).parent().height($(element).height());
$(element).height(0);
$(element).height($(element).contents().height());
$(element).parent().height("");
Элемент - мой iframe.
У iframe установлен стиль width: 100%, и он внутри div со стилями по умолчанию (блок).
Код является jquery и устанавливает высоту div равной высоте iframe, затем устанавливает iframe на 0 высоту, а затем устанавливает iframe на высоту содержимого.Если я уберу строку, которая устанавливает для iframe значение 0, то iframe будет увеличиваться по мере необходимости, но никогда не уменьшаться.