/
csdnOptimize.js
125 lines (118 loc) · 4.88 KB
/
csdnOptimize.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
// ==UserScript==
// @name CSDN文章阅读优化,过滤相关推荐中的下载模块&免登录查看所有评论&去广告
// @namespace https://greasyfork.org/zh-CN/scripts/425479
// @version 6.0
// @description csdn文章阅读界面下侧的相关文章中会有下载模块,但是一般我们只是想看文章,不想跳到相关下载,因此想写个脚本过滤掉下载模块,同时还实现免登录查看所有评论的功能,评论保留翻页功能,页面实现去广告
// @author sweet
// @include *://blog.csdn.net/*/article/details/*
// @include *://*.blog.csdn.net/article/details/*
// @run-at document-idle
// @icon https://cdn.jsdelivr.net/gh/doublesweet01/BS_script@master/image/sweet.jpg
// @note v6.0去除免登录复制功能
// @note v5.1修复一个bug
// @note v5.0相关推荐模块进一步优化,去除课程列表
// @note v4.0实现免登录复制
// @note v3.0实现去广告
// @note v2.1完善免登录展开评论功能,评论可以自动翻页,现在不会弹登录窗口了
// @note v2.0实现免登录展开评论功能,评论可以自动翻页
// @note v1.0实现过滤下载模块功能
// @require https://cdn.staticfile.org/vue/2.6.11/vue.min.js
// @require https://cdn.jsdelivr.net/npm/vue@2.6.12/dist/vue.min.js
// @grant GM_getValue
// @grant GM.getValue
// @grant GM_setValue
// @grant GM.setValue
// @grant GM_addStyle
// @grant GM_getResourceURL
// @grant GM_listValues
// @grant GM_getResourceUrl
// @grant GM.getResourceUrl
// @grant GM_xmlhttpRequest
// @grant GM_getResourceText
// @grant GM_registerMenuCommand
// @grant GM_setClipboard
// @grant unsafeWindow
// ==/UserScript==
(function () {
'use strict';
// 待隐藏的class名称集合
var classNameArray = ['type_download', 'comment-list-box', 'text-center', 'd-none', 'login-mark','type_course'];
var idNameArray = ['recommendAdBox'];
var addStyle = GM_addStyle;
var setClipboard = GM_setClipboard;
// 隐藏元素
function hideEle(className) {
switch (className) {
case 'type_download':
let hideElement = document.querySelectorAll('.' + className);
if (hideElement) {
for (let i = 0; i < hideElement.length; i++) {
hideElement[i].style.display = "none";
}
}
break;
case 'comment-list-box':
let hideElement01 = document.querySelector('.' + className);
if (hideElement01) {
hideElement01.style = "";
}
break;
case 'text-center':
addStyle(".text-center{display:none;}");
break;
case 'd-none':
addStyle(".d-none{display:block !important;}");
break;
case 'login-mark':
addStyle(".login-mark,#passportbox{display:none !important;}");
break;
case 'type_course':
let hideElement02 = document.querySelectorAll('.' + className);
if (hideElement02) {
for (let i = 0; i < hideElement02.length; i++) {
hideElement02[i].style.display = "none";
}
}
break;
}
}
// 隐藏元素
function hideEleById(idName) {
switch (idName) {
case 'recommendAdBox':
let hideElement = document.querySelectorAll('#' + idName);
if (hideElement) {
for (let i = 0; i < hideElement.length; i++) {
hideElement[i].style.display = "none";
}
}
break;
}
}
//对于不同类的元素,写个方法来一起修正css样式
function removeElements(classNameArray) {
for (let i = 0; i < classNameArray.length; i++) {//批量执行操作
hideEle(classNameArray[i]);
}
}
//对于不同类的元素,写个方法来一起修正css样式
function removeElementsById(idNameArray) {
for (let i = 0; i < idNameArray.length; i++) {//批量执行操作
hideEleById(idNameArray[i]);
}
}
function safeWaitFunc(classNameArray, callbackFunc, time) {
var times = time || 50;
var id = setInterval(function () {
clearInterval(id);
callbackFunc(classNameArray);
}, times);
}
//打印脚本信息
function printScript() {
console.log("sweet-CSDN文章阅读优化,过滤相关推荐模块的下载部分&免登录查看全部评论&免登录复制&去广告~")
}
safeWaitFunc(classNameArray, removeElements);
safeWaitFunc(idNameArray, removeElementsById);
printScript();
})();