Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    l'iframe non si adatta la contenuto dopo chiamata ajax

    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?

  2. #2
    Mi è venuta un idea, ma non sò se è fattibile: in pratica vorrei stampare il risultato della chiamata ajax che faccio dentro l'iframe nella pagina normale.
    E' possibile fare una cosa del genere? Se si risolvo tutti i problemi in merito(visto hc el'altro elemento è ad altezza e larghezza fissi).

  3. #3
    Ho letto un articolo su internet dove si diceva chiaramente che l'iframe per sua natura non può cambiare le propie dimensioni dopo il caricamento iniziale.
    Purtroppo dovrò optare per un'altra soluzione.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.