csdn复制突破脚本开发

/ 默认分类 / 0 条评论 / 1284浏览

csdn复制突破脚本开发

一.前言

在某一次搬砖过程中,发现国内某最大文章搬运平台CSDN的代码竟然无法复制了,光标也没有了,点击复制按钮提示需要登录,好家伙,非得我重新找下简书,博客园 同版的,哈哈哈开玩笑,为了突破这个限制于是就有了下面这个chrome插件

点击右侧目录可直接进入下载章节

二.原理

前面有博客和他家分享过chrome插件开发的方式,chrome插件的功能很强大,其中一个很好用的功能就是注入js或者css,修改dom等等
ps:关于chrome的开发基础知识就不介绍了,前面我有一片文章总结了几个比较好的开发文档地址,点我跳转
这里直接说明下复制突破的原理,其实很简单,不能复制,没有光标,说明dom结果变化了,无法识别文本,所以我将dom中的per修改为div,之后就可以了,
但其实在整个文章的dom中有一个id为content_views的元素,只要修改其id,网页中起作用的js或者css就无法定位元素,另外,每次复制的时候都会附带
一个原文链接声明,这个就是js监听复制事件,追加文本,我定位到其代码位置后,修改其追加的内容为空即可,原理就是这样,下面就是我实现的

另外,csdn做的很low,在页面加载时使用一个currentUserName作为标识,来判断用户是否登录,进而设置是否允许复制,所以只要在加载时,复制按钮加载前修改这个变量不为空串即可;

关键分析代码片段:

function s(e) {
        var t = "1001.2101.3001.4259";
        if ("object" == typeof e && null !== e) {
            var n = ".signin(event)"
              , o = "hljs"
              , i = ".copyCode(event)";
            "mdeditor" === h && (o = "mdcp"),
            i = o + i,
            w && (i = o + n),
            e.innerHTML = e.innerHTML + ('<div class="{0} {2}" data-title="{1}" data-report-click=\'{"spm":"' + t + "\"}'></div>").format(d, c, m),
            "hljs" === o ? e.querySelector(".hljs-button").setAttribute("onclick", i) : (e.setAttribute("onclick", i),
            e.style.position = "unset")
        }
    }
    if (window.ActiveXObject || "ActiveXObject"in window)
        return !1;
    for (var d = "hljs-button", c = "复制", u = "复制失败", p = "复制成功", h = void 0, m = "", g = navigator.userAgent.toLowerCase(), f = ["android", "iphone", "symbianos", "windows phone", "ipad", "ipod"], y = !1, v = 0; v < f.length; v++)
        if (g.indexOf(f[v]) >= 0) {
            y = !0;
            break
        }
    var w = !y && ("string" == typeof currentUserName && 0 === currentUserName.length);

三.安装使用

点我开始csdncopy插件下载

因为chrome高级的版本中,对插件做了很严格的控制,不是官方商店的插件不能启用,只能在开发者模式下使用加载解压后文件的形式来使用,也就是将crx文件改为zip或者rar,然后解压缩,后者直接使用 360压缩打开crx。然后将解压后的文件夹导入chrome即可,具体方法参考我之前的文章,或者按照下面的步骤:
1.打开chrome的插件管理界面
打开chrome的插件管理界面
2.开启开发者模式
开启开发者模式
3.导入插件解压后的文件夹
导入插件解压后的文件夹
4.启用插件
启用插件

效果:

ps: 野插件不要随意下载安装,因为万一有恶意程序,很容易泄露个人隐私敏感数据
上面我的这个插件绝对纯净无害版,放心安装
爱护正版软件,从我做起
点我跳转