Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Body onload/onunload

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    263

    Body onload/onunload

    Ciao a tutti.
    Ho un piccolo problema con un body onload.
    Devo fare un upload di immagini in asp.
    Ho quindi un form dove in alcuni campi file inserisco il path delle immagini.
    Fornisco il submit e l'upload parte richiamando una pagina asp.
    In testa a quest'ultima pagina ho inserito il tag:

    <BODY onLoad=window.open('/public/common/status_bar.asp') onunload=window.close()>

    Cioè quello che vorrei fare è che ogni volta che lancio un upload, mi venga visualizzata da subito una popup con una barra che indica di attendere.
    Al termine dell'upload la popup mi si deve chiudere automaticamente.

    Quello che succede invece è che la finestra mi si apre al termine dell'upload e in più non mi si chiude automaticamente.

    Qualcuno riesce a darmi una mano ?

    Grazie

  2. #2
    beh, il motivo è che fai una chiamata sincrona, mi spiego meglio:
    Quando invi un file per mezzo di una form, invii una richiesta HTTP, con header multipart-form-data, ed in POST invii i dati dei file dei quali fai l'upload (fin qui nulla di difficile). Quando invii i file il server processa la pagina di script (ASP in questo caso) ed effettua le azioni (salva i file in un determinato posto, etc), POI invia la risposta al browser, non prima, quando, a tutti gli effetti, l'upload è concluso.
    In particolare, devi considerare che l'evento window.onload (corrispondente a <body onload="">) viene lanciato quando la pagina ha concluso il caricamento, cioè, quando il browser ha concluso di ottenere la risposta dal server.
    Come avrai capito, tu ottieni la risposta HTML dal server solo quando l'upload è concluso, ed apri il popup, solo in quel momento.

    Per fare quello che vuoi tu, necessiti di usare una chiamata ascincrona, Ajax insomma, per caricare i file, mentre visualizzi una barra di caricamento, senza cambiare la pagina.
    Purtroppo, in questo non ti posso aiutare, perché non ho mai implementato simili funzionalità, ma se fai una ricerca in Google, trovi di tutto.

    Un'ultima cosa: temo tu non abbia ben chiaro che sia window.onunload (<body onunload="">), questo evento non significa alla fine del caricamento della pagina, quello è window.onload, questo evento viene lanciato alla chiusura della stessa, cioè quando il broswer attiva o un redirect (cambia la pagina), o la chiusura della scheda, finestra del broswer stesso. Questo evento viene utilizzato, di solito, quandi ci sono aperti gli editor WYSIWYG, per chiedere di salvare i cambiamenti con un confirm() (che blocca l'esecuzione dell'evento fino ad un comando dell'utente).

    Spero di essere stato chiaro

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    263
    Sei stato chiarissimo, però già javascript mi è abbastanza oscuro, figuriamoci Ajax (per me è la marca di un un detersivo...).
    Comunque penso di risolvere mettendo nel form window.onclick in modo da aprire la popup quando "lascio" il form e di fare una close quando esco dall'upload.

    Ci provo e poi ti dico.

    Comunque grazie.

    Marco

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    263
    Risolto a metà.
    nel form metto:
    <form name="globe" method="POST" enctype="multipart/form-data" action="/public/dati/modify_gallery.asp" onsubmit="window.open('/public/common/wait.asp','ciccio','width=250, height=100, resizable=no, status=no, menubar=no, location=no, toolbar=no, scrollbar=no')">

    e funziona, cioè quando do l'invio, prima di iniziare l'upload, mi apre una popup corretta.

    Alla fine della pagina di upload, quando mi appare il messaggio di termine upload, inserisco:
    <script language="javascript">
    window.close()
    </script>

    ho provato anche con:
    <script language="javascript">
    ciccio.close()
    </script>
    ma non riesco a chiudere la popup.

    Consigli ?

  5. #5
    Mi spiace ma non lo so... per chiudere il popup dovresti usare:

    popup_window = window.open("");

    popup_window.close ();

    Ma quando passi ad un altra pagina, le variabili JS vengono azzerate... non so se si può mantenerle, o passarle alla pag successiva

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    263
    ma il fatto che io dia un nome alla popup (ciccio), non riesco a identificarla chiaramente ?

    Cioè non è possibile una forma tipo ciccio.close() (ovviamente questa l'ho già provata e non funziona)

  7. #7
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    window.open("","ciccio").close();

    ciao
    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

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    263
    Ma sei un GRANDE br1....
    2 giorni completi sono impazzito.

    Grazie

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.