Это убило меня, как и всех остальных, и я привел пример, который, кажется, совместим с IE8, Chrome, Safari и FF. Я не проверял это в IE7 или IE6.
Я не могу взять 100% кредита, потому что я получил кусочки с разных сайтов. Большинство решений, с которыми я столкнулся, усложнили проблему.
Я использую coldfusion, поэтому вам нужно проверить браузер на вашем родном языке.
<SCRIPT LANGUAGE="JavaScript">
function resizeIframeToFitContent(iframe) {
// This function resizes an IFrame object
// to fit its content.
// The IFrame tag must have a unique ID attribute.
iframe.height = document.frames[iframe.id].document.body.scrollHeight + "px";}
</SCRIPT>
Если это FF, Safari или Mozilla (любая версия), вы можете использовать этот скрипт
<SCRIPT LANGUAGE="JavaScript">
function resizeIframeToFitContent(iframe){
//for some reason I have to reset the frame height to zero otherwise it will retain the height from the last
//click inside of the frame. You can set this to 0 or pick a good height so it only resizes when the content is larger than xx pixels
var height = 780;
var theFrame = window.frames[iframe.id];
//check your iframe.id to make sure you are getting back the correct id.
theFrame.frameElement.height = height;
//now lets get the height of the content and reset the height of the frame.
height = parseInt(theFrame.document.body.scrollHeight);
//now I have see this numerous times and many programmers try to set the frameElements.style.height attribute
//that does not work in Safari, Chrome or FF so drop the style and you are good to go.
theFrame.frameElement.height = height;
}
</SCRIPT>
IE8 немного приятнее для нас, программистов
<SCRIPT LANGUAGE="JavaScript">
function resizeIframeToFitContent(iframe) {
// This function resizes an IFrame object
// to fit its content.
// The IFrame tag must have a unique ID attribute.
iframe.height = document.frames[iframe.id].document.body.scrollHeight;}
</SCRIPT>
Вот скрипт IFRAME, вы можете удалить цвет фона и установить собственную ширину и URL.
<IFRAME id="myiframe" name="myiframe"
src="<your url>"
width=800
style="background-color: #FAF9F8;"
onload="resizeIframeToFitContent(this)" scrolling="no" frameborder="0">
Это в значительной степени покрывает это.