Visualizzazione dei risultati da 1 a 3 su 3

Discussione: Problema onresize

  1. #1

    Problema onresize

    Ho una funzione che mi cambia la dimensione di un iframe a seconda della dimensione della finestra perchè ho l'esigenza che non venga mai visulaizzata la scrollbar dell'iframe.
    Nell' onload dell'iframe 'Applicazione' ho messo la chiamata alla funzione Resize(), che mi cambia la dimensione dell'iframe a seconda della pagina che vi è contenuta.
    codice:
    function resize1(){
    	var wn = document.getElementById('Applicazione');
    	wn.style.height=wn.document.body.scrollHeight;
    	}
    e fin qui tutto bene, il problema sorge quando faccio il resize della finestra, al che ho provato a chiamare la funzione resize() anche nell'evento window.onresize
    codice:
    window.onresize = function(){
         resize1();
    }
    praticamente, l'iframe viene ridimensionato correttamente, però di conseguenza viene ridimensionata anche la finestra principale, perchè compare la scrollbar e la chiamata alla funzione avviene due volte col conseguente ingrandimento spropositato dell'iframe.
    Qualcuno sa come posso ovviare a questo problema?
    Spero di essere stato chiaro nella spiegazione.
    ...NO ONE IS INNOCENT ANYMORE...

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    sicuro sia quello il motivo? l' onresize gioca brutti scherzi su vari browser...
    cmq, se fosse quello prova a settare una variabile globale e a cambiarne il valore dopo il primo resize
    codice:
    var only1=true;
    function resize1(){
      if(only1){
            only1=false;
    	var wn = document.getElementById('Applicazione');
    	wn.style.height=wn.document.body.scrollHeight;
            setTimeout('only1=true',1000);
      }
    }
    ciao

  3. #3
    no, in effetti il problema non è quello, adesso la finestra si incrementa solo più della metà...

    ne ho trovata una che sembra funzionare ma mi da qualche problema.

    codice:
    if(document.getElementById && !(document.all)) {
        height = document.getElementById('Applicazione').contentDocument.body.scrollHeight;
        document.getElementById('Applicazione').style.height = height;
    } else if (document.all) {
        height = document.frames('Applicazione').document.body.scrollHeight;
        //height = document.all['Applicazione'].document.body.scrollHeight;
        document.all.Applicazione.style.height = height;
    }
    Dunque, se utilizzo document.frames('Applicazione') funziona, ma solo con i siti locali che si trovano sullo stesso server, coi siti esterni (ho fatto una prova con libero.it, repubblica.it, google.it) non funziona e da un errore di accesso negato quando vado a leggere l'altezza "document.frames('Applicazione').document.body.scr ollHeight;".
    Invece, utilizzando document.all['Applicazione'].document.body.scrollHeight mi da lo stesso problema di prima...


    Ci sarà una soluzione?
    ...NO ONE IS INNOCENT ANYMORE...

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.