У меня встроенный iframe на моей странице - это только часть моей страницы, а не все. Я перезагружаю iframe динамически и хочу, чтобы он изменялся в соответствии с высотой содержимого внутри него.Установите высоту iframe по отношению к внутреннему контенту (в том же домене)
Содержимое доступно в том же доменном классе, так что (надеюсь?) Не нужно такое сложное решение, как задано в Resizing an iframe based on content.
Это код, который я использую для его изменения, но он не работает. Кадр перезагружается нормально, но высота всегда остается неизменной. Может ли кто-нибудь посоветовать?
Я также пробовал верхнее решение в How to autosize an iframe без везения.
Я думаю, это может быть потому, что страница внутри iframe занимает некоторое время, чтобы загрузить, поэтому она не закончила загрузку к тому времени, когда установлена высота. Может быть.
<iframe frameborder=0 border=0 src="" width="100%" height="400px" name="commentframe" id="commentframe"></iframe>
function reload_frame(uid) {
document.getElementById('commentframe').src = "comments.html?" + uid;
document.getElementById('commentframe').height = document.getElementById('commentframe').contentWindow.document.body.scrollHeight + "px";
}
Update:
Попытка, не повезло:
<iframe frameborder=0 border=0 src="" width="100%" height="400px" name="commentframe" id="commentframe" onload="reload_frame()"></iframe>
function reload_frame() {
var commentframe = document.getElementById('commentframe');
commentframe.style.height = (commentframe.scrollHeight + 10).toString() + "px";
}
Это делает изменить размер IFRAME, но только до + 10px своей первоначальной высоты - если содержание больше, чем это, он по-прежнему скрыт.
Возможно, мне нужно событие onload внутри тела самого iframe?
изменить 'комментарийframe.style.height' на' commentframe.height' (в разделе 'update'). – alfasin