首页 新闻 会员 周边 捐助

如何使用js判断当前是否进入打印状态

0
悬赏园豆:100 [已解决问题] 解决于 2019-04-30 09:01

针对框架中的当前页面进行打印格式调整,打印时对格式进行调整(比如单选按钮,打印时保留用户选中的,未选中的按钮隐藏不显示,但是退出打印界面还是需要正常显示),打印部分是公共的,不能更改,只能在当前页面进行修改,打印调用的是浏览器自带的window.print()。
求教大神,如何判断当前页面是否进入了打印状态。

怂怂的主页 怂怂 | 初学一级 | 园豆:18
提问于:2018-12-20 15:34
< >
分享
最佳答案
0

已找到解决办法,附代码
<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>
怂怂 | 初学一级 |园豆:18 | 2018-12-23 13:26
其他回答(2)
0

类似这样做,试试:
<style media="print">//这表示是在打印时的样式 .noprint { display: none;font-size:19px;COLOR: blue; } </style>
<style media="screen"> //这表示是在屏幕显示时的样工 .print {font-size:19px;COLOR: red; } </style>

收获园豆:50
大豆男生 | 园豆:608 (小虾三级) | 2018-12-20 15:48

不行,有些需要调整的内容不能在样式里写,就比如说隐藏没有被选中的单选按钮,只能写在js里面,我的困惑就是如何把js里的事件跟打印页面响应

支持(0) 反对(0) 怂怂 | 园豆:18 (初学一级) | 2018-12-20 15:53
0

1.首先将你的页面内容也就是innerHtml提取出来,为字符串;假设为myhtml,此值不会改变;
2.另外一个变量str=myhtml;并对str做处理,也就是你说的对格式进行调整。
3.调整完以后将此str赋值给页面,并调用window.print();
4.再将myhtml赋值给页面,使页面回到初始状态。
这样子本页面没有变化,打印的也是你想要的内容。至于对str进行处理,就要看你的了。

收获园豆:50
你风致 | 园豆:2215 (老鸟四级) | 2018-12-20 15:56

我需要用框架里的方法进行打印,因为还会涉及到一些其他的内容如果用户勾选了也要一起带出来,你的方法可能不太适用与我的问题

支持(0) 反对(0) 怂怂 | 园豆:18 (初学一级) | 2018-12-20 16:01

@怂怂: 你要加什么内容你就往str里拼接;
假设你现在有另外一个盒子,盒子的内容和页面内容一致,你页面上勾选了,此时你点击打印,先将你要加的数据加给这个盒子,打印的时候打印盒子的内容,一个道理。

支持(0) 反对(0) 你风致 | 园豆:2215 (老鸟四级) | 2018-12-20 16:09

@心悠魂然: 但是点击的还是框架上的打印方法啊,我不能再重新加一个打印按钮

支持(0) 反对(0) 怂怂 | 园豆:18 (初学一级) | 2018-12-20 16:15
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册