Javascript 使用css样式打印div的步骤
我制作了一个只打印一个div的脚本,但是当我看到预览时,它不会使用添加的CSS“格式化”页面 HTML部分:Javascript 使用css样式打印div的步骤,javascript,Javascript,我制作了一个只打印一个div的脚本,但是当我看到预览时,它不会使用添加的CSS“格式化”页面 HTML部分: <center>Do not print this</center> <div>Hi mom!</div> <center>Print this</center> <div id="content" class="print">Hi da
<center>Do not print this</center>
<div>Hi mom!</div>
<center>Print this</center>
<div id="content" class="print">Hi dad!</div>
<input type='button' value='Print' onClick='Print()' />
不要打印此文件
嗨,妈妈!
打印这个
嗨,爸爸!
JS部分
function Print(){
var corpo = document.getElementById('content').innerHTML;
var a = window.open('','','width=640,height=480');
a.document.open("text/html");
a.document.write("<html><head><link rel=\"stylesheet\" href=\"./style.css\"></head><body><div class=\"print\">");
a.document.write(corpo);
a.document.write("</div></body></html>");
a.document.close();
a.print();
}
函数打印(){
var corpo=document.getElementById('content').innerHTML;
变量a=窗口打开('','',宽度=640,高度=480');
a、 文件。打开(“文本/html”);
a、 文件。填写(“”);
a、 文件编写(corpo);
a、 文件。填写(“”);
a、 document.close();
a、 打印();
}
现场版本:
它看起来像是在加载css之后才加载的
有什么提示吗?您的新文档未保存,因此没有预期的路径,因此CSS文件的相对引用找不到CSS 要使其按预期工作,您需要将CSS引用更改为绝对引用,或者首先添加代码以保存新的HTML文件 这就是您测试它的方式,还是您的产品版本也会像这样工作?(新文件,未保存,然后打印)
您总是可以在样式标记之间将实际的CSS本身注入到新文档的头部,而不仅仅是对CSS文件的引用。试试看。您的代码将创建无效的HTML 试一试
函数打印(){
var corpo=document.getElementById('content').innerHTML;
常量html=[];
html.push(“”);
//假设父页面上的第一个样式表-如果不是,请使用不同的选择器
//或者使用+location.protocol+'/'+location.host+'/style.css“>”
html.push(“”);
html.push(“”);
html.push(corpo);
html.push(“”);
console.log(html)
/*这在服务器上的代码段-取消注释中不起作用
变量a=窗口打开('',''宽度=640,高度=480');
a、 文件。打开(“文本/html”);
a、 document.write(html.join(“”);
a、 document.close();
*/
}
不要打印这个
嗨,妈妈!
打印这个
嗨,爸爸!
在codepen中,样式是内联使用的。检查DevTools中的页面。它是一样的。它不起作用。在头部,我现在看到它与我的第一个版本完全相同。它不会使用第一刻添加的CSS“格式化”页面。我必须关闭打印窗口,再次打开它,然后它才能工作。在本地尝试删除A.Print()
并使用html.push(“”);
但这样它不会打开打印窗口。。。