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

    Iframe adattato ai differenti contenuti

    In una pagina html ho inserito uno script che dovrebbe adattarsi in altezza ai differenti contenuti linkati. Purtroppo non funziona e non capisco dove sbaglio...

    codice:
     
    <script language="JavaScript">
    
    <!--
    function autoResize(external-frame){
        var newheight;
        var newwidth;
    
        if(document.getElementById){
            newheight=document.getElementById(external-frame).contentWindow.document .body.scrollHeight;
            newwidth=document.getElementById(external-frame).contentWindow.document .body.scrollWidth;
        }
    
        document.getElementById(external-frame).height= (newheight) + "px";
        document.getElementById(external-frame).width= (newwidth) + "px";
    }
    //-->
    </script>
    e l'iframe settato come segue:
    codice:
    <div id="Layer3">
    <iframe src="index.php" scrolling="no" width="100%" height="100%" name="external-frame" id="external-frame" marginheight="0" frameborder="0" onLoad="autoResize('external-frame');"></iframe>
    </div>
    Ultima modifica di Vincent.Zeno; 29-10-2015 a 17:41

  2. #2
    Prova a togliere width="100%" height="100%" dal codice dell'iframe e lascia che sia lo script a determinare le dimensioni, perchè potrebbe accadere che le dimensioni dichiarate nell'iframe annullino lo script
    “Che le cose siano cosi, non vuol dire che debbano andare così. Solo che quando si tratta di rimboccarsi le maniche e incominciare a cambiare, vi è un prezzo da pagare. Ed è allora che la stragrande maggioranza preferisce lamentarsi più che fare”.

    Giovanni Falcone

  3. #3
    Quote Originariamente inviata da carlomarangoni Visualizza il messaggio
    Prova a togliere width="100%" height="100%" dal codice dell'iframe e lascia che sia lo script a determinare le dimensioni, perchè potrebbe accadere che le dimensioni dichiarate nell'iframe annullino lo script

    Ho eliminato i parametri height e width..

    [link] http://maurocirillo.it/

    come da link adesso purtroppo mi da solo più un riquadretto circa 300x200px.

  4. #4

    alternative?

    Quote Originariamente inviata da Marco Miotti Visualizza il messaggio
    Ho eliminato i parametri height e width..

    [link] http://maurocirillo.it/

    come da link adesso purtroppo mi da solo più un riquadretto circa 300x200px.

    Visto che pare non esserci soluzione mi permetto di cercare un'altra soluzione, sperando di non offendere nessuno :-)
    E se lasciassi perdere l'iframe e gestissi con un div id? qualche idea?

    semplicemente debbo visualizzare una serie di pagine html dentro un container evitando quindi il "page reload".

  5. #5
    La soluzione allora è ajax, oppure object.

    Se fai una piccola riocerca in rete trovi script già fatti
    “Che le cose siano cosi, non vuol dire che debbano andare così. Solo che quando si tratta di rimboccarsi le maniche e incominciare a cambiare, vi è un prezzo da pagare. Ed è allora che la stragrande maggioranza preferisce lamentarsi più che fare”.

    Giovanni Falcone

  6. #6

    layout

    per maggior chiarezza ho fatto uno schemino...
    non importa se con iframe autoresize, div id oppure semplice frame, ma spero sia chiaro cosa vorrei ottenere. sembra una cosa semplice ma non riesco a trovare una soluzione per l'auto height di un qualsiasi "container".


    urliframe.jpg

  7. #7
    immagine troppo piccola, link: http://maurocirillo.it/urliframe.png

  8. #8
    Quello che ho usato e postato all'inizio (non risolto) deriva proprio da questo:

    [link] http://www.456bereastreet.com/archiv...t_its_content/

  9. #9
    fatto la ricerca e trovata la soluzione ! Grazie ancora Carlo.
    Questa funziona:

    codice:
    <script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js?ver=1.3.2'></script>
    <script type='text/javascript'>
     
        $(function(){
     
            var iFrames = $('iframe');
     
            function iResize() {
     
                    for (var i = 0, j = iFrames.length; i < j; i++) {
                      iFrames[i].style.height = iFrames[i].contentWindow.document.body.offsetHeight + 'px';}
                }
     
                    if ($.browser.safari || $.browser.opera) { 
     
                       iFrames.load(function(){
                           setTimeout(iResize, 0);
                   });
     
                       for (var i = 0, j = iFrames.length; i < j; i++) {
                                    var iSource = iFrames[i].src;
                                    iFrames[i].src = '';
                                    iFrames[i].src = iSource;
                   }
     
                    } else {
                       iFrames.load(function() {
                           this.style.height = this.contentWindow.document.body.offsetHeight + 'px';
                       });
                    }
     
            });
     
    </script> 
    
    
    <iframe src="index.php" id="external-frame" name="external-frame" class="iframe" scrolling="no" frameborder="0"></iframe>
    Ultima modifica di Vincent.Zeno; 29-10-2015 a 17:40

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 © 2025 vBulletin Solutions, Inc. All rights reserved.