Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Изменить высоту iframe (https://javascript.ru/forum/misc/46765-izmenit-vysotu-iframe.html)

parinь 23.04.2014 08:56

Изменить высоту iframe
 
Привет, котаны!
Выбираю на странице значение "папка" (поле <select>), и мой скрипт показывает во фрейме страницу из этой папки. Страницы разные по высоте, поэтому во фрейм не всегда посещаются. Меняю высоту фрейма, но прокрутка остаётся. Например, выбираю самый длинный файл - он прокручивается, выбираю поменьше - фрейм становится по высоте как первый (типа стормозил на шаг) и больше не меняется при другом выборе.
var фреймСпис = document.getElementsByName("список")[0];
фреймСпис.setAttribute("src", папка+"список.html");
фреймСпис.style.height = фреймСпис.contentWindow.document.body.scrollHeight+4+'px';

Это ведь можно зарешать? (IE11)

danik.js 23.04.2014 09:53

Скорее всего содержимое фрейма не успевает подгрузиться. Об этом может сигнализировать ошибка в консоли браузера (ибо в таком случае нет никакого contentWindow.document еще). Не заглядывал туды?
Вешай обработчик события onload на фрейм, и уже в нем корректируй размеры.
Цитата:

Сообщение от parinь
фреймСпис.setAttribute("src", );

Зачем атрибут выставлять? Почему не фреймСпис.src = папка+"список.html"?

Бля, смесь кириллицы с латиницей - мягко скажем не разумно). Ты че, 1С-ник чтоли?

parinь 23.04.2014 10:50

не, ошибки не вываливалось, однако действительно, если повесить onload на фрейм, а не на contentWindow.document, то он растягивается). К сожалению, не сжимается обратно, если подгрузить список покороче(. Греша на внешний <div> уменьшил и его, но не проканало.
Цитата:

Сообщение от danik.js (Сообщение 308904)
Зачем атрибут выставлять? Почему не фреймСпис.src = папка+"список.html"?

Че-то я не подумал так. Тогда, наверно, можно var ввод = document.createElement('input');ввод.setAttribute('name', "мцыри"); ввод.name="мцыри";
Цитата:

Сообщение от danik.js (Сообщение 308904)
Бля, смесь кириллицы с латиницей - мягко скажем не разумно).

Я думал, сейчас так модно :-?

danik.js 23.04.2014 13:37

Цитата:

Сообщение от parinь
К сожалению, не сжимается обратно, если подгрузить список покороче

Возможно scrollHeight элемента body не может быть меньше высоты фрейма. По умолчанию так не бывает вроде, однако с таким css будет именно так:
html{
    height: 100%;
}
body{
    min-height: 100%;
}


В таком случае перед замером изменяй стили чтобы они не влияли на замер. Либо проставляй временно min-height:auto либо выставляй высоту фрейма в ноль.
Цитата:

Сообщение от parinь
Тогда, наверно, можно var ввод

Да. Это касается всех атрибутов, кроме кастомных.

parinь 23.04.2014 14:43

danik.js,
Thanks a lot!


Часовой пояс GMT +3, время: 07:11.