2012-08-04 8 views

risposta

12

È possibile farlo anche senza conoscere la id del iframe nella finestra padre:

window.frameElement.style.width = iframeContentWidth + 'px'; 
window.frameElement.style.height = iframeContentHeight + 'px'; 

Vedi frameElement a MDN.

EDIT

Solo nel caso in cui il iframe sembra essere in un elemento contenitore che ha fissato dimensioni e overflow: hidden si può fare qualcosa di simile:

function resizeIframe (iframeContentWidth, iframeContentHeight) { 
    var container = window.frameElement.parentElement; 
    if (container != parent.document.body) { 
     container.style.width = iframeContentWidth + 'px'; 
     container.style.height = iframeContentHeight + 'px'; 
    } 
    window.frameElement.style.width = iframeContentWidth + 'px'; 
    window.frameElement.style.height = iframeContentHeight + 'px'; 
    return; 
} 
0

Per contenuti della stessa origine come il tuo, yes you can.

di prendere in prestito dalla risposta di Gary sulla domanda di cui sopra:

Nel iframe, WINDOW.PARENT si riferisce all'oggetto globale del documento principale , non l'oggetto documento stesso. Credo che si avrebbe bisogno di uso parent.document.getElementById

provare ad accedere l'iframe utilizzando parent.document, e vedere se questo risolve il problema.

0

Supponendo di avere solo 1 IFRAME in dalla finestra principale, dal Javascript del documento dell'IFRAME puoi fare qualcosa del tipo:

function getMySelf() 
{ 
    return (window.parent.document.getElementsByTagName("iframe"))[0]; 
} 

var myself = getMySelf(); 
myself.style.width = whateverWidth; 
myself.style.height = whateverHeight; 
Problemi correlati