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

    Aspettare l'esecuzione di window.print()

    Salve a tutti ho un codice di questo genere:
    codice:
    function stampa() {
    window.print();
    //varie istruzioni che modificano la pagina con il DOM
    il problema è che quando lancio la funzione la pagina stampata è quella già modificata.
    come posso fare per aspettare che la pagina venga stampata prima di proseguire nel codice?
    poichè avrei bisogno che stampi la pagina e poi modifichi... non il contrario.
    Io pensavo che il codice sopra andasse bene invece non va e come se lo script prosegue prima che venga lanciata la stampa.
    Poi non riesco proprio a capire come mai, essendoci prima la funzione window.print(), perchè mi stampa la nuova pagina. Quello che voglio dire è "non dovrebbe stampare e poi cambiare la pagina"?

  2. #2
    Aggiungo che ho provato anche a mettere le istruzioni di modifica nell'evento window.onafterprint ma la pagina stampata continua ad essere quella modificata dalla istruzioni successiva alla stampa.

  3. #3
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Non puoi non hai potere tramite js del processo di stampa.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  4. #4
    Eppure se ci metto tipo un alert dopo la funzione window.print() aspetta che la pagina sia mandata in stampa e poi fa comparire l'alert... per ora ho risolto con un setTimeout()... così facendo parte la stampa poi appena finita la stampa aspetta il tempo indicato e poi esegue le altre istruzioni

  5. #5
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Se hai risolto meglio cosi, ma temporizzare le funzioni non è la stessa cosa che attendere il processo di stampa
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  6. #6
    però ho controllato e il timer parte quando il processo di stampa è finito

  7. #7
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Strano dato che non c'è connessione tra le due cose il browser invia richiesta al S.O. di stampare una pagina e finisce li, non c'è risposta da parte del S.O.
    Comunque posta il codice potrebbe servire ad altri in futuro, e se possibile la pagina pubblica cosi da testarlo un attimo con i vari browser etc...
    Grazie
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  8. #8
    la pagina ce l'ho solo in locale. rendo il codice un po generico perchè le varie istruzioni DOM sono lunghette:
    codice:
    function stampa() {
    window.print();
    };
    function dopo_stampa() {
    //istruzioni DOM
    };
    se faccio:
    codice:
    stampa();
    dopo_stampa();
    mi stampa la pagina sbagliata cioè quella modificata da dopo_stampa().
    se faccio:
    codice:
    stampa();
    setTimeout("dopo_stampa()", 5000);
    allora stampa la pagina giusta e dopo che i dati vengono inviati alla stampante (cioè dopo aver cliccato OK e dopo che il browser ha processato e inviato i dati) parte il timer e dopo 5s mi cambia la pagina.

    è un po come se ne primo caso mi modificasse la pagina prima che si prema su OK nella schermata di stampa. il browser utilizzato è Firefox 3.6.15

  9. #9
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Ok, quando ho un attimo di tempo la provo.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

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.