2008-09-12 2 views
8

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

Легко: просто установите height и width на 100%! Кроме того, это не сработает.

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

Знаете ли вы о каких-либо трюках?

EDIT: Я думаю, что нужно прояснить мой вопрос несколько:

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

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

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

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

<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 по соображениям безопасности ...

ответ

3

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

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

+1

Не могу поверить, что эта ссылка была принята только, и голосование голосовало несколько раз. – 2016-01-28 01:29:30

0

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

+1

Да, но тогда встроенная страница обрезается, если она не помещается внутри iframe. – 2008-09-12 14:13:48

2

При условии, что ваш iframe размещен на том же сервере, что и содержащая страница, вы можете access it via javascript.

Существует ряд предлагаемых методов для setting the iframe to the full height of the contents, каждый с разной степенью успеха - Google для этой проблемы показывает, что он довольно распространенный, без реального, единообразного решения консенсуса i'm боюсь!

Несколько человек сообщили, что this script выполняет трюк, но может потребоваться some modification для вашего конкретного случая (опять же, если ваша страница iframe и родительская страница находятся в одном домене).

Смежные вопросы