Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it L'avatar di dannie
    Registrato dal
    Aug 2005
    Messaggi
    336

    capire se caricamento pagina completato

    Da una pagina con un pulsante apro una pop-up, faccio il submit di un form con target la nuova pop-up aperta....e poi vorrei lanciare la stampa della pagina aperta nella pop-up! Il problema è che se metto varPopup.print() in sequenza alle altre istruzioni (sull'onclick del bottone), la stampa viene lanciata prima che alla pop-up arrivino effettivamente i dati elaborati (cioè sulla pagina bianca).... premesso che non posso toccare l'html della pagina da stampare, c'è un modo per capire -dalla pagina principale- quando la pagina nella pop-up è stata caricata e quindi posso lanciarne la stampa? :master:

  2. #2
    Utente di HTML.it L'avatar di dannie
    Registrato dal
    Aug 2005
    Messaggi
    336

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    mmm mi pare che se infili la popup in un frame di un frameset e controlli l'onload del frameset, dovresti ottenere true solo quando tutti i frames del frameset sono stati effettivamente caricati.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  4. #4
    Utente di HTML.it L'avatar di dannie
    Registrato dal
    Aug 2005
    Messaggi
    336
    Mhmmmm.... scusa, non ho mai usato i frame, potresti spiegarmi meglio?
    In pratica, da un bottone io devo inviare dei dati a una servlet (di cui non ho il codice), che mi restituisce una pagina con i dati elaborati e formattati, di cui devo lanciare la stampa. Ho pensato di aprirla in una pop-up proprio perchè mi sembrava l'unico modo per lanciare il comando di stampa da una pagina esterna (come ti dicevo, non ho mai usato i frame, le pagine che sto modificando non li prevedono...ma potrei costruirne una apposita con frame se pensi possa risolvere il mio problema), ma se hai suggerimenti diversi ben vengano.... grazie!

  5. #5
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    Seguendo il suggerimento di Andrea potresti aprire una popup con al suo interno un iframe con altezza e larghezza al 100% e all'onload della pagina fai partire la stampa
    Il codice della popup tipo questo
    codice:
    <html>
    <body onload="self.print();">
    <iframe src="http://tuoindirizzoservlet" width="100%" height="100%"></iframe>
    </body>
    </html>

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    codice:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title></title>
    </head>
    
    <frameset rows="0,*" frameborder="no" border="0" framespacing="0" onload="window.frames['printFrame'].print();">
      <frame src="" name="topFrame" scrolling="No" noresize="noresize" id="topFrame" />
      <frame src="pagina_da_stampare.jsp" name="printFrame" id="printFrame" />
    </frameset>
    <noframes><body>
    </body></noframes>
    </html>
    Questo è il codice della popup: invece di aprire direttamente la pagina jsp (o html), apri una pagina con codice simile a quello lì sopra. pagina_da_stampare.jsp è la pagina di cui vuoi fare la stampa. Unico accorgimento: non puoi accedere a pagine provenienti da domini diversi (ossia la pagina da stampare deve appartenere allo stesso sito)
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  7. #7
    Utente di HTML.it L'avatar di dannie
    Registrato dal
    Aug 2005
    Messaggi
    336
    Grazie mille ragazzi, siete stati velocissimi e chiarissimi!

    Solo un ultimo dubbio.. Le soluzioni che mi avete presentato hanno un frame che apre una pagina di stampa, ma io devo fare il submit di un form... cioè, io prima facevo qualcosa del tipo:
    codice:
    var stampaPopUp = window.open('','nuovaFin');
    document.forms[0].target='nuovaFin';
    document.forms[0].submit(); //faccio il submit sulla finestra di stampa
    document.forms[0].target=''; //ci sono altri bottoni nel form,devo ripristinare il target originale
    stampaPopUp.print(); //non va bene!!
    Ora, penso di dover sostituire con:
    codice:
    window.open('paginaFrame.html','nuovaFin');
    ...e poi? Come faccio a fare il submit del form con target il frame/iframe? Forse potrei mettere sull'onload di paginaFrame.html qualcosa tipo self.opener.forms[0].submit(); , ma a quel punto dove metto il comando di stampa?
    Mi sa che sto facendo un po' di confusione, riuscite a chiarirmi ancora un po' le idee?

  8. #8
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    i dati del form li devi passare in post o in get? Se li devi passare in post puoi usare qualche linguaggio lato server?

  9. #9
    Utente di HTML.it L'avatar di dannie
    Registrato dal
    Aug 2005
    Messaggi
    336
    In post e lavoro con pagine jsp, però devo seguire degli schemi abbastanza rigidi... Ti sto perdendo: l'utente visualizza un form con dei dati, eventualmente li modifica e preme il pulsante per stamparli.... cosa centrano eventuali post lato server? :master:

  10. #10
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Putroppo la soluzione che ho in mente funziona solo con IE

    nella tua pagina in cui hai il form

    codice:
    <form action="tua_action.jsp" target="printFrame" method="post">
    ...
    ...
    <input type="submit" onclick="window.open('printFrameSet.html','popup','features_popup');" />
    </form>
    printFrameSet.html avrà il codice del framset che ti ho postato prima. Il problema è che mentre IE becca il target del form anche se è un frame della popup, FF non lo vede, per cui ti apre 2 finestre, una con la popup e una per l'action del form


    ---------
    Soluzione ultra rapida: chiedi a chi ha fatto la pagina jsp di aggiungere un flag "print" che passerai dal form: se print=true, fai fare onload="print();" altrimenti nisba.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

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.