CSDN博客优化

优化CSDN博客展示

Чтобы установить этот скрипт, вы сначала должны установить расширение браузера, например Tampermonkey, Greasemonkey или Violentmonkey.

Для установки этого скрипта вам необходимо установить расширение, такое как Tampermonkey.

Чтобы установить этот скрипт, вы сначала должны установить расширение браузера, например Tampermonkey или Violentmonkey.

Чтобы установить этот скрипт, вы сначала должны установить расширение браузера, например Tampermonkey или Userscripts.

Чтобы установить этот скрипт, сначала вы должны установить расширение браузера, например Tampermonkey.

Чтобы установить этот скрипт, вы должны установить расширение — менеджер скриптов.

(у меня уже есть менеджер скриптов, дайте мне установить скрипт!)

Чтобы установить этот стиль, сначала вы должны установить расширение браузера, например Stylus.

Чтобы установить этот стиль, сначала вы должны установить расширение браузера, например Stylus.

Чтобы установить этот стиль, сначала вы должны установить расширение браузера, например Stylus.

Чтобы установить этот стиль, сначала вы должны установить расширение — менеджер стилей.

Чтобы установить этот стиль, сначала вы должны установить расширение — менеджер стилей.

Чтобы установить этот стиль, сначала вы должны установить расширение — менеджер стилей.

(у меня уже есть менеджер стилей, дайте мне установить скрипт!)

// ==UserScript==
// @name        CSDN博客优化
// @namespace   http://lovexy.fun/
// @version     1.2.3
// @description 优化CSDN博客展示
// @author      lovexy-fun
// @license     MIT
// @match       https://blog.csdn.net/*/article/*
// @icon        https://blog.csdn.net/favicon.ico
// @grant       none
// @supportURL  https://github.com/lovexy-fun/tampermonkey-script/issues
// ==/UserScript==

(function () {
    'use strict';

    /* 解除复制限制 */
    try {
        $("#content_views pre").css("user-select", "text");
        $("#content_views pre code").css("user-select", "text");
    } catch (error) {
        console.error({ msg: "解除复制限制错误", err: error });
    }


    /* 优化界面 */
    try {
        $("#csdn-toolbar").remove();//移除顶栏
        $(".blog_container_aside").remove();//移除左侧边栏
        $("#rightAside").remove();//移除右侧边栏
        $("#rightAsideConcision").remove();//移除右侧边栏
        $(".recommend-box").remove();//移除推荐文章
        $("#recommendNps").remove();//移除相关推荐评价
        $(".template-box").remove();//移除主题介绍
        $("#tool-share").remove();//移除分享
        $(".csdn-side-toolbar ").remove();//移除侧边工具按钮
        $("main").width("100%");//放大主体文章部分
        $("#treeSkill").remove();//移除相关知识点学习
        $("#dmp_ad_58").remove();//移除广告
    } catch (error) {
        console.error({ msg: "优化界面错误", err: error });
    }

    /* 去掉复制版权尾巴 */
    try {
        [...document.getElementsByTagName("article")].forEach(i => {
            i.oncopy = e => e.stopPropagation();
        }
        );
    } catch (error) {
        console.error({ msg: "去掉复制版权尾巴错误", err: error });
    }

    /* 解除不登录复制文章文本(非代码)限制 */
    try {
        $("#content_views")
            .unbind("keydown")
            .unbind("copy");
    } catch (error) {
        console.error({ msg: "解除文章复制限制失败", err: error });
    }

    /* 去掉选中文本后弹出的tips */
    try {
        $("#content_views")
            .unbind("mouseup")
            .unbind("mousedown");
    } catch (error) {
        console.error({ msg: "去除文本选中tips失败", err: error });
    }

    /* 不登录复制按钮生效 */
    try {
        [...document.getElementsByTagName("code")].forEach(i => {
            if ($(i).attr("onclick") === "mdcp.signin(event)") {
                $(i).attr("onclick", "mdcp.copyCode(event)");
            }
        });
        [...document.getElementsByClassName("hljs-button")].forEach(i => {
            $(i).attr("data-title", "复制");
            if ($(i).attr("onclick") === "hljs.signin(event)") {
                $(i).attr("onclick", "hljs.copyCode(event)");
            }
        });
    } catch (error) {
        console.error({ msg: "不登录复制按钮生效错误", err: error });
    }

    /* 自动关闭登录弹出框 */
    try {
        new MutationObserver((elements, observer) => {
            [...elements].forEach(i => {
                i.addedNodes.forEach(j => {
                    if ($(j).attr("class") === "passport-login-container") {
                        console.log("自动关闭登录");
                        $(j).remove();
                    }
                })
            });
        }).observe($("body")[0], {
            childList: true
        });
    } catch (error) {
        console.error({ msg: "自动关闭登录错误", err: error });
    }

})();