2015-11-01 11 views
5

ho ottenuto questo codice da questo sito per stampare un div:javascript per stampare un div specifica

function printData() 
{ 
    var divToPrint=document.getElementById("printTable"); 
    newWin= window.open(""); 
    newWin.document.write(divToPrint.outerHTML); 
    newWin.print(); 

    newWin.close(); 
} 

$('button').on('click',function(){ 
printData(); 
}) 

Come aggiungere il codice CSS per questo javascript da applicare a un tavolo con il 'tavolo' id =?

table, td, th { 
    border: 1px solid black; 
    text-align:justify; 
} 

th { 
    background-color: #7a7878; 
    text-align:center 
} 
+0

Stavo anche pensando che il CSS sarebbe un buon modo per controllare lo stile per la pagina stampata. Quando aggiungi la linea del foglio di stile, puoi provare a rimuovere temporaneamente tutto dal file table.css per vedere se la pagina viene caricata. Se lo fa, sai che c'è qualcosa nel tuo CSS che sta buttando via le cose. Inoltre, invece di scrivere dati nella pagina HTML, temporaneamente hard-code qualcosa, come "Questo è un test. L'HTML va qui". – Kip

+0

Ok, ho capito. Ma puoi vedere la domanda di modifica e aiutarmi con i codici? –

+0

pazienza, giovane padawan –

risposta

3

Si prega di dare un'occhiata a: http://jsfiddle.net/rhjv1u11/

function printData() 
{ 
    var divToPrint=document.getElementById("printTable"); 
    newWin= window.open(""); 
    newWin.document.write(divToPrint.outerHTML); 
    var css =`table, td, th { 
     border: 1px solid black; 
     text-align:justify; 
    } 

    th { 
     background-color: #7a7878; 
     text-align:center 
    }`; 
    var div = $("<div />", { 
    html: '&shy;<style>' + css + '</style>' 
    }).appendTo(newWin.document.body); 
    newWin.print(); 

    newWin.close(); 
} 

$('button').on('click',function(){ 
printData(); 
}); 

L'esempio appena inserisce un elemento di stile conatining le regole. Se il CSS che devi assegnare è piccolo come suggerisce l'esempio (e non ha bisogno di molta manutenzione), questa è una soluzione sufficiente.

Nel caso in cui sia molto più complesso, è necessario accedere a CSS newWin.document.head e inserire un nodo per caricare CSS esterno. Sarebbe in qualche modo come questo:

var linkElement=document.createElement("link"); 

linkElement.setAttribute("rel", "stylesheet"); 
linkElement.setAttribute("type", "text/css"); 
linkElement.setAttribute("href", "your.css.file.here.css") 
newWin.document.getElementsByTagName("head")[0].appendChild(linkElement) 
+0

non è successo nulla –

+0

beh, posso vederlo funzionare su http://jsfiddle.net/rhjv1u11/1/ ... forse il tuo errore è diverso da questo contesto? Ricorda inoltre che non tutti i dati css vengono utilizzati durante la stampa, a seconda delle impostazioni del browser. Gli sfondi, ad esempio, di solito vengono ignorati. Ho aggiunto larghezza 100% o l'esempio aggiornato per rendere evidente che funziona. –

+0

ma mi dà un segno rosso sulla linea var css e il pulsante di stampa si è fermato, sto usando dreamweaver con chrome per i test –

Problemi correlati