Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2005
    Messaggi
    44

    javascript-java:location.href

    Salve,

    premetto che non sono sicuro che questo post vada nella sezione javascript, forse andrebbe nella sezione java... diciamo che è un po' a metà.

    Ho una finestra aperta con window.open() da un'altra finestra padre. La finestra padre si ricarica automaticamente ogni 2 minuti, e puoi anche essere ricaricata manualmente dall'utente cambiando anche dei parametri in una form.

    Quando la finestra padre va in refresch, chiama una servlet che carica dei dati da db. I dati visualizzati nella finestra figlio sono quindi dipendenti dal ricaricamento, cioè anche la figlia deve essere ricaricata.

    Questo meccanismo funziona, il mio problema è che se chiudo la finestra figlio, devo salvare questa informazione in sessione in modo che una volta refresciato il padre non venga riaperto il figlio che è stato chiuso.

    Per notificare l'avvenuta chiusura del figlio uso l'evendo unUnLoad sul body del figlio, che richiama la servlet per lo stato della finestra figlio...
    in pratica:

    codice:
        ...
        <body onunload="notificaChiusuraPopUp(indice)">
        ...
    
        function notificaChiusuraPopUp(indice){
    		location.href= "/Module/Servlet?indice="+indice+"&apri=false";
    		alert("hai chiuso il dettaglio");
        }
        ...
    l'alert l'ho messo per vedere se entra nella funzione quando chiudo la finestra.. ed entra.

    Qualcuno ha idea del perchè non salta alla servlet?
    Giugallo

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    La finestra e' in fase di chiusura: non puoi modificarne l'href perche' al termine dell'esecuzione dell'istruzione non esisterebbe piu'.

    Non so se possa essere efficace, ma se non vuoi aprire una popup (da chiudere alla risposta del server) puoi tentare con:

    function notificaChiusuraPopUp(indice){
    pippo = new Image();
    pippo.src = "/Module/Servlet?indice="+indice+"&apri=false";
    alert("hai chiuso il dettaglio");
    }

    ciao

    ps: ricordati pero' che l'evento onunload scatta anche quando cambia la pagina contenuta e non solo alla chiusura... quindi anche ad ogni aggiornamento dalla opener.
    vedi qui: http://pro.html.it/articoli/id_215/idcat_11/pro.html
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2005
    Messaggi
    44
    ok..
    avevo trovato una soluzione simile:

    codice:
        function notificaChiusuraPopUp(indice){
    		tmpWin=window.open("/Module/Servlet?indice="+indice+"&apri=false","tmpWin");
    		tmpWin.close();
        }
    dopo aver letto il tuo p.s. ho fatto un po' di prove e sono entrato un po' in confusione...
    Ti faccio un esempio dello stato dell'arte e della sequenza che mi manda in confusione:

    -nel padre c'è:
    ---1 un link che apre il figlio tramite un window.open("/Module/Servlet?indice="+indice+"&apri=true") [notare che apri è true]
    ---2 un link che chiama una servlet che ricarica i dati

    -nel figlio c'è la chiamata alla funzione notificaChiusuraPopUp(indice) nell'onunload del body [notare che apri è false]

    Passi comonitoraggio della Servlet da debug:

    1 clicco sul link che apre il figlio
    ------------------> entro nella servlet e apri è true

    2 cliccol sul link di ricarica del padre
    ------------------> entro nella servlet e apri è true
    ------------------> entro nella servlet e apri è false

    3 clilcco sul link di ricarica del padre
    ------------------> non entra più nella servlet

    La 1 fa quello che deve, la prima conseguenza della 2 non la capisco, la seconda conseguenza della 2 credo dipenda da quello che mi dicevi tu nel ps, la conseguenza della 3 è quello che io mi sarei aspettato sempre.

    Scusa forse non sono stato molto chiaro... se hai qualche suggerimento e/o chiarimenti te ne sarei gratissimo...
    Giugallo

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2005
    Messaggi
    44
    No che stupido la avevo messa io un'altra chimata alla servlet dopo il refresh nel caso in sessine ci fosse l'info sul fatto che c'era un popUp aperto che andava ricaricato

    A questo punto mi basta condizionare l'operazione fatta tramite l'onunload al tipo di operazione che l'ha generato.

    grazie mille di tutto, sei stato molto utile.
    Giugallo

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.