2015-07-06 4 views
0

Я пытаюсь распечатать свое содержимое, но body не содержит всего содержимого для печати, которое я вставляю. Кажется, что-то вроде вопроса height.Как распечатать содержимое div с помощью jquery

var printcontent=$("#printDiv").html(); 
var printdiv=document.createElement('div'); 
$(printdiv).html(printcontent); 
$('body').before(printdiv); 
$('body').css('visibility', 'hidden'); 
window.print(); 
$('body').css('visibility', 'visible'); 
+2

Почему вы используете '.before()'? Контент должен быть * в * корпусе, а не * до * он ... – nnnnnn

ответ

2

, если вы хотите напечатать некоторые данные, я рекомендую установить носитель с помощью CSS, как этого

@media print { 
    p { 
     font-family: georgia, serif; 
     font-size: 14px; 
     color: blue; 
    } 
} 

это даст вам p содержания, когда вы идете для печати. то же, что вы можете сделать для своего div элемент

0

Запрос в формате CSS (печать) - это правильный способ сделать это. В jQuery вы также можете сделать что-то вроде следующего. Имейте в виду, что у вас будет дополнительный div вокруг вашего содержимого тела, но это, возможно, не проблема.

var printcontent = $("#printDiv").html(); 
var printdiv = $('<div/>', { 'id': "print-layout"}).html(printcontent); 

$('body').wrapInner("<div id='body-content'></div>"); 
$('#body-content').before(printdiv); 
$('#body-content').css('visibility', 'hidden'); 

window.print(); 
setTimeout(function() { 
    $('#print-layout').remove(); 
    $('#body-content').css('visibility', 'visible'); 
}, 0); 
Смежные вопросы