2011-02-09 4 views
8

Как настроить высоту iframe в соответствии с содержимым внутри нее? Я предполагаю, что вы вычислили разницу между высотой содержимого и высотой iframe (что-то, чего я не знаю, как это сделать) и использовать это с циклом while, чтобы увеличить переменную, используемую как высоту, но я не могу обернуть ее голова вокруг, как на самом деле делать эти вещи. Прежде чем спросить: да, содержимое в кадре с моего сайта. Не междоменное.make iframe height fit content

+0

ли кто-нибудь еще использовать кадры? – yoda

+6

@yoda он имел в виду iframe, и они используются только незначительными компаниями в websphere, таких как Google и Facebook. –

+0

в рамке на вашем сайте? – Trufa

ответ

1

Не совсем уверен, почему вы хотите использовать IFRAME, а не динамический Див заполнены, скажем, с помощью AJAX, но:

Поместите содержимое в IFRAME в DIV, а затем получить высоту дел. Я предложил бы использовать JQuery так:

$("#divId").height(); 

Но если вы не можете использовать JQuery, вы должны быть в состоянии использовать это:

document.getElementById("divId").offsetHeight; 

Тогда вам нужно установить высоту Iframe в что бы вы ни получили.

JQuery:

$("#iframeId").height($("#divId").height()); 

регулярные ЯШ:

document.getElementById("iframeId").style.height = 
document.getElementById("divId").offsetHeight; 
+3

это не работает. Вы не можете получить доступ к iframe div извне iframe. –

+3

Вы можете, однако, сделать это: 'document.getElementById (" frameId "). ContentWindow.document.getElementById (" id ")' – JCOC611

+0

@ JCOC611 'document.getElementById («frameId»). contentWindow.document' также запрещает доступ к этим дням, насколько я могу видеть (по крайней мере, в FF) – YakovL

0
<iframe id="moo" src="something.html"><iframe> 
<script> 
function onContentChange(){ 
    var NewSize=$('moo').getScrollSize(); 
    $('moo').setStyles({ 
    width: NewSize.x, 
    height: NewSize.y 
    }); 
} 
</script> 

и внутри somthing.html, на дне или OnLoad случае сделать что-то на линии

window.parent.window.onContentChange() 
+0

Должно быть '' '$ ('# moo')' '', если это должно быть вызовом jquery ... – Guntram

+0

Когда я это написал, я был mootools. –

0

Динамически визуализировать iframe в javasc когда контейнерный элемент («td1») был нарисован.

<script type="text/javascript"> 
    var iframesrc = "@Href("~/about")"; 
    function init() { 
    var vHeight = document.getElementById("td1").offsetHeight; 
    document.getElementById("td1").innerHTML="<iframe style=\"width:100%; height:" + vHeight + "px\" src=\"" + iframesrc + "\"></iframe>"; 
    } 
    window.onload = init; 
</script> 

...

<td id="td1" style="width: 100%; height:100%;">     
</td> 
0

Вот решение с помощью JQuery:

$('#iframe').height($('#iframe').contents().find('body').height());