网页打印中往往会出现页面显示不全、各类边框或悬浮窗干扰遮挡等问题,此时可以使用 javascript 删除并调整页面元素实现更好的打印效果。
以 Windows 下使用 Chrome/Edge/FireFox 打印 csdn 博客页面为例,直接使用 CTRL+P 调用 windows 打印机偶尔会发现博客页面显示不全、还被各种悬浮窗遮挡、博客页面前后均有多余元素等问题,编写如下 js 代码并在 console (控制台) 中运行:
代码主要参考自:优快云页面完美格式打印。
(function(){
$("#side").remove();
$("#comment_title, #comment_list, #comment_bar, #comment_form, .announce, #ad_cen, #ad_bot").remove();
$(".nav_top_2011, #header, #navigator").remove();
$(".csdn-side-toolbar,.template-box,.reward-user-box").remove();
$(".p4course_target, .comment-box, .recommend-box, #csdn-toolbar, #tool-box,#dmp_ad_58").remove();
$(".left-toolbox").remove();
$("aside").remove();
$(".tool-box").remove();
$("#recommendNps").remove();
$("#csdn-copyright-footer").remove();
$("main").css('display','content');
$("main").css('float','left');
$("#mainBox").css('width','1048px');
$("#mainBox").css('margin-left','0px');
$("#mainBox").css('margin-right','0px');
$(".main_father.clearfix.d-flex.justify-content-center").css("width","1048px");
window.print();
$("tool-box").remove();
})();
定义一个函数并直接运行,函数内部:$() 内通过 id (#id_name) 或 class (.class_name) 引用元素;remove 方法删除该元素;css 方法改变属性值以调整该元素;windows.print() 调用系统打印机。元素的 id, class, 属性值可以在元素页面中检查并在源代码中搜索确认。