2009-03-31 13 views
7

Eventuali duplicati:
Resizing an iframe based on contentiframe ridimensionamento per adattare il contenuto

Ho un iframe dove lo src è un file HTML e questo IFRAME viene messo all'interno di UserControl:

<iframe frameborder="0" src="CName.htm" align="left" width="730" height="1100" ></iframe> 

Ho bisogno che l'iframe venga ridimensionato in base al contenuto in modo che l'altezza sia impostata in base alla h ieght del file HTML e non ho bisogno di usare l'attributo di scorrimento. Hai qualche idea?

+0

Vedere http://stackoverflow.com/questions/153152/resizing-an-iframe-based-on-content –

+1

Questa risposta collegata è irrimediabilmente obsoleta, vedere https://github.com/davidjbradshaw/iframe- resizer per una soluzione molto più semplice. – user2684310

risposta

0

È possibile calcolare l'altezza e la larghezza del contenuto all'interno della cornice, quindi chiamare una funzione che si trova sul proprietario del frame per impostare l'altezza e la larghezza dell'elemento iframe.

+3

Funzionerà solo se l'iframe e il suo genitore non violano la politica della stessa origine. – nickh

0

C'è un modo! È in jQuery e è troppo semplice. Un po 'hacky ..

$('iframe').contents().find('body').css({"min-height": "100", "overflow" : "hidden"}); 
setInterval("$('iframe').height($('iframe').contents().find('body').height() + 20)", 1); 

Ecco qua!

Cheers! :)

+0

A cosa serve il '+ 20'? –

19

Ho usato il seguente codice jQuery per fare questo:

$('#iframe_id').load(function() { 
    $(this).height($(this).contents().height()); 
    $(this).width($(this).contents().width()); 
}); 

non credo che questo funziona se il contenuto iframe sono cross-domain, però.

+0

Per fare il dominio incrociato è necessario utilizzare l'API postMessage per questo, inoltre è necessario controllare gli eventi di ridimensionamento della finestra e le mutazioni DOM, in modo che l'iFrame rimanga la dimensione del contenuto. Dai un'occhiata a questa libreria che si occupa di tutte queste cose per te. https://github.com/davidjbradshaw/iframe-resizer –

Problemi correlati