Ramapriya
@Ramapriya

Как автоматически задать высоту фрейма?

Всем привет!

Есть некая страница с фреймом, в который подгружаются разные внешние страницы (с других доменов), в зависимости от параметров и запросов.

Как передать в iframe высоту загружаемой страницы, чтобы содержимое не обрезалось?

Заранее спасибо
  • Вопрос задан
  • 204 просмотра
Пригласить эксперта
Ответы на вопрос 4
IceRD
@IceRD
С src фрейма можно передать информацию url?h=значение&w=значение.
Контейнер может задавать рамки для фрейма, а контент который вставляете должен подстраиваться.
Ответ написан
Ramapriya
@Ramapriya Автор вопроса
В JS нет способа получить размер содержимого окна и добавить его в свойства фрейма?
Ответ написан
mahmudchon
@mahmudchon
У меня однажды была такая задача, в которой данные подгружались к странице через iframe. Фактически, это была html форма, после успешного заполнения которой на странице в самом низу iframe появлялась еще одна, с возможностью отправки результата на почту. И вот весь этот динамический контент добавлял неприятный scrollbar. Я сильно не вникал, да и тогда некогда было, помогло такое решение - davidjbradshaw.github.io/iframe-resizer
Там же есть и примеры. По реализации, если не ошибаюсь, там была особенность - js файл нужно подключать к обеим страницам. Как к той, на которой идет подключение, так и к подключаемой.
Мой живой пример засунули сюда - https://help-ddu.ru/kalkulyator-neustojki
После заполнения формы и расчета тут еще подгружаются данные снизу, скрипт перестраивает блок налету.
Ответ написан
Комментировать
erge
@erge
Примус починяю
Про Размеры и прокрутка страницы
Про Общение между окнами

Политика «Одинакового источника» говорит, что:

  • если у нас есть ссылка на другой объект window, например, на всплывающее окно, созданное с помощью window.open или на window из и у этого окна тот же источник, то к нему будет полный доступ.
  • в противном случае, если у него другой источник, мы не сможем обращаться к его переменным, объекту document и так далее. Единственное исключение – объект location: его можно изменять (таким образом перенаправляя пользователя). Но нельзя читать location (нельзя узнать, где находится пользователь, чтобы не было никаких утечек информации).



и есть решение по кроссдоменным iframe
Автоматическая кросс-доменная установка высоты Iframe

PS: но скрипты должны интегрироваться на обе стороны, на странице хосте и на странице в ифрейме.

PPS:
<iframe src="<?= $link ?>?partnerID=<?= $partnerID ?>" width="100%" height="100%" scroll="no" marginheight="0" frameborder="0" id="<?=$code?>" name="<?=$code?>"></iframe>

если размеры известны, то их можно и задать в пикселях.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы