Как динамически изменить размер окна iframe по содержимому
Через тег <iframe> зачастую легче всего подключить на сайт внешнее содержимое, например, с другого сайта. При этом не нужно знать ни PHP, ни Ajax. Проблема возникает разве что с описанным в заголовке статьи моментом - не всегда получается подобрать "красивый" размер фрейма "вручную". Нельзя ли поручить эту работу самому браузеру?
Вот мне сегодня предложили такое "решение". В теге <head>
документа пишем:
<script type="text/javascript"> <!-- function mySize(){ document.getElementById('myIframe').style.posHeight= myIframe.document.body.scrollHeight; document.getElementById('myIframe').style.posWidth= myIframe.document.body.scrollWidth; } //--> </script>
В нужном месте ставим тег <iframe>
c атрибутом id
, указанным в скрипте (в нашем случае - myIframe
):
<iframe src="URL_НУЖНОГО_ФАЙЛА" id="myIframe" scrolling="no" frameborder="0"> </iframe>
Говорим, что размер фрейма нужно обновлять по загрузке документа:
<body onLoad="mySize();">
Увы, разные браузеры могут отформатировать содержимое фрейма по-разному. И на безопасность могут заругаться, не дав изменить ширину и высоту (исключение - если оба документа находятся в одном домене). И почему вы решили, что отдельное окно - iframe, "автоматически" сообщит о своей загрузке главному документу? Тогда уж ставить какой-нибудь флаг в окне-родителе и проверять его через таймер...
Ну и последнее слабое место решения - включённый Javascript :) Если уж его включать, то как-то так, по современному надо :)
09.11.2012, 13:56 [16971 просмотр]