Ciao a tutti
io in una pagina ho 3 div con 3 relativi tasti stampa sotto ogni div!
Vorrei far stampare il singolo div cliccando il relativo tasto stampa...
come posso fare?
grazie
Paolo
Ciao a tutti
io in una pagina ho 3 div con 3 relativi tasti stampa sotto ogni div!
Vorrei far stampare il singolo div cliccando il relativo tasto stampa...
come posso fare?
grazie
Paolo
Non puoi farlo con solo i CSS. Ti serve un minimo di JS.
Devi dare
display: none;
a tutti i blocchi che non vuoi stampare. Puoi farlo con un CSS specifico per la stampa, ma questo non puo` discriminare tra i vari bottoni sulla pagina: per quello ci vuole JS.
Quando hai risolto la parte CSS del problema, spostiamo la discussione nel forum JS.
Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
No domande tecniche in messaggi privati
E cosa devo dire col js?
<div id="spazio1">...</div><button onclick="stampa(1);">
<div id="spazio2">...</div><button onclick="stampa(2);">
<div id="spazio3">...</div><button onclick="stampa(3);">
JS:Spero di non aver fatto errori.codice:function stampa(n) { for (var i=1; i<=3; i++) { document.getElementById('spazio'+i).style.display = (i==n) ? 'block' : 'none'; } document.print(); }
Sposto comunque nel forum JS.
Poi occorre vedere cosa deve fare il browser dopo la stampa: con questo codice non ripristina la pagina originale.
Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
No domande tecniche in messaggi privati
ho inserito quello che mi hai scritto!
Quando clicco su stampa mi fa vedere giustamente solo il div selezionato, però non parte la stampa... come mai?
Sono infatti un po' arrugginito sul JS.
Prova con
window.print();
Ma dicci anche con quale browser stai testando: in alcuni browser document.print() funziona (cioe` funzionava qualche anno fa, quando mi occupavo di JS).
Inoltre occorre vedere se il browser e` configurato correttametne per la stampa.
Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
No domande tecniche in messaggi privati
perfetto con window.print!
Domanda... visto che il codice js fa visualizzare il div scelto e poi bisogna cliccare aggiorna per tornare alla pagina completa, si può fare in modo che dopo aver cliccato stampa, la pagina faccia un refresh?
Ho fatto così...sembra funzionare, ma la sintassi è corretta?
<script>
function stampa(n) {
for (var i=1; i<=4; i++) {
document.getElementById('spazio'+i).style.display = (i==n) ? 'block' : 'none';
}
window.print();
window.location.reload();
}
</script>
Tecnicamente si puo` fare. La tua sintassi e` corretta.
Pero` poi probabilmente il reload viene eseguito prima della stampa, per cui verrebbe stampata la pagina intera.
Potresti fare un reload con ritardo:
window.setTimeout("window.location.reload()", 20000); // ritardo 20 secondi
ma anche questo e` un po' pericoloso (la stampa richiede comunque l'intervento dell'utente, e non puoi sapere quanto questi impiega a dare l'OK).
Tieni presente che browser diversi si possono comportare in modo diverso quando avviene una sovrapposizione temporale dei comandi.
Comunque immagino che questi problemi siano gia` stati afforntati in questo forum. Prova con una ricerca nel forum (bottone in alto).
Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
No domande tecniche in messaggi privati
ok grazie verificherò!
Con firefox, finchè non do ok per la stampa non mi fa il refresh e così sarebbe perfetto... adesso provo con altri browser!
![]()