不用登录就可以复制 CSDN 代码
在看 CSDN 的代码的时候,CSDN 要求登录后才可以进行代码区域的复制功能, 但其实并不需要登录就可以复制, 复制功能是浏览器自带的功能,所以 CSDN 这种做法和万恶的百度是没什么区别的。
第一步 查看开发者工具
通过查看开发者工具可以明显看到它在 代码区域 的同一级使用了一个按钮 div
而且 div 绑定了一个事件
这个事件直接是 hljs 下的,说明 hljs 绑定在 window 对象下,
第二步 查看 hljs 变量
查看 hljs 发现里面有一个叫 copyCode 的函数,说明这个就是复制函数
第三步 修改 onclick 事件
将onclick事件修改为 hljs.copyCode 即可
使用控制台的方法就是
[...document.querySelectorAll(".signin")].forEach(i=>i.onclick=hljs.copyCode)
第四步 删除登录窗口
登录窗口是一个 iframe 和一个遮罩层形成的
所以我们可以将它们全部 remove 掉
第五步 写油猴脚本代码
window.onload=function(){
[...document.querySelectorAll(".signin")].forEach(i=>i.onclick=hljs.copyCode);
document.querySelector('.login-mark').remove()
document.querySelector('.login-box').remove()
}
至此我们将 CSDN 的复制功能 搞定了