有没有办法只在Windows上的IE8中使用css(而不是javascript)打印嵌套的"id = printarea"div(带样式)?
<div id="main">
This should NOT be shown in Print Preview
<div id="printarea">ONLY this should be shown in Print Preview
<table><tr><th>one</th><th>one</th></tr><tr><td>one</td><td>one</td></tr></table></div>
</div>
Run Code Online (Sandbox Code Playgroud)
我尝试过使用css,但由于继承,它显然没有显示任何内容.以下示例显示了我的意图.
@media print {
* { display:none; }
#printarea { display:block; }
}
Run Code Online (Sandbox Code Playgroud)
我已成功使用javascript(有效),但我认为它不是一个优雅的解决方案,因为我必须在document.write中提取所有css导入和样式块.
function printDiv(divId){
var divToPrint = document.getElementById(divId);
newWin= window.open();
newWin.document.write('<style>table,tr,td,th{border-collapse:collapse;border:1px solid black;}</style>');
newWin.document.write(divToPrint.innerHTML);
newWin.document.close();
newWin.focus();
newWin.print();
newWin.close();
}
Run Code Online (Sandbox Code Playgroud)
示例: http ://jsfiddle.net/D7ZWh/2/
相关: 覆盖父级的CSS显示属性
我有问题打印具有分页的数据表中的所有数据.我已经做过研究,在这个链接中发现了同样的问题
仅打印<div id ="printarea"> </ div>?
但是有些编码在我的项目中不起作用,或者我可能不理解编码.
这是我已经尝试的示例编码.所以基本上我在数据库中有19个数据..但是在这个页面中我将它限制为15
所以,当我点击按钮打印时,我不必去每个页面打印数据表中的所有数据.
这是我用于按钮打印的代码
<div id="printableArea">
<h1>Print me</h1>
Run Code Online (Sandbox Code Playgroud)
使用Javascript
function printDiv(divName) {
var printContents = document.getElementById(divName).innerHTML;
var originalContents = document.body.innerHTML;
document.body.innerHTML = printContents;
window.print();
document.body.innerHTML = originalContents;
}
Run Code Online (Sandbox Code Playgroud) 我的网站上有一个名为printUsers.html的页面。
它上面有一个按钮,该按钮使用'javascript:window.print()'打印页面。
我还在页面上使用“ @media print”来隐藏页面打印时的一些按钮。
一切都很好,我在这里没有问题。
问题如下:
网站上的所有页面均从主页扩展。因此,在printUsers.html的顶部,我有:
#{extends 'App/main.html' /}
这包括样式和带有按钮和下拉菜单的标题。
当用户单击打印按钮时,我想隐藏所有来自main.html的标题和按钮等。
我试着将它包装到div中,给它一个id并隐藏它,但这没有用。
我刚刚开始使用javascript,因此任何帮助将不胜感激。
谢谢。
jQuery
$(function(){
$("#btnPrint").click(function(){
var mydiv = document.getElementById("printDiv");
printDiv(mydiv);
});
});
function printDiv(divP) {
window.frames["print_frame"].document.body.innerHTML = $(divP).html();
window.frames["print_frame"].window.focus();
window.frames["print_frame"].window.print();
}
Run Code Online (Sandbox Code Playgroud)
HTML
<iframe name="print_frame" width="0" height="0" frameborder="0" src="about:blank">
</iframe>
<div id="printDiv">
//some content here
</div>
<input type="button" id="btnPrint" value="Print"/>
Run Code Online (Sandbox Code Playgroud)
上面的代码可以在 IE 和 Mozilla 中运行,但不能在 Safari、chome 和 Opera 中运行?请帮忙..