CSDN文章优化打印

优化CSDN文章页面用于打印,移除不必要元素并自动调用打印功能,解决第一页空白问题

Versión del día 16/03/2025. Echa un vistazo a la versión más reciente.

// ==UserScript==
// @name         CSDN文章优化打印
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  优化CSDN文章页面用于打印,移除不必要元素并自动调用打印功能,解决第一页空白问题
// @author       Sherry
// @match        *://*.csdn.net/*/article/details/*
// @grant        none
// @run-at       document-end
// @icon         https://tse1-mm.cn.bing.net/th/id/OIP-C.3iWufqIms_ccabhKcsM4GgHaHa?w=180&h=180&c=7&r=0&o=5&dpr=1.5&pid=1.7
// @license      MIT
// ==/UserScript==

(function(){
    'use strict';
    
    // 等待页面完全加载
    setTimeout(function() {
        // 移除不必要元素
        var articleBox = $("div.article_content");
        articleBox.removeAttr("style");
        $(".hide-preCode-bt").parents(".author-pjw").show();
        $(".hide-preCode-bt").parents("pre").removeClass("set-code-hide");
        $(".hide-preCode-bt").parents(".hide-preCode-box").hide().remove();
        $("#btn-readmore").parent().remove();
        $("#side").remove();
        $(".csdn-side-toolbar, .template-box, .blog-footer-bottom, .left-toolbox, .toolbar-inside").remove();
        $(".comment-box, .recommend-box, .more-toolbox, .article-info-box, .column-group-item").remove();
        $("aside, .tool-box, .recommend-nps-box, .skill-tree-box").remove();
        
        // 修复布局
        $("main").css({
            'display': 'block',  // 改为block而不是content
            'float': 'none',     // 改为none而不是left
            'margin': '0 auto',  // 居中显示
            'padding': '20px'    // 添加内边距
        });
        
        $("#mainBox").width("100%");
        
        // 修复可能导致第一页空白的问题
        $("body").css({
            'margin': '0',
            'padding': '0',
            'zoom': '0.8',
            'overflow': 'visible'
        });
        
        // 确保文章内容从第一页开始
        $("article").css({
            'page-break-before': 'avoid',
            'margin-top': '0'
        });
        
        // 移除可能导致空白页的元素
        $(".first-page-break").remove();
        
        // 延迟调用打印功能,确保样式已应用
        setTimeout(function() {
            window.print();
        }, 500);
    }, 1000);
})();
长期地址
遇到问题?请前往 GitHub 提 Issues。