本帖最后由 zhzhch335 于 2022-3-22 16:44 编辑
(有老哥反映有的页面点击按钮还是会弹出登录框,我下午4点修改了下做了兼容,如果已经下载的朋友记得更新一下!用下面网址就行)太长不看:
去greasyfork安装:https://greasyfork.org/zh-CN/scripts/441883
直接下载(安装好油猴插件的应该会自动弹出安装提示):https://github.com/zhzhch335/myTampermonkey/releases/download/publish/CSDN.user.js
效果:
之前
之后
作为程序猿,应该会经常去csdn参(chao)考(xi)代码,今天在复制一篇文章的代码的时候,突然发现需要登录才能复制,但是我用github授权登录的时候居然失败了!
突发奇想,写个脚本解除这个限制吧!
稍微看一下文档结构,不难发现禁止选中复制就是css的user-select属性设置成了none而已,只要改回text即可:
属性
[JavaScript] 纯文本查看 复制代码 // 将所有代码区域变为可选
document.querySelectorAll("code").forEach(function(item) {
item.style = item.style + ";user-select: text !important;";
return item;
})
顺便也把右侧的登录复制按钮变成复制全部了:
[JavaScript] 纯文本查看 复制代码 // 将所有登录复制按钮变成全选
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);
}
第一次发帖,之前发错版块了,向管理大大认错 |