У меня есть приложение, которое я хотел бы встроить в CMS нашей компании. Единственный способ сделать это (как мне сказали) - загрузить его в <iframe>.
Легко: просто установите height и width на 100%! Только вот это не работает.
Я узнал о настройке frameborder на 0, так что это, по крайней мере, выглядит как часть сайта, но я бы предпочел не иметь уродливую полосу прокрутки внутри - страницу, на которой она уже есть.
Вы знаете какие-нибудь уловки, чтобы сделать это?
Обновлено: Думаю, мне нужно несколько прояснить свой вопрос:
<iframe>iframe, поэтому любое решение должно работать с указанной страницы (в соответствии с атрибутом src тега iframe)Могу ли я получить доступ к 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 по соображениям безопасности ...






Вы можете просто использовать язык сценариев для включения страницы в родительскую страницу, в противном случае вы можете попробовать один из этих методов 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 размещен на том же сервере, что и содержащая его страница, вы можете получить доступ к нему через javascript.
Существует ряд предлагаемых методов для установка iframe на полную высоту содержимого, каждый с разной степенью успеха - Google для этой проблемы показывает, что это довольно распространенный метод, и я боюсь, что у него нет реального, универсального консенсусного решения!
Несколько человек сообщили, что этот сценарий делает свое дело, но для вашего конкретного случая может потребоваться некоторая модификация (опять же, если ваш iframe и родительская страница находятся в одном домене).
Да, но тогда встроенная страница обрезается, если она не помещается в iframe.