Чтобы ответить непосредственно на два ваших подвопроса: Нет, вы не можете сделать это с помощью Ajax и не можете рассчитать это с помощью PHP.
В прошлом я использовал триггер со страницы iframe в window.onload
(НЕ domready
, поскольку загрузка изображений может занять некоторое время), чтобы передать высоту тела страницы родителю. .
<body onload='parent.resizeIframe(document.body.scrollHeight)'>
Тогда parent.resizeIframe
выглядит так:
function resizeIframe(newHeight)
{
document.getElementById('blogIframe').style.height = parseInt(newHeight,10) + 10 + 'px';
}
И вуаля, у вас есть надежный изменяющий размер, который срабатывает, когда страница полностью отображается без всяких неприятностей contentdocument
против contentWindow
суета:)
Конечно, теперь люди сначала увидят ваш iframe на высоте по умолчанию, но это можно легко сделать, сначала спрятав свой iframe и просто показывая изображение «загрузки». Затем, когда включится функция resizeIframe
, поместите туда две дополнительные строки, которые будут скрывать загрузочное изображение, и покажите iframe для этого искусственного Ajax-вида.
Конечно, это работает только из одного домена, поэтому вы можете захотеть использовать прокси-скрипт PHP для встраивания этого материала, и, как только вы пойдете туда, вы можете просто вставить RSS-канал вашего блога прямо на ваш сайт с помощью PHP.