Salve, il codice che posterò devo modificarlo, in quanto ho fatto una'ltra volta copia e incolla da internet solo per vedere il metodo, comunque eccovi la prima pagina:
codice:
<script type="text/javascript">
//Input the IDs of the IFRAMES you wish to dynamically resize to match its content height:
//Separate each ID with a comma. Examples: ["myframe1", "myframe2"] or ["myframe"] or [] for none:
var iframeids=["myframe"]
//Should script hide iframe from browsers that don't support this script (non IE5+/NS6+ browsers. Recommended):
var iframehide="yes"
var getFFVersion=navigator.userAgent.substring(navigator.userAgent.indexOf("Firefox")).split("/")[1]
var FFextraHeight=parseFloat(getFFVersion)>=0.1? 16 : 0 //extra height in px to add to iframe in FireFox 1.0+ browsers
function resizeCaller() {
var dyniframe=new Array()
for (i=0; i<iframeids.length; i++){
if (document.getElementById)
resizeIframe(iframeids[i])
//reveal iframe for lower end browsers? (see var above):
if ((document.all || document.getElementById) && iframehide=="no"){
var tempobj=document.all? document.all[iframeids[i]] : document.getElementById(iframeids[i])
tempobj.style.display="block"
}
}
}
function resizeIframe(frameid){
var currentfr=document.getElementById(frameid)
if (currentfr && !window.opera){
currentfr.style.display="block"
if (currentfr.contentDocument && currentfr.contentDocument.body.offsetHeight) //ns6 syntax
currentfr.height = currentfr.contentDocument.body.offsetHeight+FFextraHeight;
else if (currentfr.Document && currentfr.Document.body.scrollHeight) //ie5+ syntax
currentfr.height = currentfr.Document.body.scrollHeight;
if (currentfr.addEventListener)
currentfr.addEventListener("load", readjustIframe, false)
else if (currentfr.attachEvent){
currentfr.detachEvent("onload", readjustIframe) // Bug fix line
currentfr.attachEvent("onload", readjustIframe)
}
}
}
function readjustIframe(loadevt) {
var crossevt=(window.event)? event : loadevt
var iframeroot=(crossevt.currentTarget)? crossevt.currentTarget : crossevt.srcElement
if (iframeroot)
resizeIframe(iframeroot.id);
}
function loadintoIframe(iframeid, url){
if (document.getElementById)
document.getElementById(iframeid).src=url
}
if (window.addEventListener)
window.addEventListener("load", resizeCaller, false)
else if (window.attachEvent)
window.attachEvent("onload", resizeCaller)
else
window.onload=resizeCaller
</script>
<iframe id="myframe" src="../pagina.php" frameborder="0" marginwidth="0" marginheight="0" vspace="0" hspace="0" style="overflow:visible; width:100%; display:none;"></iframe>
Fin qui funziona tutto bene, ma dentro la seconda(sarebbe pagina.php, quella a cui pounta l'iframe) ho una situazione del genere:
codice:
<?php
echo 'Ciao!';
?>
<!-- qui una chiamata ajax, in seguito al click di un pulsante sulla form contenuta,
i dati vengono passati tramite il metodo "$.ajax{type:POST....}" -->
<div id="contenuto_chiamata_ajax"></div>
L'iframe al primo caricamento di ridimensiona in automatico, occupando lo spazio che gli serve e niente di più, quindi fin qui tutto bene, ma quando si attiva la chiamata ajax contenuta in pagina.php il risultato viene stampato dentro l'iframe senza che si ridimensioni in maniera automatica, inoltre il browser attiva automaticamente la barra per lo scroll verticale, quando avevo specificato sopra: overflow:visible . Non capisco il problema, perchè teoricamente non dovrebbe manifestarsi, forse non si configura bene con la chiamata ajax, ma comunque attiva lo scroll e lo stampa lo stesso, quinid non capisco.
Se potete darmi una mano vi ringrazio in anticipo!
P.S. visto che scrolling come attributo iframe è stato deprecato in html 5, da cosa è stato sostituito?