Все решения, приведенные к настоящему времени, учитывают только один раз изменение размера. Вы упоминаете, что хотите изменить размер iFrame после изменения содержимого. Для этого вам необходимо выполнить функцию внутри iFrame (после изменения содержимого вам нужно запустить событие, чтобы сообщить, что содержимое изменилось).
Я на некоторое время застрял с этим, так как код внутри iFrame казался ограниченным DOM внутри iFrame (и не мог редактировать iFrame), а код, выполняемый за пределами iFrame, застрял с DOM вне iFrame ( и не смог подобрать событие изнутри iFrame).
Решение пришло из-за обнаружения (с помощью коллеги), что jQuery может сказать, какой DOM использовать. В этом случае DOM родительского окна.
Таким образом, такой код делает то, что вам нужно (при запуске внутри iFrame):
<script type="text/javascript">
jQuery(document).ready(function () {
jQuery("#IDofControlFiringResizeEvent").click(function () {
var frame = $('#IDofiframeInMainWindow', window.parent.document);
var height = jQuery("#IDofContainerInsideiFrame").height();
frame.height(height + 15);
});
});
</script>