王剑编程网

分享专业编程知识与实战技巧

CSDN免登陆复制代码的几种方法

csdn上的资源对于程序员来说非常有用,但是代码确不让直接复制,让程序员感觉非常不方便,下面介绍几个方法来解决这个问题。

方法一

  1. 在要复制的代码页面按F12
  2. 在Console界面输入以下内容
Array.from(document.querySelectorAll("code")).map(a=>{a.style="user-select:text;"})
$("#content_views").off("copy")

这样就可以不用登陆进行代码复制了。就这么简单!

方法二

如果觉得每次打开控制台执行代码比较麻烦,可以考虑做成浏览器插件。

  1. 编写content-script.js文件,代码如下
// 跳过关注博主展开全文
var article_content = document.getElementById("article_content");
if (article_content) {
    article_content.removeAttribute("style");
}

var code=document.getElementsByTagName('code');
for(var i=code.length-1;i>=0;i--)
{
	code[i].style.userSelect='text';
}
	
(function () {
	const elements = document.querySelectorAll('*');
	elements.forEach(element => {
		element.addEventListener('copy', function (e) {
			e.stopPropagation();
		});
	})
})();
  1. 编写manifest.json文件
{
	"manifest_version": 2,
	"name": "csdn复制代码",
	"version": "1.0.0",
	"description": "能够在不登陆的状态下复制CSDN的代码",
	"icons":
	{
		"16"  :  "img/icon.png",
		"48"  :  "img/icon.png",
		"128" :  "img/icon.png"
	},
	"content_scripts": 
	[
		{
			"matches": ["https://blog.csdn.net/*"],
			"js": ["js/content-script.js"],
			"css": ["css/style.css"],
			"run_at": "document_end"
		}
	],
	"permissions":
	[
		"contextMenus", // 右键菜单
		"tabs", // 标签
		"notifications", // 通知
		"webRequest", // web请求
		"webRequestBlocking",
		"storage", // 插件本地存储
		"http://*/*", // 可以通过executeScript或者insertCSS访问的网站
		"https://*/*" // 可以通过executeScript或者insertCSS访问的网站
	]
}
  1. 在谷歌浏览器 扩展程序--管理扩展程序--加载已解压的扩展程序,选择自己的插件路径进行加载,就可以实现复制自由了。

踩坑记录:

  • 在谷歌浏览器中加载扩展程序需要开启开发者模式。
  • 使用谷歌浏览器时不能用无痕模式,否则可能导致插件不生效。
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言