我正在尝试使用这个带有JQuery的javascript在我的应用程序中打印某个div:
function PrintContent()
{
w=window.open();
w.document.write($('#diary').html());
w.print();
w.close();
}
它在新选项卡中打开div,打开打印选项面板但CSS样式丢失。我有一个print.css,设置为media =“print”但是,我认为它显然没有在新标签中加载这个文件,即它只是加载div而不是CSS所在的标题。
知道如何解决这个问题吗?我的javascript并不那么强大。
谢谢!
答案 0 :(得分:4)
请尝试使用此行:
w.document.write('<div id="diary">' + $('#diary').html() + '</div>');
您正在写出div的内部html 而不是实际的div标签。
上面的方法也会写出具有正确id的div标签。我只是将ID粘贴在那里,因为您可能会格式化div#diary
而不是div
。
修改强>
此方法应保持样式。
function PrintContent()
{
var e = document.createElement('div');
e.id = 'diary';
e.innerHTML = $('#diary').html();
document.getElementById('t').appendChild(e);
}
您只需创建一个可以插入此内容的位置,例如ID为div
的{{1}}。就像我在评论中发布的例子一样。
答案 1 :(得分:0)
因为document.write是不好的做法: