使用油猴脚本净化 CSDN

sxkk20082年前知识分享184

我报名参加金石计划 1 期挑战——瓜分 10 万奖池,这是我的第 1 篇文章,点击查看活动详情

代码片段

CSDN 的百度搜索权重很高,比如我们搜索一个关键词, 输入react 性能优化,第一个就是 CSDN 的链接,打开 CSDN 的链接,里面有很多广告,然后我们想复制里面的代码块,CSDN 会要求我们登录后才可以复制,直接用鼠标去选中文本是无法选中的。我们可以使用可以油猴脚本来完美解决,打开脚本,重新刷新页面,边上的广告消失了,一起来看代码块,“登录复制按钮”变成了“免登录复制”,也可以手动选中复制代码了。

下面我们来看下实现原理,打开 chrome dev tools 选中代码块,这里的 code 标签和 pre 标签 user-select 值是 none,所以鼠标是无法选中的。

// ==UserScript==
// @name         CSDN 免登录复制
// @version      0.1
// @icon         https://blog.csdn.net/favicon.ico
// @description  CSDN 免登录复制,净化页面
// @namespace    https://github.com/maqi1520
// @match        *://*.csdn.net/*
// @license      MIT
// @grant        GM_registerMenuCommand
// @grant        GM_openInTab
// @grant        GM_addStyle
// ==/UserScript==

;(function () {
  'use strict'

  GM_addStyle(
    `pre,
code {
  user-select: auto !important;
}
#blogExtensionBox,
.hide-article-box,
.insert-baidu-box,
.signin,
.wwads-horizontal,
.wwads-vertical,
.blog-top-banner,
.blog_container_aside,
.programmer1Box,
.recommend-box,
.recommend-nps-box,
.template-box,
.hide-preCode-box {
  display: none !important;
}
main {
  width: 100% !important;
}
#article_content,
main div.blog-content-box pre.set-code-hide {
  height: auto !important;
}
`
  )
  // 删除暗黑皮肤样式
  $('link').each((index, item) => {
    if ($(item).attr('href').indexOf('skin') > -1) {
      $(item).remove()
    }
  })

  // 免登录复制
  $('.hljs-button').removeClass('signin')
  $('.hljs-button').attr('data-title', '免登录复制')
  $('.hljs-button').attr(
    'onclick',
    "hljs.copyCode(event);setTimeout(function(){$('.hljs-button').attr('data-title', '免登录复制');},3500);"
  )
  // 去除剪贴板劫持
  $('code').attr('onclick', 'mdcp.copyCode(event)')
  try {
    Object.defineProperty(window, 'articleType', {
      value: 0,
      writable: false,
      configurable: false,
    })

    csdn.copyright.init('', '', '')
  } catch (err) {}
})()

我们来看下脚本代码,注入一段样式, code 标签和 pre 标签的user-select 值改为 auto, 以及其他一些标签和广告标签,样式改为 display none, 使用 Jquery 将复制按钮的登录样式去除。文本改成“免登录复制”,修改onclick 事件,搞定啦。

大家可以通过这个地址下载安装, 若你也想尝试开发脚本,可以看我的另一篇文章《油猴脚本开发教程》

以上就是本文全部内容,如果对你有帮助,可以随手点个赞,这对我真的很重要,希望这篇文章对大家有所帮助,也可以参考我往期的文章或者在评论区交流你的想法和心得,欢迎一起探索前端。

相关文章

绘画AI智能:颠覆艺术创作的未来

绘画AI智能:颠覆艺术创作的未来

  近年来,随着人工智能技术的不断发展,越来越多的行业开始探索其应用。其中,AI在绘画领域中的应用备受关注。绘画AI智能技术不仅可以为艺术家提...

在某种程度上,它可能在初学者看来是单调乏味或者不切实际的,但是严格按照这个步骤来做这件事,让你自己决定测试用例是否对你的组件有帮助,会让测试用例变得有意义。

本文将以创建一个 Confirmation 组件来说明,如何在 React 中如何实现测试驱动开发。

Confirmation 组件的特点:

  • Confirmation 标题
  • 确认描述 —— 接收外部程序想要确认的问题
  • 一个确认的按钮,支持外部回调函数
  • 一个取消的按钮,支持外部回调函数

这两个按钮都不知道点击时接下来要做什么事,因为它超出了组件的职责范围,但是组件应该接收这些点击按钮的回调事件。先找个设计图:

image.png

如何测试驱动开发 React 组件?

什么是 TDDTDD(Test-driven development),就是测试驱动开发,是敏捷开发中的一项核心实践和技术,也是一种软件设计方法论。它的原理就是在编写代码之前先编写测试用例,由测试来决...

水印相机拍摄地点怎么改?教你一招,轻松解决

水印相机拍摄地点怎么改?教你一招,轻松解决

  水印相机是一款非常实用的手机应用程序,可以为用户添加各种特别的水印效果,比如地址信息。然而,有时候我们需要更改地址信息的设置,以便适应不同的需求,而平常的水印...

其实 devtool.tech 里面的每个工具都挺好用的。

HTML 转 markdown 是如何实现?

其实有个包

HTML 转 Markdown 如此简单

前言现在好的技术文章非常多,每天各种技术群里,各种技术社区,有很多质量非常好的技术文章,比如 CSDN,掘金、微信公众号等, 于是我们就收藏了,收藏等于学会。可是问题来了,我们收藏到哪呢? CSDN...

次元AI绘画:智能技术给创作带来新生命

次元AI绘画:智能技术给创作带来新生命

  随着智能技术的快速发展和普及,AI绘画正在逐渐成为一种新的艺术形式。它可以帮助艺术家们创造出更加神奇的作品,同时也给普通用户提供了更多参与艺术创作的机会。本文将就次元AI...

百度文字识别OCR:方便快捷的智能识别工具

百度文字识别OCR:方便快捷的智能识别工具

  随着科技的不断发展,人工智能在各个领域都表现出了强大的应用潜力。百度文字识别OCR(Optical Character Recognition)作为自然语言处理技术的...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。