背景:
CSDN部分文章需要关注后才能看完整文章,需要登录才能复制代码;想象一下,好不容易找到一个合适的技术博文,阅读正酣之时,下面显示“关注博主即可阅读全文”,点击之后首先会需要登录,登录之后还要再关注这个素不相识、未曾谋面的博主,体验感不好,想要复制代码也需要登录后才能复制,为了解决这个问题,写了下面方便的实现;
解决方案:
1)单次版:
看了下他的处理方式,找到了解决方法,代码如下,可以在CSDN页面直接复制到控制台执行
(function(){let mask = document.getElementsByClassName('hide-article-box');mask.length && (mask[0].style.display='none');let con=document.getElementById('article_content');if(con){con.style.height='auto';con.style.overflow='visible';};let copyBtnTemp=document.getElementsByClassName('hljs-button');let copyBtnArr = Array.from(copyBtnTemp);copyBtnArr.forEach(copyBtn => {copyBtn.setAttribute('data-title', '复制'); copyBtn.setAttribute('onclick', 'hljs.copyCode(event)')})})();
如果上面这段代码就需要登录后复制的话,将下面这段代码复制到控制台按下回车,现在就可以不登录进行复制上面的单次版代码;
let copyBtnTemp=document.getElementsByClassName('hljs-button');let copyBtnArr = Array.from(copyBtnTemp);copyBtnArr.forEach(copyBtn => {copyBtn.setAttribute('data-title', '复制'); copyBtn.setAttribute('onclick', 'hljs.copyCode(event)')})
2)书签版(方便多次使用):
1、Chrome浏览器下直接到书签管理(chrome://bookmarks/)-> 右键 添加新书签
2、网址内容填写成下面这段代码:
javascript: (function(){let mask = document.getElementsByClassName('hide-article-box');mask.length && (mask[0].style.display='none');let con=document.getElementById('article_content');if(con){con.style.height='auto';con.style.overflow='visible';};let copyBtnTemp=document.getElementsByClassName('hljs-button');let copyBtnArr = Array.from(copyBtnTemp);copyBtnArr.forEach(copyBtn => {copyBtn.setAttribute('data-title', '复制'); copyBtn.setAttribute('onclick', 'hljs.copyCode(event)')})})();
3、到这里就可以了,到需要登录才能复制和关注的CSDN博文页面点击此书签,无需登录文章全部展开,代码也可以复制了。