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

    problemi con onLoad e frames

    Ciao a tutti.

    Sto provando a realizzare il seguente script in locale: voglio riuscire a lanciare una funzione ogni volta che in una pagina con due frames uno dei due ha finito di caricarsi dopo un intervallo :


    codice:
    <FRAMESET rows="20%,80%">
    <FRAME SRC="prova.html" name="header">
    <FRAME SRC="about:mozilla" name="map">
    </FRAMESET>
    Il file prova.html è il seguente:

    codice:
    <html><head>
    <script type="text/javascript">
    var i=3;
    
    function loading() {
    
    try {
        	netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead UniversalBrowserWrite UniversalXPConnect");
       	} catch (e) {
       	alert("Permission UniversalXPConnect denied.");
       	}
       	
    parent.onload= function (){ //la finestra madre aspetta il caricamento di tutti i suoi figli
    carica();
    }
    
    }
    
    
    function address() {
       	
         try {
        	netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead UniversalBrowserWrite UniversalXPConnect");
       	} catch (e) {
       	alert("Permission UniversalXPConnect denied.");
       	}   	
       	
    parent.map.location.href=link_list[i]; //carico lo stesso link ogni volta
    
    }
    
    
    function carica() {
    loading();
    setTimeout('address()',5000);
    }
    </script>
    </head>
    
    <body onLoad="loading()">
    </body>
    </html>

    Il poblema è che riesce a funzionare solo la prima volta e sebbene richiami la funzione loading() non carica più. Ricordo che vorrei lanciare la funzione solo dopo che la pagina nel frame "map" è stata completamente caricata.

    Ogni aiuto o suggerimento potrebbe illuminarmi.

    F.
    rm -f stupidity

  2. #2
    Ho risolto.
    In poche parole la registrazione dell Onload avviene una volta sola al caricamento della pagina che la chiama e sembra non ci sia modo di riapplicare window.onload senza dover ricaricare tutto (ovviamente essendo un evento legato alla finestra, quando questa è caricata lo fa una volta sola)...

    Quindi ho messo la pagina coi frame dentro un altro frame e un contatore esterno in un modulo che si incrementa ad ogni chiamata della funzione dell' onload. Così basta ricaricare ad ogni timer la pagina coi frame più interna. E' complicato d spiegare ma funziona, anche se è veramente poco elegante come soluzione....

    Quali altri modi ci sono secondo voi?
    rm -f stupidity

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.