2012-04-13 15 views
1

Ich möchte die Größe eines iframe jedes Mal ändern, wenn auf eine neue Verknüpfung in diesem Iframe zugegriffen wird.Javascript iframe Größe bei jedem Laden ändern

Ich habe einen Wordpress-Blog und ich habe das Forum auf einer Seite mit diesem iframe hinzugefügt. Ich möchte, dass die Größe jedes Mal geändert wird, wenn ich auf einen Link in diesem Blog klicke.

Ich googelte, aber ich fand nichts Relevantes.

Dies ist der Code, den ich

<script type="text/javascript"> 
function sizeIFrame() { 
var helpFrame = jQuery("#ifm"); 
var innerDoc = (helpFrame.get(0).contentDocument) ? helpFrame.get(0).contentDocument :  helpFrame.get(0).contentWindow.document; 
helpFrame.height(innerDoc.body.scrollHeight + 35); 
} 
</script> 
<iframe id="ifm" src="..." width="100%" frameBorder="0" onload="sizeIFrame();" scrolling="no"></iframe> 

Vielen Dank für meine Resize bin mit!

+0

Es sieht aus wie Sie versuchen, die jquery 'height' Methode auf dem Dokument-Objekt selbst ohne jquery Verpackung aufzurufen. .. ist das beabsichtigt? – Tejs

Antwort

0

Ich bin kein Experte, aber es könnte sein, dass die iframe nur einmal geladen wurde? ... Extrange ...

Ich weiß nicht, aber ich denke, dass Sie ein Onclick könnte hinzufügen Funktion für jeden Link des Blogs, um die Funktion sizeIframe anstelle des Onloads zu starten.

Zum Beispiel (dieser Code ist eine Idee, nicht getestet) ...

<a href="#" class="iframe-mgr" id ="link-a"> a link </a> 
<a href="#" class="iframe-mgr" id ="link-b"> b link </a> 

<script type="text/javascript"> 
$('.iframe-mgr').addEventListener('click', function(){ sizeIframe() }); 
</script> 
+0

Das Forum ist phpbb und ich könnte es ändern, aber es ist kompliziert. – tzortzik

+0

Ich habe ein Wordpress-Plugin namens iFrame Wrapper gefunden, das eine perfekte Größenanpassung ermöglicht, aber ein anderes Problem aufkam. Nachdem der Iframe in der Größe geändert wurde, bleibt er auf dieser Größe, bis die Seite aktualisiert wird. Nehmen wir an, die erste Seite benötigt 500px um angezeigt zu werden. Der zweite benötigt 1000px. Dieses Plugin ändert die Größe des Iframes auf 1000px Höhe, aber wenn ich erneut auf die erste Seite klicke, wird es immer noch 1000px groß sein. – tzortzik

+0

Uhm ... und könnten Sie die Höhe dieser iframe-Klasse auf (window.innerHeight - mainContentHeight) mainContentHeight die Höhe der anderen sichtbaren Ebenen setzen? ... o sogar die Offsethöhe: iframe_height = window.innerHeight - $ (# iframe_layer) .offsetHeight ... ? Ich hoffe, es wird für Sie nützlich sein – Luis

Verwandte Themen