首先,我们理解打印的过程,控制页面打印有很多种方法,这里我只讲最简单的一种。
打印分三步:
打印前,打印 和 打印后。
过滤的原理其实很简单,就是打印前 将不该显示的元素 全部display = none
然后打印后,再将页面修改回来。
废话不多说:
① 我们首先要注册两个函数
window.οnbefοreprint=beforePrint;
window.οnafterprint=afterPrint; ②编写打印前的过滤函数 和 打印后的恢复函数
//打印之前隐藏不想打印出来的信息
function beforePrint(){
$('.navbar').hide(); //隐藏头部
$('#page-header').hide(); //隐藏面包屑
$('#block-region-side-pre').hide(); //隐藏左侧导航栏
}
//打印之后将隐藏掉的信息再显示出来
function afterPrint(){
$('.navbar').show(); //显示头部
$('#page-header').show(); //显示面包屑
$('#block-region-side-pre').show(); //显示左侧导航栏}③给dom元素注册打印事件,要包含三个函数,顺序不能乱。
<button id="myprint" οnclick="beforePrint();window.print();afterPrint();">打印</button>至此,点击“打印” 按钮,即可过滤掉你不想要的页面元素了。
可是问题又来了。
我的页面顶部 出现了 title的内容 和 网址,底部也出现了不该出现的东西,怎么办?
用js程序可以解决吗,可以,只是兼容性很差,你可以百度搜索“js去掉打印页眉和页脚”,你会发现,他会去调用ActiveX控件和windows注册表,Linux和其他操作系统有吗?Firefox会自动给你安装ActiveX控件吗?
答案是否定的。
你干嘛那么懒呢?一步配置浏览器就好了,如下:
看看谷歌:不勾选 页眉和页脚
看看火狐:所有的都选择空白
其他浏览器,当然如出一辙。
版权声明:本文为wujiangwei567原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。