针对框架中的当前页面进行打印格式调整,打印时对格式进行调整(比如单选按钮,打印时保留用户选中的,未选中的按钮隐藏不显示,但是退出打印界面还是需要正常显示),打印部分是公共的,不能更改,只能在当前页面进行修改,打印调用的是浏览器自带的window.print()。
求教大神,如何判断当前页面是否进入了打印状态。
已找到解决办法,附代码
<style>
@media print {
.td1 {
display: none;
}
}
</style>
<body>
<div>
<table border="0" cellpadding="0">
<tr>
<td class="td1">
打印时隐藏内容
</td>
</tr>
<tr>
<td>l类型</td>
<td>
<span class="checks" id="type1">type1<input type="radio" name="type" value="1" /></span>
<span class="checks" id="type2">type2<input type="radio" name="type" value="2" /></span>
</td>
</tr>
</table>
<input type="button" value="打印" id="input_print" />
</div>
<script>
window.onbeforeprint = function(){
var $check = $("input[type='radio']:checked"); //获取选中的按钮
$("input[type='radio']").parent().hide(); //所有按钮隐藏
$check.parent().show(); //选中按钮显示
}
window.onafterprint = function(){
$("input[type='radio']").parent().show(); //还原所有按钮
}
</script>
类似这样做,试试:
<style media="print">//这表示是在打印时的样式 .noprint { display: none;font-size:19px;COLOR: blue; } </style>
<style media="screen"> //这表示是在屏幕显示时的样工 .print {font-size:19px;COLOR: red; } </style>
不行,有些需要调整的内容不能在样式里写,就比如说隐藏没有被选中的单选按钮,只能写在js里面,我的困惑就是如何把js里的事件跟打印页面响应
1.首先将你的页面内容也就是innerHtml提取出来,为字符串;假设为myhtml,此值不会改变;
2.另外一个变量str=myhtml;并对str做处理,也就是你说的对格式进行调整。
3.调整完以后将此str赋值给页面,并调用window.print();
4.再将myhtml赋值给页面,使页面回到初始状态。
这样子本页面没有变化,打印的也是你想要的内容。至于对str进行处理,就要看你的了。
我需要用框架里的方法进行打印,因为还会涉及到一些其他的内容如果用户勾选了也要一起带出来,你的方法可能不太适用与我的问题
@怂怂: 你要加什么内容你就往str里拼接;
假设你现在有另外一个盒子,盒子的内容和页面内容一致,你页面上勾选了,此时你点击打印,先将你要加的数据加给这个盒子,打印的时候打印盒子的内容,一个道理。
@心悠魂然: 但是点击的还是框架上的打印方法啊,我不能再重新加一个打印按钮