Greasy Fork

Greasy Fork is available in English.

去除CSDN代码登录后复制及全文关注后查看的限制

解决未登录时CSDN不能复制代码的问题

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

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

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

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

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

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

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

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

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

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

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

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

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

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

作者
zhzhch335
日安装量
0
总安装量
1,877
评分
2 1 0
版本
1.7
创建于
2022-03-22
更新于
2022-06-23
大小
2.6 KB
许可证
暂无
适用于

效果:


之前


之后










作为程序猿,应该会经常去csdn参(chao)考(xi)代码,今天在复制一篇文章的代码的时候,突然发现需要登录才能复制,但是我用github授权登录的时候居然失败了!

突发奇想,写个脚本解除这个限制吧!

稍微看一下文档结构,不难发现禁止选中复制就是css的user-select属性设置成了none而已,只要改回text即可:






[JavaScript]
1
2
3
4
5
// 将所有代码区域变为可选
document.querySelectorAll("code").forEach(function(item) {
    item.style = item.style + ";user-select: text !important;";
    return item;
})



顺便也把右侧的登录复制按钮变成复制全部了:

[JavaScript]
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
// 将所有登录复制按钮变成全选
document.querySelectorAll(".hljs-button").forEach(function(item) {
    item.dataset.title = "复制全部";
    return item;
})
// 重写登录复制方法
window.hljs.signin = e => {
    var preNode = e.path.filter(item => item.tagName == "PRE")[0];
    // 选中一段文字
    let selection = window.getSelection();
    let range = document.createRange();
    range.selectNode(preNode);
    selection.removeAllRanges();
    selection.addRange(range);
    // 执行复制命令
    document.execCommand('copy', false, null);
    e.target.dataset.title = "复制成功";
    setTimeout(() => {
        e.target.dataset.title = "复制全部";
    },1000);
}