CSDN|简书优化

支持手机端和PC端

当前为 2023-01-06 提交的版本,查看 最新版本

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

作者
WhiteSevs
评分
0 0 0
版本
0.4.5
创建于
2020-06-27
更新于
2023-01-06
大小
16.2 KB
许可证
暂无
适用于

// ==UserScript== // @name CSDN|简书优化 // @namespace http://tampermonkey.net/ // @version 0.4.5 // @description 支持手机端和PC端 // @author MT-戒酒的李白染 // @include http*://www.csdn.net/* // @include http*://bbs.csdn.net/* // @include http*://www.jianshu.com/* // @include http*://blog.csdn.net/ // @include http*://download.csdn.net/* // @grant GM_addStyle // @grant GM_registerMenuCommand // @grant GM_unregisterMenuCommand // @grant GM_getValue // @grant GM_setValue // @grant GM_deleteValue // @grant GM_listValues // @grant unsafeWindow // @run-at document-start // @require http://cdn.staticfile.org/jquery/2.1.4/jquery.min.js // @require https://greasyfork.org/scripts/455186-whitesevsutils/code/WhiteSevsUtils.js?version=1135447 // @require https://greasyfork.org/scripts/449471-viewer/code/Viewer.js?version=1081056 // ==/UserScript==

(function () { "use strict";

var GM_menus = [ ["menu_showRedirect", "手机csdn显示Redirect", true], ["menu_thistab", "手机csdn新页面打开", true], ];

function change_normal_menu() { //修改菜单默认值 for (let i = 0; i < GM_menus.length; i++) { let get_GM_value = GM_getValue(GM_menus[i][0]); if (get_GM_value) { } else { console.log("修改菜单值"); GM_menus[i][2] = false; } } }

function register_GM_Menu() { //注册油猴菜单 for (let i = 0; i < GM_menus.length; i++) { let current_v = GM_menus[i][0]; let current_name = GM_menus[i][1]; let current_status = GM_menus[i][2]; GM_registerMenuCommand( [${current_status ? "√" : "×"}]${current_name}, function () { if (current_status) { console.log("关闭"); GM_deleteValue(current_v); } else { console.log("开启"); GM_setValue(current_v, "1"); } window.location.reload(); } ); } }

function isPhone() { /* 判断是否是手机访问 */ return Boolean(/(iPhone|iPad|iPod|iOS|Android)/i.test(navigator.userAgent)); }

function isCSDN() { return Boolean(/csdn.net/i.test(window.location.href)); }

function isJianShu() { return Boolean(/jianshu.com/i.test(window.location.href)); } change_normal_menu(); register_GM_Menu();

if (!isPhone()) { //电脑 console.log("电脑访问"); GM_addStyle( .ecommend-item-box.recommend-recommend-box, .login-mark, .opt-box.text-center, .leftPop, #csdn-shop-window, #passportbox, .passport-login-container, .toolbar-advert, .hide-article-box{ display: none !important; } .comment-list-box{ max-height: none !important; } .blog_container_aside, #nav{ margin-left: -45px; } .recommend-right.align-items-stretch.clearfix,.dl_right_fixed{ margin-left: 45px; } #content_views pre code{ user-select: text !important; } #article_content{ height: auto !important; overflow: auto !important; } ); $(document).ready(function () { unsafeWindow.articleType = 0; Utils.waitForDOM(".hljs-button.signin").then((dom) => { if (dom.length) { $(".hljs-button.signin").attr("data-title", "复制"); $(".hljs-button.signin").on("click", function () { const copyBtn = $(this); const copyArea = $(this).parent(); copyBtn.attr("data-title", "复制成功"); const btnParentElement = Utils.findParentDOM(this, (dom) => { return dom.className == "prettyprint" ? true : false; }); if (btnParentElement) { $(btnParentElement).bind({ mouseenter: function (e) { copyBtn.attr("data-title", "复制"); $(btnParentElement).unbind("mouseenter").unbind("mouseleave"); }, mouseleave: function (e) { copyBtn.attr("data-title", "复制"); $(btnParentElement).unbind("mouseenter").unbind("mouseleave"); }, }); } Utils.setClip(copyArea.text()); }); } }); $(".recommend-item-box[data-url*='https://download.csdn.net/']").each( (index, item) => { $(item).find(".content-box").css("border", "2px solid red"); } ); }); } else { //手机 if (isCSDN()) { GM_addStyle(` #mainBox { width: auto; } #operate,.feed-Sign-span, .view_comment_box, .weixin-shadowbox.wap-shadowbox, .feed-Sign-span{ display:none !important; } .GM-csdn-dl{ padding: .24rem .32rem; width: 100%; justify-content: space-between; -webkit-box-pack: justify; border-bottom: 1px solid #F5F6F7!important;

        }
        .GM-csdn-title{
            font-size: .3rem;
            color: #222226;
            letter-spacing: 0;
            line-height: .44rem;
            font-weight: 600;
            //max-height: .88rem;
            word-break: break-all;
            overflow: hidden;
            display: -webkit-box;
            -webkit-box-orient: vertical;
            -webkit-line-clamp: 2
        }
        .GM-csdn-title a{
            word-break: break-all;
            color: #222226;
            font-weight: 600;
        }
        .GM-csdn-title em,.GM-csdn-content em{
            font-style: normal;
            color: #fc5531
        }
        .GM-csdn-content{
            //max-width: 5.58rem;
            overflow: hidden;
            text-overflow: ellipsis;
            display: -webkit-box;
            -webkit-line-clamp: 1;
            -webkit-box-orient: vertical;
            color: #555666;
            font-size: .24rem;
            line-height: .34rem;
            max-height: .34rem;
            word-break: break-all;
            -webkit-box-flex: 1;
            -ms-flex: 1;
            flex: 1;
            margin-top: .16rem;
        }
        .GM-csdn-img img{
            width: 2.18rem;
            height: 1.58rem;
            //margin-left: .16rem
        }
        .GM-csdn-Redirect{
            color: #fff;
            background-color: #f90707;
            font-family: sans-serif;
            margin: auto 2px;
            border: 1px solid #ccc;
            border-radius: 4px;
            padding: 0px 3px;
            font-size: xx-small;
            display: inline;
            white-space: nowrap;
        }
        .component-box .praise {
            background: #ff5722;
            border-radius: 5px;
            padding: 0px 8px;
            height: auto;

        }
        .component-box .praise,.component-box .share {
            color: #fff;
        }
        .component-box a {
            display: inline-block;
            font-size:xx-small;
        }
        .component-box {
            display: inline;
            margin: 0;
            position: relative;
            white-space:nowrap;
        }
        .csdn-edu-title{
            background: #4d6de1;
            border-radius: 5px;
            padding: 0px 8px;
            height: auto;
            color: #fff !important;
        }
        #comment{
            max-height: none !important;
        }
        .comment_read_more_box,
        #content_views pre.set-code-hide .hide-preCode-box,
        .passport-login-container,
        .hljs-button[data-title='登录后复制']
        {
            display:none !important;
        }
        #content_views pre,
        #content_views pre code{
            webkit-touch-callout: text !important;
            -webkit-user-select: text !important;
            -khtml-user-select: text !important;
            -moz-user-select: text !important;
            -ms-user-select: text !important;
            user-select: text !important;
        }
        #content_views pre.set-code-hide{
            height: 100% !important;
            overflow-y: auto !important;
        }
        `);
  function replace_all_commend() {
    //替换所有的推荐
    var commend_list = $(".container-fluid");
    for (var coml = 0; coml < commend_list.length; coml++) {
      let current_commend_className =
        commend_list[coml].getAttribute("class");
      let current_commend_url = "";
      let current_commend_title = "";
      let current_commend_content = "";
      let current_commend_img = "";
      if (commend_list[coml].getAttribute("data-url")) {
        //有data-url 就有recommend_title
        /* console.log("有 data-url"); */
        current_commend_url = commend_list[coml].getAttribute("data-url");
        current_commend_title = $(commend_list[coml])
          .find(".recommend_title")
          .html();
        current_commend_content = $(commend_list[coml])
          .find(".text")
          .html();
        // current_commend_title = commend_list[coml].getElementsByClassName("recommend_title")[0].innerHTML;
        // current_commend_content = commend_list[coml].getElementsByClassName("text active")[0].innerHTML;
        let current_commend_img_dom = $(commend_list[coml]).find(
          ".recommend-img"
        );
        if (current_commend_img_dom.length) {
          for (
            var imgs = 0;
            imgs < current_commend_img_dom.length;
            imgs++
          ) {
            current_commend_img =
              current_commend_img + current_commend_img_dom[imgs].innerHTML;
          }
        }
      } else {
        /* console.log("没有data-url"); */
        current_commend_url =
          commend_list[coml].getElementsByTagName("a")[0].href;
        current_commend_title =
          commend_list[coml].getElementsByTagName("a")[0].innerHTML;
        current_commend_content =
          commend_list[coml].getElementsByClassName("text")[0].innerHTML;
        current_commend_img = "";
      }
      /* console.log("真实url:", current_commend_url); */
      if (GM_menus[0][2]) {
        current_commend_title =
          current_commend_title +
          `<div class="GM-csdn-Redirect">Redirect</div>`;
      }
      if (
        current_commend_url.match(
          /http(s|):\/\/(download.csdn.net|www.iteye.com\/resource)/g
        )
      ) {
        console.log("该链接为csdn资源下载,标识");
        current_commend_title =
          current_commend_title +
          `<div class="component-box"><a class="praise" href="javascript:;">CSDN下载</a></div>`;
      } else if (current_commend_url.match(/edu.csdn.net/g)) {
        console.log("该链接为csdn学院下载,标识");
        current_commend_title =
          current_commend_title +
          `<div class="component-box"><a class="csdn-edu-title" href="javascript:;">CSDN学院</a></div>`;
      }
      commend_list[coml].className = "GM-csdn-dl";
      commend_list[coml].setAttribute("data-url", current_commend_url);
      commend_list[coml].innerHTML =
        `<div class="GM-csdn-title">` +
        current_commend_title +
        "</div>" +
        `<div class="GM-csdn-content">` +
        current_commend_content +
        "</div>" +
        `<div class="GM-csdn-img">` +
        current_commend_img +
        "</div>";
      $("#recommend")
        .find(".recommend_list")
        .before($("#first_recommend_list").find("dl").parent().html());
      $("#first_recommend_list")?.remove();
    }
  }

  function new_commend_event() {
    //新的推荐跳转事件
    $(".GM-csdn-dl").bind("click", function (e) {
      let current_click_url = e.currentTarget.dataset.url;
      if (GM_menus[1][2]) {
        window.open(current_click_url);
      } else {
        window.location.href = current_click_url;
      }
    });
  }

  function auto_review() {
    //自动展开
    $(".article_content")?.removeAttr("style");
    $(".readall_box")?.show();
    $(".readall_box")?.addClass("readall_box_nobg");
    $(".readall_box")?.hide();
    $(".readall_box")?.addClass("readall_box_nobg");
    $(".detail-open-app-isshow")?.css("display", "block");
    $(".isshow-mask-lock-box")?.show();
  }
  function removeElement() {
    /* 移除一些元素 */
    $(".passport-login-container")?.remove();
  }

  $(document).ready(function () {
    console.log("mobile csdn");
    var csdn_interval_runum = 0;
    var csdn_interval = setInterval(function () {
      csdn_interval_runum = csdn_interval_runum + 1;
      console.log("展开");
      if (csdn_interval_runum <= 5) {
        auto_review();
        removeElement();
      } else {
        clearInterval(csdn_interval);
      }
    }, 200);
    var loding_comment_dom_num = 0;
    var loding_comment_dom = setInterval(function () {
      loding_comment_dom_num = loding_comment_dom_num + 1;
      if (loding_comment_dom_num <= 5) {
        try {
          replace_all_commend();
        } catch (err) {
          console.log("替换底部链接失败", err);
        }
      } else {
        clearInterval(loding_comment_dom);
        new_commend_event();
      }
    }, 500);
  });
} else if (isJianShu()) {
  console.log("简书");
  GM_addStyle(`
        .download-app-guidance,
        .call-app-btn,
        .collapse-tips,
        .note-graceful-button,
        .app-open,
        .header-wrap,
        .recommend-wrap.recommend-ad,
        .call-app-Ad-bottom,
        #recommended-notes p.top-title span.more,
        #homepage .modal,
        button.index_call-app-btn,
        span.note__flow__download,
        .download-guide,
        #footer,
        .comment-open-app-btn-wrap{
            display:none !important;
        }
        body.reader-day-mode.normal-size {
            overflow: auto !important;
        }
        .collapse-free-content{
            height:auto !important;
        }
        .copyright{
            color:#000 !important;
        }
        #note-show .content .show-content-free .collapse-free-content:after{
            background-image:none !important;
        }
        `);
  Utils.waitForDOM('div#homepage div[class*="dialog-"]').then((dom) => {
    if (dom.length) {
      dom[0].style["visibility"] = "hidden";
    }
  });
  Utils.mutationObserver('div#homepage div[class*="dialog-"]', {
    fn: (mutations) => {
      if (mutations.length == 0) {
        return;
      }
      if (mutations[0].target.style["display"] != "none") {
        document
          .querySelector('div#homepage div[class*="dialog-"] .cancel')
          ?.click();
      }
    },
    config: {
      /* 子节点的变动(新增、删除或者更改) */
      childList: false,
      /* 属性的变动 */
      attributes: true,
      /* 节点内容或节点文本的变动 */
      characterData: true,
      /* 是否将观察器应用于该节点的所有后代节点 */
      subtree: true,
    },
  });
}

} })();