当我尝试在" Google Chrome"中打印页面时它没有显示任何内容,但内容显示在" Mozilla Firefox"中。可能是什么原因?
以下是" javascript"我用来打印页面特定部分的代码 -
function printItemsLevel(tableClass){
var html="<html>";
html+='<link rel="Stylesheet" type="text/css" href="{{ asset('css/bootstrap.css') }}"></link>';
html+='<link rel="Stylesheet" type="text/css" href="{{ asset('css/bootstrap-theme.css') }}"></link>';
html+= document.getElementsByClassName(tableClass)[0].innerHTML;
html+="</html>";
var printWin = window.open('','','left=0,top=0,width=960,height=960,toolbar=0,scrollbars=0,status =0');
printWin.document.write(html);
printWin.document.close();
printWin.focus();
printWin.print();
printWin.close();
}
谢谢你的到来。
答案 0 :(得分:0)
我认为问题应该是window.print之后的window.close。 Chrome不等待打印完成
试
setTimeout(function(){ printWin.close();}, 10000);
而不是
printWin.close();
所以你可以通过这种方式检查浏览器是否为chrome
var is_chrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1;
如果为true,则添加setTimeout函数,否则代码应该可以正常工作
总结
function printItemsLevel(tableClass){
var is_chrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1;
var html="<html>";
html+='<link rel="Stylesheet" type="text/css" href="{{ asset('css/bootstrap.css') }}"></link>';
html+='<link rel="Stylesheet" type="text/css" href="{{ asset('css/bootstrap-theme.css') }}"></link>';
html+= document.getElementsByClassName(tableClass)[0].innerHTML;
html+="</html>";
var printWin = window.open('','','left=0,top=0,width=960,height=960,toolbar=0,scrollbars=0,status =0');
printWin.document.write(html);
printWin.document.close();
printWin.focus();
printWin.print();
if(is_chrome){
setTimeout(function(){ printWin.close();}, 10000);
}
else{
printWin.close();
}
}
如果它不起作用我认为它可能是innerHTML中的一个错误
如果您要插入html代码,例如&#34; <header>Test</header>
&#34;它无法在所有浏览器中正常工作。尝试插入纯文本,让我知道是否有效。如果是,我建议您以这种方式使用jquery html
函数
$('.tableClass').html(data);