У меня есть две функции для печати element
и распечатать page
печать другой страницы с помощью JQuery
function printPage(page,redirect,dontPrint=false)
{
if($('.printThis').length == 0)
{
$('body').append('<div class="printThis hide"></div>');
}
$('.printThis').load(page,function(){
printContent($('.printThis'),redirect,dontPrint);
$('.printThis').remove();
});
}
function printContent(div_id,redirect,dontPrint=false)
{
var DocumentContainer = div_id.html();
var html = '<html><head>'+
'<link href="'+tmpl+'assets/css/print.css" rel="stylesheet" type="text/css" />'+
'</head><body style="background:#ffffff;">'+
DocumentContainer+
'</body></html>';
var WindowObject = window.open("", "PrintWindow",
"width=750,height=650,top=50,left=50,toolbars=no,scrollbars=yes,status=no,resizable=yes");
WindowObject.document.write(html);
WindowObject.document.close();
WindowObject.focus();
setTimeout(function() {
if(!dontPrint)
{
WindowObject.print();
WindowObject.close();
}
if(redirect)
window.location.assign(redirect);
}, 50);
}
образуют любую страницу я поставить кнопку с функцией вкл Нажмите, чтобы распечатать страницу
<button class="btn btn-primary btn-xs" onclick="printPage('/myproject/prints/bill/sales/5','')">Print Bill</button>
когда пользователь нажимает кнопка для first time
это всплывающее окно blank page
!!!! в любое время, когда он нажимает кнопку снова, он отлично работает
Вы можете помочь?
Почему так? Вы можете просто добавить '' в ваш iframe, и он работает. –
Избегайте использования тайм-аутов, подобных этому: у пользователей есть разные типы соединений. Используйте функцию «onload», чтобы выполнить то, что вы ищете. – FrankerZ
Как использовать функцию 'onload' с' .load', я вызываю другую страницу? и 'no iframe' –