<iframe> - Как показать всю высоту указанной страницы?

У меня есть приложение, которое я хотел бы встроить в CMS нашей компании. Единственный способ сделать это (как мне сказали) - загрузить его в <iframe>.

Легко: просто установите height и width на 100%! Только вот это не работает.

Я узнал о настройке frameborder на 0, так что это, по крайней мере, выглядит как часть сайта, но я бы предпочел не иметь уродливую полосу прокрутки внутри - страницу, на которой она уже есть.

Вы знаете какие-нибудь уловки, чтобы сделать это?

Обновлено: Думаю, мне нужно несколько прояснить свой вопрос:

  • компания CMS отображает чушь и прочее для всего нашего сайта
  • большинство страниц, созданных через CMS
  • моего приложения нет, но они позволят мне встроить его в <iframe>
  • У меня нет контроля над iframe, поэтому любое решение должно работать с указанной страницы (в соответствии с атрибутом src тега iframe)
  • CMS отображает нижний колонтитул, поэтому установка высоты на 1 миллион пикселей - не лучшая идея.

Могу ли я получить доступ к DOM родительских страниц с указанной страницы? Это может помочь, но я вижу, что некоторые люди могут не захотеть, чтобы это было возможно ...

Этот метод, похоже, работает (почерпнутый из нескольких источников, но вдохновлен связь из принятого ответа:

В родительском документе:

<iframe id = "MyIFRAME" name = "MyIFRAME" 
    src = "http://localhost/child.html"
    scrolling = "auto" width = "100%" frameborder = "0">
    no iframes supported...
</iframe>

У ребенка:

<!-- ... -->
<body>
<script type = "text/javascript">
    function resizeIframe() {

        var docHeight;
        if (typeof document.height != 'undefined') {
            docHeight = document.height;
        }
        else if (document.compatMode && document.compatMode != 'BackCompat') {
            docHeight = document.documentElement.scrollHeight;
        }
        else if (document.body 
            && typeof document.body.scrollHeight != 'undefined') {
            docHeight = document.body.scrollHeight;
        }

        // magic number: suppress generation of scrollbars...
        docHeight += 20;

        parent.document.getElementById('MyIFRAME').style.height = docHeight + "px";    
    }
    parent.document.getElementById('MyIFRAME').onload = resizeIframe;
    parent.window.onresize = resizeIframe;
</script>               
</body>

КСТАТИ: Это будет работать, только если родитель и потомок находятся в одном домене из-за ограничения в JavaScript по соображениям безопасности ...

Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
8
0
12 484
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Вы можете просто использовать язык сценариев для включения страницы в родительскую страницу, в противном случае вы можете попробовать один из этих методов javascript:

http://brondsema.net/blog/index.php/2007/06/06/100_height_iframehttp://www.experts-exchange.com/Web_Development/Web_Languages-Standards/PHP/Q_22840093.html

Возможно, мне здесь что-то не хватает, но добавление scrolling=no в качестве атрибута к тегу iframe обычно избавляет от полос прокрутки.

Да, но тогда встроенная страница обрезается, если она не помещается в iframe.

Adam Lassek 12.09.2008 18:13

Если ваш iframe размещен на том же сервере, что и содержащая его страница, вы можете получить доступ к нему через javascript.

Существует ряд предлагаемых методов для установка iframe на полную высоту содержимого, каждый с разной степенью успеха - Google для этой проблемы показывает, что это довольно распространенный метод, и я боюсь, что у него нет реального, универсального консенсусного решения!

Несколько человек сообщили, что этот сценарий делает свое дело, но для вашего конкретного случая может потребоваться некоторая модификация (опять же, если ваш iframe и родительская страница находятся в одном домене).

Другие вопросы по теме