只看博客内容

支持【CSDN,简书,博客园,知乎,掘金,51CTO,51CTO文章,阿里云开发者社区,腾讯云开发者社区,微信,InfoQ,Github】等。 必要时临时关闭脚本,可能是需要验证。

目前為 2023-02-02 提交的版本,檢視 最新版本

// ==UserScript==
// @name        只看博客内容
// @description 支持【CSDN,简书,博客园,知乎,掘金,51CTO,51CTO文章,阿里云开发者社区,腾讯云开发者社区,微信,InfoQ,Github】等。 必要时临时关闭脚本,可能是需要验证。
// @namespace   https://gitee.com/inch_whf/tampermonkey-script-inch
// @version     1.20
// @author      wuhongfei
// @license     MIT
// @grant       none
// @match       *://blog.csdn.net/*/article/details/*
// @match       *://*.blog.csdn.net/article/details/*
// @match       *://www.jianshu.com/p/*
// @match       *://www.cnblogs.com/*/*/*
// @match       *://zhuanlan.zhihu.com/p/*
// @match       *://juejin.cn/post/*
// @match       *://blog.51cto.com/u_*
// @match       *://www.51cto.com/article/*
// @match       *://cloud.tencent.com/developer/article/*
// @match       *://bbs.huaweicloud.com/blogs/*
// @match       *://developer.aliyun.com/article/*
// @match       *://mp.weixin.qq.com/*
// @match       *://www.it610.com/article/*
// @match       *://www.infoq.cn/article/*
// @match       *://www.infoq.cn/news/*
// @match       *://github.com/*/*/issues/*
// ==/UserScript==

// 启动函数
(function(){
  window.host = window.location.host;
  if(['www.infoq.cn','bbs.huaweicloud.com','www.cnblogs.com'].includes(host)){
    window.onload=(()=>setTimeout(()=>{main(host)},1000));
  // }else if(['juejin.cn','www.jianshu.com'].includes(host)){
  }else {
    main(host);
  }
})();

// 主函数
function main(host){
  'use strict';
  // 删除标题中的冗余信息
  removeInfo();

  // 特制函数
  zhihu();
  csdn();
  tencent_cloud();

  const dom = get_dom (host);
  body_just_content(dom);
  dom_adjustment(dom);
}

// 去掉 (xx条消息)
function removeInfo() {
    let title = document.getElementsByTagName("title")[0];
    title.innerText = title.innerText.match(/(\([0-9]+.*[条](?=私信|消息).*?\)\s*)?(.+)/)[2];
}

// 获得dom元素
function get_dom (host) {
  const map = {
    'blog.csdn.net'        :'#article_content',
    'www.jianshu.com'      :'div > div > div > div > section:nth-child(1) > article',
    'www.cnblogs.com'      :'#cnblogs_post_body', // https://www.cnblogs.com/intotw/p/13816056.html
    // 'www.cnblogs.com'      :'div.post',
    // 'www.cnblogs.com'      :'#topics > div',
    'zhuanlan.zhihu.com'   :'.RichText',
    'juejin.cn'            :'.markdown-body',
    'blog.51cto.com'       :'#page_center > article > div.common-section.common-spacing.mb30.article-detail > div.article-content-wrap',
    'www.51cto.com'        :'#__layout > div > section.index-set > div > div.article-left > article',
    'developer.aliyun.com' :'body > div.article-detail > div.article-wrapper > div.left-content > div.content-wrapper',
    'cloud.tencent.com'    :'#react-root > div:nth-child(1) > div.J-body.col-body.pg-2-article > div.com-3-layout > div.layout-main > section.com-2-panel.col-2-article.J-articlePanel > div.com-markdown-collpase > div.com-markdown-collpase-main > div:nth-child(1) > div',
    'bbs.huaweicloud.com'  :'#blogContent',
    'mp.weixin.qq.com'     :'#img-content',
    'www.it610.com'        :'body > div:nth-child(3) > div > div > div.col-md-9',
    'www.infoq.cn'         :'.article-preview',
    'github.com'           :'#discussion_bucket > div > div.Layout-main',
    };
    // 'zhuanlan.zhihu.com'   :'#root > div > main > div > article',

  if(host.endsWith("blog.csdn.net")){
      host = "blog.csdn.net";
  }
  const selector = map[host];
  const dom = document.querySelector(selector);
  return dom;
}



// 只保留内容dom
function body_just_content (dom) {

  const body = document.body;

  // var dom2 = dom;
  // while(dom2.parentElement.tagName!='BODY'){
  //   dom2 = dom2.parentElement;
  // }
  // body.removeChild(dom2);

  const children = body.children
  for (var i = children.length - 1; i >= 0; i--) {
    if("LINK"!=children[i].tagName && "SCRIPT"!=children[i].tagName){
    // if("DIV"==children[i].tagName){
      body.removeChild(children[i]);
    }
  }

  body.appendChild(dom);
}


// 调整dom元素
function dom_adjustment(dom){
  dom.style.width = '95%';
  dom.style.margin = 'auto';
  dom.style.display = 'block';

  body = document.querySelector('body');
  // body.style.background = '';

  // https://blog.csdn.net/x619y/article/details/80604609
  // body.style.setProperty('background', '#f5f6f7', 'important');
  body.style.setProperty('background', 'rgba(18,18,18,0)', 'important');

  // body.style.background-image = 'url("")';
  // body.style.removeProperty('background-image');

  const children2 = dom.children
  for (var i = children2.length - 1; i >= 0; i--) {
    children2[i].style.width = '100%';
    // children2[i].style.margin = '0';
    // children2[i].style.padding = '0';
    // children2[i].style.border = '0';
  }

  if (typeof window.orientation == 'undefined') {
    // 当前设备不是移动设备,限制宽度
    // 参考:https://www.ruanyifeng.com/blog/2021/09/detecting-mobile-browser.html

    imgs = dom.getElementsByTagName("img");
    for (var i = imgs.length - 1; i >= 0; i--) {
      imgs[i].style.width = '';
      imgs[i].style.maxWidth = '50%';
      imgs[i].style.display = 'block';
    }

    // videos = dom.getElementsByTagName("video");
    // for (var i = videos.length - 1; i >= 0; i--) {
    //   videos[i].style.width = '';
    //   videos[i].style.maxWidth = '50%';
    // }
  }

}

// 开始特制===========================================================================

// 知乎特制
function zhihu(){
  if('zhuanlan.zhihu.com' != host){
    return;
  }

  // 直接渲染所有图面
  (function() {
    attribute = 'data-actualsrc';
    imgs = document.querySelectorAll('img['+attribute+']');
    for (var i = imgs.length - 1; i >= 0; i--) {
      img = imgs[i];
      imgs[i].setAttribute('src',imgs[i].getAttribute(attribute));
    }
  })();

  // 关闭登录弹窗

    setTimeout(()=>{
    // 获得按钮
      closeButton = document.querySelector(".Modal-closeIcon")
      if(closeButton == null){
        return;
      }

      // 点击
      closeButton.dispatchEvent(new MouseEvent('click', {
          view: window,
          bubbles: true,
          cancelable: true
        }));
      // 把html中的“overflow:hidden"去掉,小时滚动条
      document.querySelector("html").style.overflow = "";
  },1000);

//   // 展示gif
//   if (typeof window.orientation == 'undefined') {
//     // 当前设备不是移动设备,限制gif
//     // 参考:https://www.ruanyifeng.com/blog/2021/09/detecting-mobile-browser.html

//     GifPlayers = document.querySelectorAll(".GifPlayer");
//     for (var i = GifPlayers.length - 1; i >= 0; i--) {
//       GifPlayers[i].querySelector(".GifPlayer-cover").style.paddingTop = '';
//       GifPlayers[i].getElementsByTagName("video").style.objectFit = "contain"
//     }

//   }

}

// csdn特制
function csdn(){
  if('blog.csdn.net' != host){
    return;
  }

  // 关闭“CSDN:关注博主即可阅读全文”
  // 参考:https://www.isolves.com/it/cxkf/yy/js/2022-06-29/56707.html
  var article_content=document.getElementById("article_content");
  if(!article_content.hasAttribute('style')){
    return;
  }
  article_content.removeAttribute("style");

  var follow_text=document.getElementsByClassName('follow-text')[0];
  follow_text.parentElement.parentElement.removeChild(follow_text.parentElement);

  var  hide_article_box=document.getElementsByClassName('hide-article-box')[0];
  hide_article_box.parentElement.removeChild(hide_article_box);

}

// 腾讯云特制
function tencent_cloud(){
  if('cloud.tencent.com'!=host){
    return;
  }
  var button=document.querySelector("#react-root > div:nth-child(1) > div.J-body.col-body.pg-2-article > div.com-3-layout > div.layout-main > section.com-2-panel.col-2-article.J-articlePanel > div.com-markdown-collpase.com-markdown-collpase-hide > div.com-markdown-collpase-toggle > a");
  if(button){
    button.click();
  }
}