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

    funzione al caricamento del frame

    'Sera a tutti, nessuno saprebbe risolvermi questo problema?

    Ho 2 frame, il sinistro per il menu (name="menu") e quello centrale per i contenuti (name="principale")

    vorrei lanciare una funzione ogni volta che viene caricata una pagina nel frame "principale";

    ho quindi messo questo script nel menu:
    codice:
    parent.principale.document.onLoad = function()
    {
       alert("ok");
       ......
       ......
    }
    lo script non restituisce alcun errore, ma non fa neanche niente

    avreste qualche soluzione?
    Shhhhhhhh... N

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    La funzione cosi` come e` fatta, viene legata al documento (cioe` alla pagina in quel momento presente nel frame), non al frame.

    Puoi provare con una sintassi un po' diversa, ma non sono sicuro che alla fine non faccia la stessa cosa:
    parent.principale.onLoad = function() { ...


    In alternativa devi settare l'onload in ogni documento che viene caricato:

    <body ... onload="parent.menu.fine_caric();"

    dove nel frame menu la tua funzione dovra` essere:
    function fine_caric() {
    alert("ok");
    ......
    ......
    }

    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Originariamente inviato da Mich_
    Puoi provare con una sintassi un po' diversa, ma non sono sicuro che alla fine non faccia la stessa cosa:
    parent.principale.onLoad = function() { ...
    Già provato, ma non cambia niente...




    Originariamente inviato da Mich_
    In alternativa devi settare l'onload in ogni documento che viene caricato:
    Ti ringrazio per la risposta e i consigli, ma questo era proprio quello che volevo evitare... non vorrei cambiare ogni pagina
    Shhhhhhhh... N

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Se ti basta una risposta piu` lenta, puoi andare a testare la proprieta` location del frame, e verificare se e` cambiata rispetto a prima.

    Esempio da inserire nell'altro frame:
    codice:
    <script ...>
    var loc_prin = "";
    function test_princ() {
      if(loc_prin != parent.principale.location.href) {
        loc_prin = parent.principale.location.href;
         alert("cambiato");
         //.... 
      }
      setTimeout('loc_prin()', 1000); // ripete ogni secondo
    }
    setTimeout('loc_prin()', 1000); // inizia dopo 1 secondo
    </script>
    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  5. #5
    beh, non è proprio il massimo dell'efficienza, ma funziona

    e poi, mi serve proprio per azzerare un timer, quindi va più che bene per le mie esigenze. Grazie del consiglio


    EDIT:
    come non detto ... il timer che azzero è relativo alla scadenza delle variabili di sessione... se aggiorno una pagina nel frame principale questa si resetta, ma non il mio timer visto che la location non cambia
    Shhhhhhhh... N

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Puoi sempre usare un barbatrucco:
    Quando ricarichi la pagina, la carichi aggiungendo ad essa un parametro sempre diverso (preceduto da ? ). Tale parametro non viene interpretato dalla pagina, ma fa diventare diversa la location
    (nota: occorre che anche il codice ASP non interpreti il parametro, per cui la cosa va fatta con prudenza).

    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

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.