Created
September 11, 2023 16:20
-
-
Save shurGler/c07fa7acba6b91cd5ae2d72cdc7ffd09 to your computer and use it in GitHub Desktop.
🔥持续更新🔥 CSDN广告完全过滤、人性化脚本优化:🆕 不用再登录了!让你体验令人惊喜的崭新CSDN。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// ==UserScript== | |
// @name 🔥持续更新🔥 CSDN广告完全过滤、人性化脚本优化:🆕 不用再登录了!让你体验令人惊喜的崭新CSDN。 | |
// @namespace https://github.com/adlered | |
// @version 4.1.9 | |
// @description ⚡️全新4.0版本!拥有数项独家功能的最强CSDN脚本,不服比一比⚡️|🕶无需登录CSDN,获得比会员更佳的体验|🖥自定义背景图,分辨率自适配,分屏不用滚动|💾超级预优化|🔖独家超级免会员|🏷独家原创文章免登录展开|🔌独家推荐内容自由开关|📠独家免登录复制|🔗独家防外链重定向|📝独家论坛未登录自动展开文章、评论|🌵全面净化|📈沉浸阅读|🧴净化剪贴板|📕作者信息文章顶部展示 | |
// @author Adler | |
// @connect www.csdn.net | |
// @include *://*.csdn.net/* | |
// @require https://lf26-cdn-tos.bytecdntp.com/cdn/expire-1-M/jquery-cookie/1.4.1/jquery.cookie.min.js | |
// @require https://lf26-cdn-tos.bytecdntp.com/cdn/expire-1-M/nprogress/0.2.0/nprogress.min.js | |
// @require https://lf26-cdn-tos.bytecdntp.com/cdn/expire-1-M/clipboard.js/2.0.10/clipboard.min.js | |
// @supportURL https://github.com/adlered/CSDNGreener/issues/new?assignees=adlered&labels=help+wanted&template=ISSUE_TEMPLATE.md&title= | |
// @contributionURL https://doc.stackoverflow.wiki/web/#/21?page_id=138 | |
// @grant GM_addStyle | |
// @grant GM_setValue | |
// @grant GM_getValue | |
// @license AGPL-3.0-or-later | |
// @antifeature ads CSDNGreener 脚本中存在可永久关闭的小广告,请放心安装! | |
// @note 23-05-25 4.1.9 再次修复免登录复制无法使用的问题 | |
// @note 23-05-11 4.1.8 强杀变异型登录框弹出(不影响自己点击登录使用) | |
// @note 23-05-10 4.1.7 增强免登录复制功能 | |
// @note 23-04-11 4.1.6 去广告更新 | |
// @note 23-04-06 4.1.5 新增: 跳过 CSDN 的 link 页面 | |
// @note 23-04-04 4.1.4 增加ads标识 | |
// @note 23-03-30 4.1.3 移除统计代码,登录问题相关优化(只屏蔽一次) | |
// @note 23-02-03 4.1.2 修复了无法登录的问题(评论不登录无法加载暂无解决方案,我们在持续努力中) | |
// @note 22-05-30 4.1.1 功能修复,广告屏蔽 | |
// @note 22-01-18 4.1.0 代码折叠适配 | |
// @note 22-01-05 4.0.9 更新广告 | |
// @note 21-12-12 4.0.8 屏蔽学生认证 | |
// @note 21-10-21 4.0.7 屏蔽红包雨 | |
// @note 21-09-24 4.0.6 修复登录弹窗无法彻底去除的问题 | |
// @note 21-09-20 4.0.5 增加自定义背景功能 | |
// @note 21-09-13 4.0.4 增加一个没有收钱的广告(在设置里,不影响体验) | |
// @note 21-09-01 4.0.3 增加用户使用情况统计模块 | |
// @note 21-08-25 4.0.2 修复右侧置顶栏按钮消失的问题 | |
// @note 21-08-21 4.0.1 去除右侧悬浮栏,优化脚本 | |
// @note 21-08-20 4.0.0 全新4.0发布!UI美化,代码优化,兼容Firefox,更多排版模式 | |
// @note 21-08-20 3.5.7 修复无法完整复制、保存csdn的网页会跳转首页的问题 | |
// @note 21-08-19 3.5.6 自动隐藏底栏功能改为始终隐藏底栏 | |
// @note 21-08-18 3.5.5 修复无法选择复制的问题 | |
// @note 21-06-17 3.5.4 去除右侧红包悬浮窗 | |
// @note 21-04-18 3.5.3 增加显示小店的设定 | |
// @note 21-03-13 3.5.2 去主页广告,去文章页面推荐内容Title | |
// @note 21-03-01 3.5.1 修改文案 | |
// @note 21-02-06 3.5.0 修复上传资源界面标签选择消失的问题 | |
// @note 21-01-17 3.4.9 删除文章页和论坛广告,暂时停用右侧栏滚动功能(CSDN限制) | |
// @note 21-01-15 3.4.8 保存按钮优化,修复显示创作中心按钮功能失效的问题 | |
// @note 21-01-15 3.4.7 改进脚本细节,增加广告屏蔽能力,修复绿化按钮错位的问题 | |
// @note 20-12-25 3.4.6 主页部分嵌入式广告删除 | |
// @note 20-12-18 3.4.5 修复绿化设定按钮排版不正确的问题 | |
// @note 20-12-15 3.4.4 修复了某些子页显示不正常的问题 | |
// @note 20-10-23 3.4.3 适应新版CSDN,去除主页和登录页广告,以及登录提示,并移除底部信息 | |
// @note 20-10-20 3.4.2 删除右侧广告 | |
// @note 20-09-26 3.4.1 修改排版设定,修复登录框弹出的问题 | |
// @note 20-09-24 3.4.0 紧急修复由于CSDN前端样式修改导致设定开关丢失的问题 | |
// @note 20-08-27 3.3.9 紧急修复由于CSDN前端样式修改导致脚本失效的问题 | |
// @note 20-08-26 3.3.8 合法脚本提示 | |
// @note 20-07-20 3.3.7 修复菜单栏在创作中心显示异常的问题 | |
// @note 20-07-18 3.3.6 工具箱按钮优化 | |
// @note 20-07-05 3.3.5 评论复制功能交互优化 | |
// @note 20-07-04 3.3.4 修复右侧栏消失的问题 | |
// @note 20-07-03 3.3.3 新增复制评论功能!删除顶部广告 | |
// @note 20-06-28 3.3.2 提示修改 | |
// @note 20-06-27 3.3.1 弹窗提示逻辑修改为仅提示一次。 | |
// @note 20-06-27 3.3.0 网站标题新消息提醒去除 | |
// @note 20-06-26 3.2.9 恢复GreasyFork平台脚本支持 | |
// @note 20-06-21 3.2.0 脚本迁移通知 | |
// @note 20-06-21 3.1.9 增加自动隐藏底栏功能 | |
// @note 20-06-21 3.1.8 增加自动隐藏顶栏功能,修复选项窗口被点赞长条挡住的Bug,选项窗口布局修改 | |
// @note 20-06-20 3.1.7 设置窗口大小固定,增加打赏入口 | |
// @note 20-06-19 3.1.6 显示推荐内容按钮回归,新布局紧急修复 | |
// @note 20-06-18 3.1.5 自定义功能更新 | |
// @note 20-06-16 3.1.4 支持大部分功能模块化显示 | |
// @note 20-06-14 3.1.3 绿化设定优化 | |
// @note 20-06-14 3.1.2 ISSUE模板调整Support URL | |
// @note 20-06-14 3.1.1 增加搜博主文章模块 | |
// @note 20-06-13 3.1.0 修复设置过期的问题 | |
// @note 20-06-12 3.0.9 标题回滚 | |
// @note 20-06-12 3.0.8 主页广告删除,绿化设置仅显示在文章页面,删除页脚,顶部优化,若干细节优化 | |
// @note 20-06-11 3.0.7 增加官方QQ交流群,增加关闭强制白色主题功能 | |
// @note 20-06-11 3.0.6 用户名片功能优化 | |
// @note 20-06-11 3.0.5 优化加载速度 | |
// @note 20-06-10 3.0.4 修复设置界面遮挡的问题,显示博主头像 | |
// @note 20-06-09 3.0.3 默认设定修改 | |
// @note 20-06-09 3.0.2 修复推荐内容按钮刷新不生效的问题,增加工具箱提示框 | |
// @note 20-06-08 3.0.1 设置中心推出!增加浏览效果选项 && Green Book Icon Update | |
// @note 20-06-08 3.0.0 设置中心推出!增加浏览效果选项 | |
// @note 20-06-07 2.4.2 设置解耦,下个版本搞配置中心 | |
// @note 20-06-06 2.4.1 修复文章内容消失的问题 | |
// @note 20-06-04 2.4.0 修复推荐按钮错位的问题 | |
// @note 20-06-04 2.3.9 窄屏适配优化 | |
// @note 20-06-04 2.3.8 黑夜模式出现问题,紧急回档到 2.3.6 | |
// @note 20-06-03 2.3.7 感谢 @AlexLWT 增加黑暗模式 | |
// @note 20-06-02 2.3.6 AdsByGoogle 删除 | |
// @note 20-05-25 2.3.5 感谢 @RyanIPO 修复 Cannot read property 'replace' of undefined 报错的问题 | |
// @note 20-05-24 2.3.4 修复免登录复制功能 | |
// @note 20-05-22 2.3.3 Logo与背景同步 | |
// @note 20-05-22 2.3.2 深度删除背景 | |
// @note 20-05-20 2.3.1 通过require使用NProgress | |
// @note 20-05-20 2.3.0 显示推荐内容按钮样式内置,剔除CDN | |
// @note 20-05-17 2.2.9 进度条样式更新,时间延时优化 | |
// @note 20-05-17 2.2.8 更新脚本描述,展开评论的所有回复,删除创作中心按钮,加载进度条 | |
// @note 20-05-17 2.2.7 更新脚本描述 | |
// @note 20-05-16 2.2.6 修复第一次点击显示推荐内容无反应的问题 | |
// @note 20-05-16 2.2.5 删除抢沙发角标,修改显示推荐内容按钮样式 | |
// @note 20-05-16 2.2.4 感谢来自GitHub的朋友“HeronZhang”的Issue建议,删除所有博客花里胡哨的背景,主页分类中广告清除,CSS样式控制宽度适配代码优化 | |
// @note 20-05-16 2.2.3 感谢来自GitHub的朋友“RetiredWorld”的代码贡献,使用CSS来控制样式,而不是JS,增大灵活性。 | |
// @note 20-05-13 2.2.2 屏蔽您的缩放不是100%的提示 | |
// @note 20-04-29 2.2.1 感谢大家的支持,增加目录显示,自动判断是否存在目录调整页面宽度,屏蔽新增广告,欢迎大家体验并提出意见! | |
// @note 20-04-15 2.2.0 一些广告被其他插件屏蔽导致的异常无视之 | |
// @note 20-03-30 2.1.9 干掉“记录你的创作历程”,干掉未登录情况下的角标提醒 | |
// @note 20-03-13 2.1.8 窄屏适配加强 | |
// @note 20-03-13 2.1.7 更新简介 | |
// @note 20-03-12 2.1.6 宽度自适应(感谢来自GitHub的朋友LeonG7的建议)!修复剪贴板净化无效的问题。 | |
// @note 20-03-04 2.1.5 适配AdGuard | |
// @note 20-02-27 2.1.4 优化免登录复制 | |
// @note 20-02-25 2.1.3 免登录复制更新,现已可用 | |
// @note 20-02-24 2.1.2 By Github@JalinWang 更改去除剪贴板劫持的方式,使得原文格式在复制时能够保留 | |
// @note 20-02-22 2.1.1 紧急修复由于 CSDN 修改前端结构导致的文章错位 | |
// @note 20-02-11 2.1.0 若干动画优化,视觉体验更流畅 | |
// @note 20-02-06 2.0.9 武汉加油!修改推荐内容切换开关位置,减少违和感 | |
// @note 20-01-17 2.0.8 去除右侧广告 | |
// @note 20-01-17 2.0.7 感谢来自GitHub的朋友“gleans”的建议,去掉页头广告 | |
// @note 19-12-12 2.0.6 感谢来自GitHub的朋友“yexuesong”的建议,将作者信息在文章顶部展示 | |
// @note 19-10-30 2.0.5 美化隐藏按钮,增加点击动画 | |
// @note 19-10-30 2.0.4 删除CSDN官方在主页推送的文章(大多是广告) | |
// @note 19-10-30 2.0.3 添加更多屏蔽脚本 | |
// @note 19-10-30 2.0.0 祝自己生日快乐~完全重写CSDNGreener,统一使用JQuery,效率更高 | |
// @note 19-10-27 1.5.2 删除分享海报提示&&感谢GitHub的朋友“CHN-STUDENT”的反馈,去除底部课程推荐 | |
// @note 19-10-27 1.5.1 感谢来自GitHub的朋友“CHN-STUDENT”的细致复现反馈,去除了底部的课程推荐广告 | |
// @note 19-10-04 1.5.0 移除了底部主题信息和打赏 | |
// @note 19-09-10 1.4.9 感谢来自GitHub的朋友“programmerZe”的细致复现反馈,修复了评论区点击查看回复后,已经展开的评论会收起的问题 | |
// @note 19-09-04 1.4.8 感谢来自GitHub的朋友“dwdcth”的细致复现反馈,现在查看原创文章不会无限弹登录窗口了,且加强了自动展开功能 | |
// @note 19-08-20 1.4.7 感谢油叉用户“SupremeSir”的反馈,修复了右侧悬浮栏遮挡文章的问题 | |
// @note 19-08-14 1.4.6 无语。刚更新的免登录复制,又改了。修复! | |
// @note 19-08-13 1.4.5 更新了独家功能:免登录复制 | |
// @note 19-08-13 1.4.4 感谢来自GitHub的朋友“iamsunxing”的反馈,修复了顶部不贴边的问题 | |
// @note 19-08-01 1.4.3 感谢油叉用户“ddddy”的反馈,去除了更多推广广告 | |
// @note 19-07-30 1.4.2 感谢油叉用户“周义杰”的反馈,增加了防CSDN外链重定向的功能(CSDN臭流氓) | |
// @note 19-07-20 1.4.1 修复了推荐内容开关跨文章无效问题(忘了配置Cookie作用域) | |
// @note 19-07-19 1.4.0 1. 构架大更新 2. 感谢来自GitHub的朋友"lukemin"的反馈,加入了下方推荐内容是否隐藏开关(实用) | |
// @note 19-07-13 1.3.0 感谢来自GitHub的朋友“Holaplace”的反馈,修复了文章无法自动展开的问题(CSDN总改这个,令人头疼) | |
// @note 19-06-08 1.2.6 感谢油叉用户“DeskyAki”的反馈,修复了文章无法自动展开的问题 | |
// @note 19-06-07 1.2.4 修复了登录后评论无法正常打开的问题 | |
// @note 19-06-07 1.2.3 感谢油叉用户"永远的殿下"的反馈,在一上午的努力攻克下,终于实现了未登录展开评论的语句 | |
// @note 19-06-05 1.2.0 修复了评论无法自动展开的BUG | |
// @note 19-06-04 1.1.9 修复了无法自动展开的BUG(自闭了) | |
// @note 19-06-04 1.1.6 CSDN太坏了,把“消息”按钮的Class设置成了“GitChat”,所以修复了“消息”按钮消失的问题 | |
// @note 19-06-04 1.1.5 1. 优化了论坛体验 2.美化、优化代码结构 | |
// @note 19-06-04 1.1.4 感谢来自GitHub的朋友“iamsunxing”的反馈,增加了论坛广告匹配规则 | |
// @note 19-06-03 1.1.3 感谢来自GitHub的朋友“wangwei135”的反馈,去除了评论区上方的广告 | |
// @note 19-05-27 1.1.2 感谢油叉用户“夏伟杰”的反馈,修复了富文本编辑器无法使用的问题 | |
// @note 19-05-25 1.1.0 1. 修复了主页广告的问题 2. 论坛自动展开 3. 论坛广告消除 | |
// @note 19-05-25 1.0.9 感谢油叉用户“渣渣不准说话”的反馈,修复了收藏按钮消失的问题 | |
// @note 19-03-01 1.0.3 添加页面选择性过滤规则 | |
// @note 19-03-01 1.0.2 增加了净化剪贴板功能 | |
// @note 19-03-01 1.0.1 修复了排版问题, 优化了代码结构 | |
// @note 19-02-26 1.0.0 初版发布 | |
// ==/UserScript== | |
var version = "4.1.9"; | |
var currentURL = window.location.href; | |
if (currentURL.indexOf("?") !== -1) { | |
currentURL = currentURL.substring(0, currentURL.indexOf("?")); | |
} | |
var list; | |
var windowTop = 0; | |
var startTimeMilli = Date.now(); | |
var stopTimeMilli = 0; | |
// 配置控制类 | |
class Config { | |
get(key, value) { | |
var cookie = $.cookie(key); | |
if (cookie == undefined) { | |
new Config().set(key, value); | |
console.debug("Renew key: " + key + " : " + value); | |
return value; | |
} | |
console.debug("Read key: " + key + " : " + cookie); | |
if (cookie === "true") { return true; } | |
if (cookie === "false") { return false; } | |
return cookie; | |
} | |
getS(key, value) { | |
var cookie = $.cookie(key); | |
if (cookie == undefined) { | |
new Config().set(key, value); | |
console.debug("Renew key: " + key + " : " + value); | |
return value; | |
} | |
console.debug("Read key: " + key + " : " + cookie); | |
return cookie; | |
} | |
set(setKey, setValue) { | |
$.cookie(setKey, setValue, { | |
path: '/', | |
expires: 365 | |
}); | |
console.debug("Key set: " + setKey + " : " + setValue); | |
} | |
listenButton(element, listenKey, trueAction, falseAction) { | |
$(element).click(function () { | |
let status = new Config().get(listenKey, true); | |
console.debug("Status: " + status); | |
if (status === "true" || status) { | |
console.debug("Key set: " + listenKey + " :: " + false); | |
new Config().set(listenKey, false); | |
} else { | |
console.debug("Key set: " + listenKey + " :: " + true); | |
new Config().set(listenKey, true); | |
} | |
}); | |
} | |
listenButtonAndAction(element, listenKey, trueAction, falseAction) { | |
$(element).click(function () { | |
let status = new Config().get(listenKey, true); | |
console.debug("Status: " + status); | |
if (status === "true" || status) { | |
console.debug("Key set: " + listenKey + " :: " + false); | |
new Config().set(listenKey, false); | |
falseAction(); | |
} else { | |
console.debug("Key set: " + listenKey + " :: " + true); | |
new Config().set(listenKey, true); | |
trueAction(); | |
} | |
}); | |
} | |
} | |
var config = new Config(); | |
var progress = 0; | |
class Progress { | |
init() { | |
progress = 0; | |
NProgress.start(); | |
$("#greenerProgress").text("绿化中..."); | |
$(".toolbar-search").hide(); | |
} | |
setProgress(p) { | |
progress = p; | |
$("#greenerProgress").text(progress + "%"); | |
NProgress.set(progress / 100); | |
console.log(progress + "%"); | |
} | |
incProgress(p) { | |
progress = progress + p; | |
progress = progress > 100 ? 100 : progress; | |
$("#greenerProgress").text(progress + "%"); | |
NProgress.set(progress / 100); | |
console.log(progress + "%"); | |
} | |
done() { | |
progress = 100; | |
NProgress.done(); | |
$("#greenerProgress").html(protect_svg + ' CSDNGreener 正在守护您的浏览体验'); | |
setTimeout(function() { | |
$("#greenerProgress").fadeOut(500); | |
setTimeout(function() { | |
$(".toolbar-search").fadeIn(500); | |
if (!isFirefox()) { | |
// 提示 | |
let tipsCookie = config.get("showTip", true); | |
if (tipsCookie) { | |
showTips(); | |
} | |
config.set("showTip", false); | |
} | |
}, 500); | |
}, 1500); | |
} | |
} | |
var progressor = new Progress(); | |
// 自定义 CSS | |
// 进度条 | |
$('head').append("<style>#nprogress{pointer-events:none}#nprogress .bar{background:#f44444;position:fixed;z-index:1031;top:0;left:0;width:100%;height:2px}#nprogress .peg{display:block;position:absolute;right:0;width:100px;height:100%;box-shadow:0 0 10px #f44444,0 0 5px #f44444;opacity:1;-webkit-transform:rotate(3deg) translate(0,-4px);-ms-transform:rotate(3deg) translate(0,-4px);transform:rotate(3deg) translate(0,-4px)}#nprogress .spinner{display:block;position:fixed;z-index:1031;top:15px;right:15px}#nprogress .spinner-icon{width:18px;height:18px;box-sizing:border-box;border:solid 2px transparent;border-top-color:#f44444;border-left-color:#f44444;border-radius:50%;-webkit-animation:nprogress-spinner .4s linear infinite;animation:nprogress-spinner .4s linear infinite}.nprogress-custom-parent{overflow:hidden;position:relative}.nprogress-custom-parent #nprogress .bar,.nprogress-custom-parent #nprogress .spinner{position:absolute}@-webkit-keyframes nprogress-spinner{0%{-webkit-transform:rotate(0)}100%{-webkit-transform:rotate(360deg)}}@keyframes nprogress-spinner{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}</style>"); | |
// 设置窗口 | |
$('head').append("<style>.black_overlay{top:0%;left:0%;width:100%;height:100%;background-color:#000;z-index:1001;-moz-opacity:0.8;opacity:.10;filter:alpha(opacity=88)}.black_overlay,.white_content{display:none;position:absolute}.white_content{z-index:9999!important;top:25%;left:25%;width:650px;height:60%;padding:20px;border:0px;background-color:rgba(255,255,255,0.9);z-index:1002;overflow:auto}</style>"); | |
// 提示条 | |
$('head').append("<style>.tripscon{padding:10px}</style>"); | |
// 按钮(旧) | |
$('head').append("<style>#toggle-button{display:none}.button-label{position:relative;display:inline-block;width:82px;background-color:#ccc;border:1px solid #ccc;border-radius:30px;cursor:pointer}.circle{position:absolute;top:0;left:0;width:30px;height:30px;border-radius:50%;background-color:#fff}.button-label .text{line-height:30px;font-size:18px;-webkit-user-select:none;user-select:none}.on{color:#fff;display:none;text-indent:10px}.off{color:#fff;display:inline-block;text-indent:53px}.button-label .circle{left:0;transition:all .3s}#toggle-button:checked+label.button-label .circle{left:50px}#toggle-button:checked+label.button-label .on{display:inline-block}#toggle-button:checked+label.button-label .off{display:none}#toggle-button:checked+label.button-label{background-color:#78d690}</style>"); | |
// 保存按钮 | |
$('head').append("<style>.saveButton{background-color:#19a4ed;border:none;color:#fff;padding:5px 15px;text-align:center;text-decoration:none;display:inline-block;font-size:14px;cursor:pointer}</style>"); | |
// Star 样式 | |
$('head').append("<style>.giveMeOneStar:hover{color:#FF69B4;}</style>"); | |
// 设置窗口文字效果 | |
if (isFirefox()) { | |
$('head').append("<style>.configContainer label{font-size:15px}.configContainer p{font-size:15px}.giveMeOneStar{font-size:15px}.configContainer .title{font-size:20px}.configContainer .bold{font-weight:bold;margin-bottom:5px}</style>"); | |
} else { | |
$('head').append("<style>.configContainer label{font-size:5px}.configContainer p{font-size:10px}.giveMeOneStar{font-size:15px}.configContainer .title{font-size:20px}.configContainer .bold{font-weight:bold;margin-bottom:5px}</style>"); | |
} | |
// SVG | |
//var save_svg = '<svg t="1595082650173" class="icon" viewBox="0 0 1075 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2078" width="140" height="140"><path d="M753.763902 685.830244a48.952195 48.952195 0 0 1 49.152-48.702439c81.420488 0 141.162146-65.386146 141.162147-146.057366 0-43.507512-13.037268-82.419512-43.457561-109.243317a142.360976 142.360976 0 0 0-20.280195-14.935415 158.045659 158.045659 0 0 0-11.239025-6.243902l-2.747317-1.298732a155.847805 155.847805 0 0 0-9.191024-3.996097c-1.348683-0.549463-2.697366-0.999024-4.096-1.498537a152.35122 152.35122 0 0 0-8.491707-2.847219c-1.948098-0.599415-3.896195-0.999024-5.844293-1.498537-2.497561-0.599415-4.945171-1.24878-7.492683-1.748293-2.597463-0.499512-5.34478-0.899122-8.042146-1.24878-1.948098-0.249756-3.846244-0.599415-5.844293-0.79922a153.150439 153.150439 0 0 0-14.435903-0.749268c-1.498537 0-2.997073 0.199805-4.545561 0.249756a265.390829 265.390829 0 0 0-5.594536-24.526049c-0.499512-1.998049-1.298732-3.846244-1.898146-5.844292a267.438829 267.438829 0 0 0-5.944196-17.982439c-0.649366-1.798244-1.498537-3.496585-2.197853-5.29483a283.123512 283.123512 0 0 0-7.742439-17.732683L772.745366 269.736585a282.973659 282.973659 0 0 0-9.790439-17.832585C714.302439 171.582439 625.88878 124.878049 524.487805 124.878049c-101.400976 0-189.914537 46.654439-238.517073 126.976-3.496585 5.794341-6.693463 11.788488-9.790439 17.832585l-2.197854 4.096a283.523122 283.523122 0 0 0-7.742439 17.732683l-2.197854 5.244878c-2.247805 5.894244-4.145951 11.988293-5.994146 18.03239-0.549463 1.998049-1.298732 3.846244-1.848195 5.844293a266.739512 266.739512 0 0 0-5.594537 24.476098c-1.498537 0-2.997073-0.199805-4.545561-0.199805-4.89522 0-9.690537 0.299707-14.485853 0.749268-1.998049 0.199805-3.846244 0.499512-5.794342 0.79922-2.697366 0.349659-5.444683 0.699317-8.092097 1.24878-2.497561 0.499512-4.995122 1.148878-7.492683 1.748293-1.898146 0.499512-3.846244 0.899122-5.794342 1.498536a153.649951 153.649951 0 0 0-8.491707 2.797269l-4.096 1.498536a164.289561 164.289561 0 0 0-9.240976 3.996098l-2.697366 1.348683a145.557854 145.557854 0 0 0-31.469268 21.179317C117.884878 408.600976 104.897561 447.562927 104.897561 491.070439c0 80.67122 59.741659 146.057366 141.162146 146.057366a48.952195 48.952195 0 0 1 49.152 48.702439 48.952195 48.952195 0 0 1-49.152 48.702439c-135.717463 0-245.710049-108.993561-245.710048-243.462244 0-109.692878 73.228488-202.402341 173.830243-232.872585A375.832976 375.832976 0 0 1 524.487805 20.330146a375.882927 375.882927 0 0 1 350.307902 237.867708c100.601756 30.470244 173.830244 123.179707 173.830244 232.872585 0 134.468683-109.992585 243.462244-245.710049 243.462244a48.952195 48.952195 0 0 1-49.102048-48.702439z" p-id="2079"></path><path d="M487.973463 386.122927a49.102049 49.102049 0 0 1 72.928781 0.099902l147.356097 162.041756c6.993171 7.742439 11.48878 19.431024 12.537757 30.120586l0.249756 12.937366c0 19.480976-20.48 39.661268-39.211708 39.661268h-104.897561v262.993171a52.44878 52.44878 0 1 1-104.897561 0v-262.993171h-104.897561c-13.886439 0-39.211707-21.72878-39.211707-39.661268v-12.987317c0-12.487805 4.795317-21.27922 12.637659-29.920781l147.356097-162.291512z" p-id="2080"></path></svg>'; | |
var star_svg_1 = '<svg t="1595083631685" class="icon" viewBox="0 0 1051 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2173" width="140" height="140"><path d="M525.837838 852.410811L199.264865 1001.859459l41.513513-357.016216L0 381.924324l351.481081-69.189189L525.837838 0l174.356757 312.735135L1051.675676 381.924324l-240.778379 262.918919 41.513514 357.016216z" fill="#FFD566" p-id="2174"></path></svg>'; | |
var star_svg_2 = ' <svg t="1595083715312" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="7848" width="140" height="140"><path d="M1014.001347 866.090236L810.23569 662.324579l145.497643-84.126599c11.377778-6.550842 17.92862-18.962963 16.894276-32.064647-1.034343-13.101684-9.309091-24.479461-21.376431-29.306397l-648.188552-258.585859c-12.756902-5.171717-27.23771-2.068687-36.891582 7.585186-9.653872 9.653872-12.756902 24.13468-7.585185 36.891582l258.585858 648.533333c4.826936 12.06734 16.204714 20.686869 29.306397 21.376431 13.101684 1.034343 25.513805-5.516498 32.064647-16.894276l84.126599-145.497643 203.765657 203.765657c6.550842 6.550842 15.17037 9.998653 24.13468 9.998653 8.96431 0 17.92862-3.447811 24.13468-9.998653l99.29697-99.29697c13.446465-13.446465 13.446465-35.167677 0-48.614141zM150.324579 102.055219c-13.446465-13.446465-35.167677-13.446465-48.26936 0-13.446465 13.446465-13.446465 35.167677 0 48.26936l76.196633 76.196633c6.550842 6.550842 15.515152 9.998653 24.13468 9.998653s17.583838-3.447811 24.13468-9.998653c13.446465-13.446465 13.446465-35.167677 0-48.26936L150.324579 102.055219zM176.183165 338.575084c0-18.962963-15.17037-34.133333-34.133333-34.133333H34.133333c-18.962963 0-34.133333 15.17037-34.133333 34.133333s15.17037 34.133333 34.133333 34.133334h107.571718c18.962963 0 34.478114-15.17037 34.478114-34.133334zM162.391919 444.422896l-76.196633 75.851851c-13.446465 13.446465-13.446465 35.167677 0 48.269361 6.550842 6.550842 15.515152 9.998653 24.13468 9.998653s17.583838-3.447811 24.13468-9.998653l76.196633-76.196633c13.446465-13.446465 13.446465-35.167677 0-48.269361-13.446465-13.101684-35.167677-13.101684-48.26936 0.344782zM338.575084 176.183165c18.962963 0 34.133333-15.17037 34.133334-34.133333V34.133333c0-18.962963-15.17037-34.133333-34.133334-34.133333s-34.133333 15.17037-34.133333 34.133333v107.571718c0 18.962963 15.17037 34.478114 34.133333 34.478114zM468.557576 220.659933c8.619529 0 17.583838-3.447811 24.13468-9.998654L568.888889 134.464646c13.446465-13.446465 13.446465-35.167677 0-48.26936-13.446465-13.446465-35.167677-13.446465-48.26936 0l-76.196633 76.196633c-13.446465 13.446465-13.446465 35.167677 0 48.26936 6.550842 6.550842 15.515152 9.998653 24.13468 9.998654z" fill="#2c2c2c" p-id="7849"></path></svg>'; | |
var star_svg_3 = ' <svg t="1595083925438" class="icon" viewBox="0 0 1204 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4809" width="140" height="140"><path d="M1088.864348 618.13701a1555.009384 1555.009384 0 0 1-150.273004 167.137308c-52.881642 51.195212-107.931552 101.18583-163.643989 147.261521-33.849069 27.524955-60.229661 48.665566-76.190521 60.229661a162.981462 162.981462 0 0 1-191.891699 0c-15.539253-12.045932-42.160763-32.644476-76.190521-60.831957a2638.480754 2638.480754 0 0 1-164.366745-147.261521 1579.101249 1579.101249 0 0 1-150.273004-165.812257A468.104924 468.104924 0 0 1 0.152998 344.754579 315.543193 315.543193 0 0 1 109.048225 96.367457a399.443111 399.443111 0 0 1 493.883219-20.478084 398.660125 398.660125 0 0 1 493.883219 20.478084A315.482964 315.482964 0 0 1 1204.746215 343.309067a466.840101 466.840101 0 0 1-115.701178 274.647254z" fill="#FE4B83" p-id="4810"></path></svg>'; | |
var star_svg_4 = ' <svg t="1595084089115" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="8008" width="140" height="140"><path d="M512 46.545455C256 46.545455 46.545455 256 46.545455 512s209.454545 465.454545 465.454545 465.454545 465.454545-209.454545 465.454545-465.454545S768 46.545455 512 46.545455z m0 837.818181c-204.8 0-372.363636-167.563636-372.363636-372.363636s167.563636-372.363636 372.363636-372.363636 372.363636 167.563636 372.363636 372.363636-167.563636 372.363636-372.363636 372.363636z" fill="#00C5C5" p-id="8009"></path><path d="M656.290909 586.472727c-79.127273 69.818182-209.454545 69.818182-288.581818 0-18.618182-13.963636-41.890909-13.963636-60.509091 4.654546-13.963636 13.963636-13.963636 41.890909 4.654545 60.509091 55.854545 51.2 125.672727 74.472727 200.145455 74.472727s144.290909-27.927273 200.145455-74.472727c18.618182-13.963636 18.618182-41.890909 4.654545-60.509091s-41.890909-18.618182-60.509091-4.654546zM358.4 460.8c27.927273 0 51.2-23.272727 51.2-51.2s-23.272727-55.854545-51.2-55.854545c-27.927273 0-51.2 23.272727-51.2 51.2s23.272727 55.854545 51.2 55.854545zM665.6 460.8c27.927273 0 51.2-23.272727 51.2-51.2s-23.272727-51.2-51.2-51.2-51.2 23.272727-51.2 51.2 23.272727 51.2 51.2 51.2z" fill="#00C5C5" p-id="8010"></path></svg>'; | |
var star_svg = star_svg_1 + star_svg_2 + star_svg_3 + star_svg_4; | |
var donate_svg = '<svg t="1592982508258" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4207" width="32" height="32"><path d="M664.48 234.432a32 32 0 0 0-45.248-0.8l-76.256 73.6-73.344-73.216a32 32 0 1 0-45.248 45.312l72.384 72.256h-49.28a32 32 0 0 0 0 64h63.776v32h-63.776a32 32 0 0 0 0 64h63.776v65.664a32 32 0 1 0 64 0v-65.664h64.288a32 32 0 1 0 0-64h-64.288v-32h64.288a32 32 0 1 0 0-64h-50.368l74.464-71.872a32.032 32.032 0 0 0 0.832-45.28z m275.2 503.552a9017.568 9017.568 0 0 0-141.664-56.736 368.512 368.512 0 0 0 97.568-248.608c0-202.912-165.12-368-368.064-368s-368 165.088-368 368c0 16.224 1.024 32.352 3.072 47.968 2.304 17.504 18.496 29.664 35.904 27.584a32 32 0 0 0 27.584-35.904 304.512 304.512 0 0 1-2.56-39.648c0-167.616 136.384-304 304-304 167.648 0 304.064 136.384 304.064 304a300.544 300.544 0 0 1-96.128 221.472c-0.768 0.736-1.088 1.76-1.824 2.528-42.848-15.936-79.328-28.48-93.76-30.656-24.896-3.904-48.672 7.616-63.104 28.896-12.032 17.792-15.072 38.816-8.096 56.256 4.288 10.656 20.512 32.896 39.776 57.28-46.432-0.064-117.312-6.336-192.832-35.488-31.264-12.064-69.44-52.64-103.136-88.416-47.968-50.976-93.28-99.104-142.56-99.104-18.336 0-35.744 6.848-50.336 19.776-18.24 16.224-35.136 48.32-12 109.248 42.624 112.16 208.544 285.12 341.728 285.12h478.144a32 32 0 0 0 32-32v-160a31.84 31.84 0 0 0-19.776-29.568z m-44.16 157.6h-445.12l-1.024 32v-32c-97.6 0-247.072-152.128-281.92-243.872-10.112-26.656-6.72-37.408-5.344-38.624 4.128-3.648 6.528-3.648 7.84-3.648 21.632 0 64.608 45.632 95.968 78.944 40.224 42.752 81.856 86.944 126.656 104.256 85.216 32.896 164.896 39.808 216.736 39.808 41.376 0 67.584-4.352 68.672-4.544a32 32 0 0 0 19.136-52.16c-27.008-32.096-58.592-71.808-67.296-85.344 0.288-0.576 0.512-1.024 0.352-1.152 22.848 3.488 162.432 57.952 265.28 99.84v106.496z" p-id="4208"></path></svg>'; | |
var set_svg = '<svg t="1592982970375" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="10112" width="48" height="48"><path d="M256 102.4h512l256 256-512 563.2L0 358.4z" fill="#26CD63" p-id="10113"></path><path d="M256 102.4l256 256H0zM768 102.4l256 256H512zM512 921.6l204.8-563.2H307.2z" fill="#14A345" p-id="10114"></path></svg>'; | |
var save_svg = '<svg t="1629448588351" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="7849" width="200" height="200"><path d="M512 0C229.2 0 0 229.2 0 512s229.2 512 512 512 512-229.2 512-512S794.8 0 512 0z m0 945.2C273.1 945.2 78.8 750.9 78.8 512S273.1 78.8 512 78.8 945.2 273.1 945.2 512 750.9 945.2 512 945.2z" p-id="7850" fill="#ffffff"></path><path d="M680.9 359.4L461 582.3 341.6 473.6c-16-14.6-41-13.4-55.6 2.6-14.7 16.1-13.5 41 2.6 55.6L436 666.1c7.5 6.8 17 10.2 26.5 10.2 10.2 0 20.3-3.9 28-11.7L737 414.7c15.3-15.5 15.1-40.4-0.4-55.7-15.5-15.2-40.5-15.1-55.7 0.4z" p-id="7851" fill="#ffffff"></path></svg>'; | |
var settings_svg = '<svg t="1629433360462" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2870" width="200" height="200"><path d="M1006.438 17.548c-0.032 0-430.43-112.966-780.45 237.022-288.99 289.008-33.522 576.966-33.522 576.966s287.958 255.484 576.952-33.55C1119.436 448.012 1006.468 17.612 1006.438 17.548z" fill="#9ED36A" p-id="2871"></path><path d="M1006.438 17.548l-42.674-8.216c0.032 0.062 112.998 438.678-236.99 788.652-96.344 96.406-192.598 132.208-278.104 137.144 95.41 5.5 208-24.368 320.748-137.144C1119.436 448.012 1006.468 17.612 1006.438 17.548z" fill="#FFFFFF" opacity=".2" p-id="2872"></path><path d="M600.406 423.612c-8.308-8.34-21.836-8.34-30.148 0L6.4 987.426c-8.326 8.372-8.326 21.868 0 30.18 8.326 8.308 21.822 8.308 30.162 0L600.406 453.76c8.34-8.342 8.34-21.838 0-30.148z" fill="#8AC054" p-id="2873"></path></svg>'; | |
var protect_svg = '<svg t="1629560538805" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3212" width="200" height="200"><path d="M800.3 205.1L534.8 116c-16-5.4-33.3-5.3-49.2 0.2l-264.5 92.3c-29.3 10-49 37.5-49.1 68.4l1.7 265.4c0.7 81 31.1 158.9 85.6 218.9 25 27.7 56.9 51.5 97.8 72.7l144 74.6c9 4.7 19.7 4.6 28.7-0.2L672.5 832c40.4-21.6 72.2-45.7 96.9-73.8 53.6-60.6 83-138.9 82.6-219.8l-1.7-265.6c-0.5-30.9-20.5-58.1-50-67.7z" fill="#07C160" p-id="3213"></path><path d="M474.1 652c-7.1 0-13.8-2.8-18.9-7.8l-151-151.1c-10.4-10.4-10.4-27.4 0-37.8s27.4-10.4 37.8 0l132.1 132.2 207.7-207.7c10.4-10.4 27.4-10.4 37.8 0 10.4 10.4 10.4 27.4 0 37.8L493 644.2c-5 5-11.8 7.8-18.9 7.8z" fill="#FFFFFF" p-id="3214"></path></svg>'; | |
// jquery.showtips.js | |
(function(jQuery) { | |
jQuery.fn.showTips = function(options,elem){ | |
var config = { | |
skin:"trips", | |
content:$(this).attr("tips")||"弹出类型的气泡提示!", //气泡提示内容里面可以是HTML,默认显示自定义的提示内容 | |
width:"auto", //默认为auto,可以写具体尺寸如:200 | |
alignTo:["right","center"], //箭头方向 | |
color:["rgb(247, 206, 57)","#FFFEF4"], //这里是提示层的风格,第一个参数为提示边框颜色,第二个参数为提示背景颜色 | |
type:"html", //显示内容类型 | |
trigger:"click", //默认为点击显示,show为初始化就显示,hover为经过显示,focus焦点显示,mouse跟随鼠标显示隐藏 | |
spacing:10, //默认为箭头距离对象的尺寸 | |
customid:"", //自定义ID | |
isclose:false, //是否显示关闭按钮 | |
success : null //成功后的回调函数 | |
}; | |
var opts = jQuery.extend(config, options); | |
return this.each(function(){ | |
var that = jQuery(this),tipBox,tipId,selfH,selfW,conId,docW, spa = opts.spacing, skin=opts.skin; | |
var Mathrandom = Math.floor(Math.random() * 9999999); | |
var pmr = (opts.customid=="") ? Mathrandom :opts.customid.replace(/[#.]/, ""); | |
var pointer=opts.alignTo.length===1 ? ''+opts.alignTo[0]+'' : ''+opts.alignTo[0]+'-'+opts.alignTo[1]+''; | |
if(typeof elem == 'string') { | |
if(elem =="show"){ | |
jQuery('#tip'+pmr).show(); jQuery("#con"+pmr).html(opts.content); | |
showPosition(pointer,jQuery('#tip'+pmr)); | |
}; | |
if(elem =="hide"){jQuery('#tip'+pmr).hide()}; | |
}; | |
if(typeof elem == '' || typeof elem == undefined){return true}; | |
if(jQuery('#tip'+pmr).length==1){return false;} | |
tipBox=jQuery('<div class="'+skin+' '+skin+'-'+pointer+'" id="tip'+pmr+'"><i></i><em></em><div class="'+skin+'con" id="con'+pmr+'"></div></div>').appendTo(document.body); | |
tipId = jQuery("#tip"+pmr); | |
conId = jQuery("#con"+pmr); | |
var edgecolor='border-'+opts.alignTo[0]+'-color', tfi=tipId.find("i"), tfem=tipId.find("em"), tfiem=tipId.find("i,em"); | |
tipId.css({'position':'absolute',border:'1px solid','border-color':opts.color[0],'background-color':opts.color[1]}); | |
if(opts.alignTo[1]=='center'){ var offpos=50,percen="%"; }else{ var offpos=5,percen="px"; }; | |
tfiem.css({width:0,height:0,content:'','position':'absolute'}) | |
tfi.css({border:'8px solid transparent','z-index':5}); | |
tfem.css({border:'7px solid transparent','z-index':10}); | |
switch (pointer) { | |
case 'top-center': | |
case 'bottom-center': | |
case 'top-left': | |
case 'bottom-left': | |
var poi="left"; | |
if(pointer=='top-center' || pointer=='bottom-center'){ | |
tfi.css({"margin-left":"-8px"}); | |
tfem.css({"margin-left":"-7px"}); | |
} | |
break; | |
case 'left-center': | |
case 'right-center': | |
case 'left-top': | |
case 'right-top': | |
var poi="top"; | |
if(pointer=='left-center' || pointer=='right-center'){ | |
tfi.css({"margin-top":"-8px"}); | |
tfem.css({"margin-top":"-7px"}); | |
} | |
break; | |
default: | |
var poi="right"; | |
break; | |
}; | |
if(pointer=='follow'){ | |
tfi.css({'border-bottom-color':opts.color[0],left:''+offpos+percen+'',bottom:'100%'}); | |
tfem.css({'border-bottom-color':opts.color[1],left:''+(offpos+(opts.alignTo[1]=='center'?0:1))+percen+'',bottom:'100%'}); | |
}else{ | |
tfi.css(edgecolor,opts.color[0]).css(poi,''+offpos+percen+''); | |
tfem.css(edgecolor,opts.color[1]).css(poi,''+(offpos+(opts.alignTo[1]=='center'?0:1))+percen+''); | |
tfiem.css(opts.alignTo[0],'100%'); | |
}; | |
switch (opts.type) { | |
case 'html':conId.html(opts.content); break; | |
case 'id' : | |
var tempid=jQuery(opts.content) ,wrap = document.createElement("div"); | |
if(tempid.css("display") == "none"){ tempid.css({display:"block"}); } | |
conId.append(tempid); | |
break; | |
}; | |
if(opts.isclose){ | |
jQuery('<span class="'+skin+'close" id="close'+pmr+'">×</span>').appendTo(tipId); | |
tipId.find("#close"+pmr+"").on("click",function(){tipId.hide();}); | |
} | |
if(typeof opts.width === 'string'){ | |
docW = parseInt(document.body.clientWidth*(opts.width.replace('%','')/100)); | |
(typeof opts.width == 'auto' || typeof opts.width == '') ? tipBox.css({width:'auto'}) : tipBox.css({width:docW}); | |
tipBox.height(); | |
}else{ | |
tipBox.width(opts.width).height(); | |
} | |
function showPosition(pointer,cell){ | |
var selfH = that.outerHeight(true), selfW = that.outerWidth(true); | |
var post=that.offset().top, posl=that.offset().left; | |
var tipCell=(cell=="" || cell==undefined) ? tipId : cell; | |
var tipH=tipCell.outerHeight(true), tipW=tipCell.outerWidth(true); | |
switch (pointer) { | |
case 'top-left': tipCell.css({top:post-tipH-spa,left:posl}); break; | |
case 'top-center': tipCell.css({top:post-tipH-spa,left:posl-(tipW/2)+(selfW/2)}); break; | |
case 'top-right': tipCell.css({top:post-tipH-spa,left:posl-(tipW-selfW)}); break; | |
case 'bottom-left': tipCell.css({top:post+selfH+spa,left:posl}); break; | |
case 'bottom-center': tipCell.css({top:post+selfH+spa,left:posl-(tipW/2)+(selfW/2)}); break; | |
case 'bottom-right': tipCell.css({top:post+selfH+spa,left:posl-(tipW-selfW)}); break; | |
case 'left-top': tipCell.css({top:post,left:posl-tipW-spa}); break; | |
case 'left-center': tipCell.css({top:post-(tipH/2)+(selfH/2),left:posl-tipW-spa}); break; | |
case 'right-top': tipCell.css({top:post,left:posl+selfW+spa}); break; | |
case 'right-center': tipCell.css({top:post-(tipH/2)+(selfH/2),left:posl+selfW+spa}); break; | |
case 'follow': that.mousemove(function(e) { tipCell.css({top:e.pageY + 30,left:e.pageX - 6}); }); break; | |
}; | |
} | |
tipBox.hide(); | |
switch (opts.trigger){ | |
case 'show':showPosition(pointer);tipBox.show();break; | |
case 'click':that.click(function(){showPosition(pointer);tipBox.show();});break; | |
case 'hover':that.hover(function(){showPosition(pointer);tipBox.show(); tipBox.on("mouseover",function(){jQuery(this).show()}).on("mouseout",function(){jQuery(this).hide()})},function(){tipBox.hide();});break; | |
case 'focus':that.focus(function(){showPosition(pointer);tipBox.show();}); that.blur(function(){tipBox.hide();});break; | |
case 'mouse':that.hover(function(){showPosition(pointer);tipBox.show();},function(){tipBox.hide();});break; | |
}; | |
setTimeout(function(){opts.success && opts.success();}, 1); | |
}); | |
} | |
})(jQuery); | |
(function () { | |
'use strict'; | |
l("CSDNGreener V" + version); | |
if (isFirefox()) { | |
console.log("您正在使用火狐浏览器,将使用兼容模式运行 CSDNGreener。"); | |
} | |
progressor.init(); | |
// 绿化设定按钮点击事件 | |
let jss = ""; | |
jss += "<script>function showConfig() {"; | |
jss += "$(window).scrollTop(0);"; | |
jss += "$('.white_content').fadeIn(500);"; | |
jss += "$('body').css('overflow', 'hidden');"; | |
jss += "$('body').css('filter','blur(3px)');"; | |
jss += "$('body').css('pointer-events','none')"; | |
jss += "}</script>"; | |
$("body").append(jss); | |
// 保存按钮点击事件 | |
let saveJss = ""; | |
saveJss += "<script>function saveAndReload() {"; | |
saveJss += "$('#configContent').fadeOut(200);"; | |
saveJss += "setTimeout(function() {location.reload();},200)"; | |
saveJss += "}</script>"; | |
$("body").append(saveJss); | |
setTimeout(function() { | |
var blockURL = currentURL.split("/").length; | |
var main = /(www\.csdn\.net\/)$/; | |
var mainNav = /nav/; | |
var article = /article/; | |
var bbs = /bbs\.csdn\.net/; | |
var blog = /blog\.csdn\.net/; | |
var blog2 = /\/article\/list\//; | |
var download = /download\.csdn\.net/; | |
var login = /passport\.csdn\.net/; | |
var zone = /me\.csdn\.net/; | |
var other = /(www\.csdn\.net\/)/; | |
var mp = /mp\.csdn\.net/; | |
var article_month = /article\/month/; | |
var link = /link\.csdn\.net/; | |
// 数组初始化 | |
list = []; | |
// 头部分 | |
// APP | |
// put(".app-app"); | |
// VIP | |
put(".vip-caise"); | |
// 记录你的成长历程(记个毛) | |
put("#writeGuide"); | |
// 新通知小圆点(未登录才消掉) | |
if ($(".userinfo a").text() === '登录/注册') { | |
put("#msg-circle"); | |
} | |
// 顶部谷歌广告 | |
put(".adsbygoogle"); | |
// 悬浮在顶栏按钮上出现的二维码 | |
put(".appControl"); | |
// 顶部广告 | |
put(".advert-bg"); | |
if (main.test(currentURL) || mainNav.test(currentURL)) { | |
l("正在优化主页体验..."); | |
// 常规 | |
// 头部广告 | |
put(".banner-ad-box"); | |
// 嵌入广告 | |
put("#kp_box_211"); | |
// 右侧广告 | |
put(".slide-outer"); | |
// 右侧详情 | |
put(".persion_article"); | |
// 右侧推荐 | |
$(".feed_company").parent().remove(); | |
// 广告轮播 | |
put(".el-carousel__container"); | |
// 顶部横幅 | |
put(".toolbar-advert"); | |
// 顶栏VIP选项 | |
$('.toolbar-subMenu-box').find("[href='https://mall.csdn.net/vip']").parent().remove(); | |
// CSDN工具广告 | |
put("#floor-ad_64"); | |
clean(10); | |
// common(5, 10); | |
// 博客及主页优化 | |
common(9, 10); | |
loop(3); | |
loop(1); | |
} else if ((blog.test(currentURL) && blockURL === 4) || blog2.test(currentURL)) { | |
l("正在优化个人博客主页体验..."); | |
// 常规 | |
// 头部广告 | |
put(".banner-ad-box"); | |
// 右侧广告 | |
put(".slide-outer"); | |
// 右侧详情 | |
put(".persion_article"); | |
// 左侧广告 | |
put(".mb8"); | |
put("#kp_box_503"); | |
put("#kp_box_214"); | |
clean(10); | |
// common(5, 10); | |
loop(3); | |
loop(1); | |
} else if (article.test(currentURL) && !mp.test(currentURL) && !article_month.test(currentURL)) { | |
l("正在优化阅读体验..."); | |
// 绿化设定 | |
if (isFirefox()) { | |
setTimeout(function() { | |
$(".toolbar-container-middle").prepend("<div id='greenerProgress' style='text-align:right'></div>"); | |
let htmlOf0 = '<div class="toolbar-btn csdn-toolbar-fl"><a id="greenerSettings" title="点击打开 CSDNGreener 绿化设定" href="javascript:void(0)" onclick="showConfig();">' + settings_svg + '</a></div>'; | |
$(".toolbar-btns").prepend(htmlOf0); | |
if (isFirefox()) { | |
// 提示 | |
let tipsCookie = config.get("showTip", true); | |
if (tipsCookie) { | |
showTips(); | |
} | |
config.set("showTip", false); | |
} | |
}, 3000); | |
} else { | |
$(".toolbar-container-middle").prepend("<div id='greenerProgress' style='text-align:right'></div>"); | |
let htmlOf0 = '<div class="toolbar-btn csdn-toolbar-fl"><a id="greenerSettings" title="点击打开 CSDNGreener 绿化设定" href="javascript:void(0)" onclick="showConfig();">' + settings_svg + '</a></div>'; | |
$(".toolbar-btns").prepend(htmlOf0); | |
} | |
// 常规 | |
// 右侧广告,放到第一个清除 | |
// put(".recommend-right"); | |
put("#addAdBox"); | |
// put(".aside-box.kind_person.d-flex.flex-column"); | |
put(".recommend-top-adbox"); | |
// put(".recommend-list-box.d-flex.flex-column.aside-box"); | |
// 左侧广告 | |
// put("#container"); | |
// 快来写博客吧 | |
put(".blog_tip_box"); | |
// 推荐关注用户 | |
put(".blog-expert-recommend-box"); | |
// 右下角VIP | |
put(".meau-gotop-box"); | |
// 广告 | |
put(".mediav_ad"); | |
put(".pulllog-box"); | |
put(".recommend-ad-box"); | |
put(".box-shadow"); | |
put(".type_hot_word"); | |
put(".fourth_column"); | |
// 高分辨率时右侧文章推荐 | |
// put(".right-item"); | |
// 广告 | |
put("#asideFooter"); | |
put("#ad-div"); | |
put("#479"); | |
put("#480"); | |
// 打赏 | |
put(".postTime"); | |
// 课程推荐 | |
put(".t0"); | |
// 分享海报 | |
put(".shareSuggest"); | |
// 底部主题 | |
put(".template-box"); | |
// 评论区广告 | |
put("div#dmp_ad_58"); | |
// 打赏 | |
put(".reward-user-box"); | |
// 右侧打赏按钮 | |
put(".to-reward"); | |
// 推荐内容广告 | |
put(".recommend-recommend-box"); | |
// 右侧广告 | |
put(".indexSuperise"); | |
// 抢沙发角标 | |
put(".comment-sofa-flag"); | |
// 页jio | |
put(".bottom-pub-footer"); | |
// 登录查看未读消息 | |
put(".toolbar-notice-bubble"); | |
// 右侧广告 | |
put(".recommend-top-adbox"); | |
// 右侧四个广告 | |
put(".programmer1Box"); | |
put(".programmer2Box"); | |
put(".programmer3Box"); | |
put(".programmer4Box"); | |
// 点赞气泡 | |
put(".triplet-prompt"); | |
// 顶部横幅 | |
put(".toolbar-advert"); | |
// 底部信息 | |
put(".blog-footer-bottom"); | |
// 右侧栏广告 | |
put("#6527"); | |
put("#recommendAdBox"); | |
// 推荐内容Title | |
put(".recommend-tit-mod"); | |
// 红包提醒 | |
put(".csdn-redpack-lottery-btn-box"); | |
// 学生认证 | |
put(".csdn-highschool-window"); | |
// 右侧悬浮栏除置顶以外的按钮 | |
put(".option-box[data-type='guide'],.option-box[data-type='cs'],.csdn-common-logo-advert"); | |
clean(10); | |
setTimeout(function() { | |
// 展开评论的所有回复 | |
$('.btn-read-reply').click(); | |
}, 1500); | |
// 主动加入右侧栏 | |
if ($(".recommend-right").length === 0) { | |
$("#mainBox").after('<div class="recommend-right align-items-stretch clearfix" id="rightAside"><aside class="recommend-right_aside"><div id="recommend-right" style="height: 100%; position: fixed; top: 52px; overflow: scroll;"></div></aside></div>'); | |
} | |
// 上栏按钮删除 | |
$(".toolbar-menus > li > a:contains('专栏课程')").parent().remove(); | |
$(".toolbar-menus > li > a:contains('插件')").parent().remove(); | |
$(".toolbar-menus > li > a:contains('认证')").parent().remove(); | |
// 修复无法选择复制 | |
$("code").css("user-select","auto"); | |
$("#content_views").css("user-select","auto"); | |
$("pre").css("user-select","auto");7 | |
// 图片混文字时,无法完整复制,图片不会被复制下来 https://github.com/adlered/CSDNGreener/issues/87 | |
//let el = $("main .blog-content-box")[0]; | |
//let elClone = el.cloneNode(true); | |
//el.parentNode.replaceChild(elClone, el); | |
// 保存csdn的网页再次打开会自动跳转到首页 https://github.com/adlered/CSDNGreener/issues/97 | |
$("[onerror]").remove(); | |
// CSDN重定向外链不能在新的窗口跳转 https://github.com/adlered/CSDNGreener/issues/80 | |
$("#article_content a[href]").attr("target", "_blank"); | |
// 搜索框优化 | |
//$("#toolbar-search-input").css("width", "calc(100% - 400px)"); | |
// 取消代码折叠 | |
$(".look-more-preCode").click(); | |
// 询问推荐是否有意义的问卷调查 | |
$("#recommendNps").remove(); | |
// 绿化设置 | |
common(6, 1); | |
// 屏幕适配 | |
common(4, 1); | |
// 评论 | |
common(1, 30); | |
// 其它 | |
common(2, 20); | |
// 顶部显示作者信息 | |
common(8, 1); | |
// 博客及主页优化 | |
common(9, 10); | |
// 循环线程开始 | |
loop(2); | |
loop(3); | |
} else if (bbs.test(currentURL)) { | |
l("正在优化论坛体验..."); | |
// 常规 | |
// 评论嵌入小广告 | |
put(".post_recommend"); | |
// 底部推荐 | |
put("#post_feed_wrap"); | |
// 底部相关文章里面的广告 | |
put(".bbs_feed_ad_box"); | |
put(".recommend-ad-box"); | |
// 底部相关文字里面的热词提示 | |
put(".type_hot_word"); | |
// 底部蓝色flex属性的广告栏+登录注册框 | |
put(".pulllog-box"); | |
// 猜你喜欢 | |
put(".personalized-recommend-box"); | |
// 发帖减半提示 | |
put(".totast-box"); | |
// 顶部广告 | |
put(".recommend-right"); | |
// 顶部广告 | |
put(".ad_top"); | |
// 右侧广告 | |
put(".ad_1"); | |
clean(10); | |
// 展开 | |
common(3, 50); | |
// common(5, 10); | |
loop(3); | |
} else if (download.test(currentURL)) { | |
l("正在优化下载页体验..."); | |
// 常规 | |
put(".fixed_dl"); | |
put("indexSuperise"); | |
// 右侧推荐 | |
put(".content_recom"); | |
clean(10); | |
// common(5, 10); | |
loop(3); | |
} else if (login.test(currentURL)) { | |
l("正在优化登录页体验..."); | |
// 常规 | |
// 登录界面大图广告 | |
put(".main-tu"); | |
clean(10); | |
// common(5, 10); | |
loop(3); | |
} else if (zone.test(currentURL)) { | |
l("正在优化个人空间体验..."); | |
// 常规 | |
clean(10); | |
common(7, 10); | |
// common(5, 10); | |
loop(3); | |
} else if (link.test(currentURL)) { | |
// 跳过 CSDN 的 link 页面 | |
var url = new URL(window.location.href) | |
var target = url.searchParams.get('target') | |
window.location.href = target | |
} else { | |
l("哦豁,好偏门的页面,我来试着优化一下哦..."); | |
// 常规 | |
// 展开全文 | |
$('.readmore_btn').click(); | |
// *** index *** | |
// 头部广告 | |
put(".banner-ad-box"); | |
// 嵌入广告 | |
put("#kp_box_211"); | |
// 右侧广告 | |
put(".slide-outer"); | |
// 右侧详情 | |
put(".persion_article"); | |
// 右侧推荐 | |
$(".feed_company").parent().remove(); | |
// *** article *** | |
// 常规 | |
// 右侧广告,放到第一个清除 | |
put("#addAdBox"); | |
put(".recommend-top-adbox"); | |
// 快来写博客吧 | |
put(".blog_tip_box"); | |
// 推荐关注用户 | |
put(".blog-expert-recommend-box"); | |
// 右下角VIP | |
put(".meau-gotop-box"); | |
// 广告 | |
put(".mediav_ad"); | |
put(".pulllog-box"); | |
put(".recommend-ad-box"); | |
//put(".box-shadow"); 某些页面异常,例如cloud.csdn.net | |
put(".type_hot_word"); | |
put(".fourth_column"); | |
// cloud.csdn.net 头部广告 | |
put("#kp_box_118"); | |
// 广告 | |
put("#asideFooter"); | |
put("#ad-div"); | |
put("#479"); | |
put("#480"); | |
// 打赏 | |
put(".postTime"); | |
// 课程推荐 | |
put(".t0"); | |
// 分享海报 | |
put(".shareSuggest"); | |
// 底部主题 | |
put(".template-box"); | |
// 评论区广告 | |
put("div#dmp_ad_58"); | |
// 打赏 | |
put(".reward-user-box"); | |
// 右侧打赏按钮 | |
put(".to-reward"); | |
// 推荐内容广告 | |
put(".recommend-recommend-box"); | |
// 右侧广告 | |
put(".indexSuperise"); | |
// 抢沙发角标 | |
put(".comment-sofa-flag"); | |
// 页jio | |
put(".bottom-pub-footer"); | |
// 登录查看未读消息 | |
put(".toolbar-notice-bubble"); | |
// 右侧广告 | |
put(".recommend-top-adbox"); | |
// 学院弹出广告 | |
$(".fouce_close_btn").click(); | |
// 其它 | |
// 头部广告 | |
put(".banner-ad-box"); | |
// 右侧广告 | |
put(".slide-outer"); | |
// 右侧详情 | |
put(".persion_article"); | |
// 左侧广告 | |
put("#kp_box_503"); | |
put("#kp_box_214"); | |
// *** bbs *** | |
// 评论嵌入小广告 | |
put(".post_recommend"); | |
// 底部推荐 | |
put("#post_feed_wrap"); | |
// 底部相关文章里面的广告 | |
put(".bbs_feed_ad_box"); | |
put(".recommend-ad-box"); | |
// 底部相关文字里面的热词提示 | |
put(".type_hot_word"); | |
// 底部蓝色flex属性的广告栏+登录注册框 | |
put(".pulllog-box"); | |
// 猜你喜欢 | |
put(".personalized-recommend-box"); | |
// 发帖减半提示 | |
put(".totast-box"); | |
// 顶部广告 | |
put(".recommend-right"); | |
// 顶部广告 | |
put(".ad_top"); | |
// *** download *** | |
put(".fixed_dl"); | |
put("indexSuperise"); | |
// 右侧推荐 | |
put(".content_recom"); | |
clean(10); | |
} | |
setTimeout(function() { | |
progressor.done(); | |
}, 0); | |
stopTimeMilli = Date.now(); | |
l("优化完毕! 耗时 " + (stopTimeMilli - startTimeMilli) + "ms"); | |
}, 0); | |
})(); | |
function l(log) { | |
console.log("[CSDNGreener] " + log); | |
} | |
function e(error) { | |
console.error("[CSDNGreener] " + error); | |
} | |
function clear() { | |
list = []; | |
} | |
function put(tag) { | |
list.push(tag); | |
} | |
function clean(times) { | |
var loop = setInterval(function () { | |
--times; | |
if (times <= 0) { | |
clearInterval(loop); | |
} | |
for (var k = 0; k < list.length; k++) { | |
$(list[k]).remove(); | |
} | |
}, 100); | |
progressor.incProgress(10); | |
} | |
var deletedLogin = false; | |
function loop(num) { | |
setInterval(function () { | |
if (num === 1) { | |
// 主页中间的广告 | |
$(".J_adv").remove(); | |
// 主页有新的内容横条 | |
$(".feed-fix-box").remove(); | |
// 主页广告 iframe | |
if (currentURL == "https://www.csdn.net/") { | |
$("iframe").remove(); | |
} | |
// 删除 CSDN 官方在主页的文章(大多是广告) | |
$("li.clearfix").each(function(index, ele) { | |
var banned = /csdn<\/a>/; | |
var aMark = $(ele).find(".name").html(); | |
if (banned.test(aMark)) { | |
$(ele).remove(); | |
} | |
}); | |
// 主页广告 | |
$("li").each(function(){ | |
let self = $(this); | |
let dataType = self.attr('data-type'); | |
if (dataType === 'ad') { | |
self.remove(); | |
} | |
}); | |
// 主页广告 | |
$("li > div > div > h2 > a[href*='https://edu.csdn.net']").parent().parent().parent().parent().remove(); | |
$("li > div > div > h2 > a[href*='https://marketing.csdn.net']").parent().parent().parent().parent().remove(); | |
// 官方脚本横幅 | |
$(".toolbar-advert").remove(); | |
} else if (num === 2) { | |
// 评论查看更多展开监听 | |
$("div.comment-list-box").css("max-height", "none"); | |
// 屏蔽您的缩放不是100%的提示 | |
$('.leftPop').remove(); | |
// 官方脚本横幅 | |
$(".toolbar-advert").remove(); | |
} else if (num == 3) { | |
// 循环删除登录提示框 | |
if ($($(".passport-login-container")[0]).length == 1 && deletedLogin == false) { | |
let passInterval = setInterval(function() { | |
$('.passport-login-container').hide(); | |
console.log("hide"); | |
}, 10); | |
setTimeout(function() { | |
clearInterval(passInterval); | |
setTimeout(function() { | |
$("#passportbox").find("span").click(); | |
}, 500) | |
}, 5000); | |
deletedLogin = true; | |
} | |
// 红包雨 | |
$("#csdn-redpack").remove(); | |
} | |
}, 500); | |
} | |
function common(num, times) { | |
var loop = setInterval(function () { | |
--times; | |
if (times <= 0) { | |
clearInterval(loop); | |
} | |
if (num === 1) { | |
// 查看更多 | |
$(".btn-readmore").removeClass("no-login"); | |
$(".btn-readmore").addClass("fans-read-more"); | |
$(".btn-readmore").removeAttr("href"); | |
$(".btn-readmore").removeAttr("target"); | |
$(".btn-readmore").removeAttr("rel"); | |
$(".btn-readmore").click(); | |
// 已登录用户展开评论 | |
try { | |
document.getElementById("btnMoreComment").click(); | |
} catch (e) {} | |
// 删除查看更多按钮 | |
$("#btnMoreComment").parent("div.opt-box").remove(); | |
// 展开内容 | |
$("div.comment-list-box").css("max-height", "none"); | |
// 改回背景颜色 | |
$(".login-mark").remove(); | |
// 删除登录框 | |
$(".login-box").remove(); | |
} else if (num === 2) { | |
// 挡住评论的“出头推荐” | |
if ($(".recommend-box").length > 1) { | |
$(".recommend-box")[0].remove(); | |
} | |
// 去除推广广告 | |
$("li[data-type='ad']").remove(); | |
// 免登录复制 | |
$(".hljs-button").removeClass("signin"); | |
$(".hljs-button").addClass("{2}"); | |
$(".hljs-button").attr("data-title", "免登录复制"); | |
$(".hljs-button").attr("onclick", "hljs.copyCode(event);setTimeout(function(){$('.hljs-button').attr('data-title', '免登录复制');},3500);"); | |
$("#content_views").unbind("copy"); | |
// 去除剪贴板劫持 | |
$("code").attr("onclick", "mdcp.copyCode(event)"); | |
try { | |
// 复制时保留原文格式,参考 https://greasyfork.org/en/scripts/390502-csdnremovecopyright/code | |
Object.defineProperty(window, "articleType", { | |
value: 0, | |
writable: false, | |
configurable: false | |
}); | |
} catch (err) { | |
} | |
csdn.copyright.init("", "", ""); | |
// 页头广告 | |
try { | |
document.getElementsByClassName("column-advert-box")[0].style.display="none"; | |
} catch (e) {} | |
// 自动检测是否有目录,如果没有则删除右边栏,文章居中 | |
if ($(".recommend-right_aside").html() && $(".recommend-right_aside").html().replace(/[\r\n]/g, "").replace(/(\s)/g, "") === "") { | |
$("#rightAside").remove(); | |
} else if ($(".recommend-right_aside").html() && $("#recommend-right").html().replace(/[\r\n]/g, "").replace(/(\s)/g, "") === "") { | |
$("#rightAside").remove(); | |
} | |
// 登录按钮文字太多,修改 | |
$("a").each(function() { | |
if ($(this).attr('href') === 'https://passport.csdn.net/account/login') { | |
$(this).html('登入'); | |
} | |
}); | |
// 顶栏广告 | |
$("li").each(function(){ | |
let self = $(this); | |
let dataType = self.attr('data-sub-menu-type'); | |
if (dataType === 'vip') { | |
self.remove(); | |
} | |
let dataTitle = self.attr('title'); | |
if (dataTitle === '高价值源码课程分享' || dataTitle === '系统学习·问答·比赛' || dataTitle === '简单高效优惠的云服务') { | |
self.remove(); | |
} | |
}); | |
// 顶栏VIP选项 | |
$('.toolbar-subMenu-box').find("[href='https://mall.csdn.net/vip']").parent().remove(); | |
} else if (num == 3) { | |
//论坛自动展开 | |
$(".js_show_topic").click(); | |
} else if (num == 4) { | |
/** 配置控制 **/ | |
let config = new Config(); | |
let smCookie = config.get("scr-sm", true); | |
let mdCookie = config.get("scr-md", false); | |
let lgCookie = config.get("scr-lg", false); | |
let foCookie = config.get("scr-fo", false) | |
$("#scr-sm").prop("checked", smCookie); | |
$("#scr-md").prop("checked", mdCookie); | |
$("#scr-lg").prop("checked", lgCookie); | |
$("#scr-fo").prop("checked", foCookie); | |
if (smCookie) { | |
// Small Screen Mode | |
$(".main_father").removeClass("justify-content-center"); | |
GM_addStyle(` | |
main{ | |
width: auto!important; | |
float: none!important; | |
max-width: 90vw; | |
} | |
main article img{ | |
margin: 0 auto; | |
max-width: 100%; | |
object-fit: cover; | |
} | |
`); | |
$("#mainBox").css("width", "100%"); | |
} else if (mdCookie) { | |
// Middle Screen Mode | |
$(".main_father").removeClass("justify-content-center"); | |
} else if (lgCookie) { | |
// Large Screen Mode | |
$(".container").css("margin", "0 auto") | |
} else if (foCookie) { | |
// Focus mode | |
$(".recommend-right").remove(); | |
$(".container").css("width", "100%"); | |
$(".container > main").css("width", "100%"); | |
} | |
// 屏幕尺寸单选监听 | |
$("#scr-sm").click(function () { | |
new Config().set("scr-sm", true); | |
new Config().set("scr-md", false); | |
new Config().set("scr-lg", false); | |
new Config().set("scr-fo", false); | |
}); | |
$("#scr-md").click(function () { | |
new Config().set("scr-md", true); | |
new Config().set("scr-sm", false); | |
new Config().set("scr-lg", false); | |
new Config().set("scr-fo", false); | |
}); | |
$("#scr-lg").click(function () { | |
new Config().set("scr-lg", true); | |
new Config().set("scr-sm", false); | |
new Config().set("scr-md", false); | |
new Config().set("scr-fo", false); | |
}); | |
$("#scr-fo").click(function () { | |
new Config().set("scr-fo", true); | |
new Config().set("scr-sm", false); | |
new Config().set("scr-md", false); | |
new Config().set("scr-lg", false); | |
}); | |
// 判断是否为登录状态 | |
$("a").each(function() { | |
if ($(this).attr('href') === 'https://passport.csdn.net/account/login') { | |
// 未登录删除无用按钮 | |
$("a:contains('会员中心')").parent().remove(); | |
$("a:contains('收藏')").remove(); | |
$("a:contains('动态')").parent().remove(); | |
$("a:contains('创作')").parent().remove(); | |
$(".toolbar-btn-collect").remove(); | |
$(".btn-write-new").remove(); | |
} | |
}); | |
} else if (num == 5) { | |
// 改回背景颜色 | |
$(".login-mark").remove(); | |
// 删除登录框 | |
$(".login-box").remove(); | |
} else if (num == 6) { | |
let did = false; | |
let configHTML = ''; | |
configHTML += '<div class="configContainer"><p><a class="title" href="https://github.com/adlered/CSDNGreener" target="_blank">CSDNGreener</a> <sup>V' + version + ' ' + settings_svg + '</sup></p>'; | |
configHTML += '<p><a href="//shang.qq.com/wpa/qunwpa?idkey=d7ad6ead3f57722e7f00a4281ae75dbac2132c5a8cf321992d57309037fcaf63" target="_blank">官方 QQ 交流群:1042370453</a></p><br>'; | |
// 设定:推荐内容按钮 | |
configHTML += '<p class="bold">根据屏幕尺寸,适配版式</p><p>建议逐个尝试后选择适合你的版式,屏幕过小或者版式选择不正确右侧栏可能没有空间显示,导致侧栏定制无效(请尝试调节浏览器缩放,快捷键 Ctrl+鼠标滚轮)。</p>'; | |
configHTML += '<label><input name="displayMode" type="radio" value="" id="scr-sm" /> 平铺模式(优化版) </label>'; | |
configHTML += '<label><input name="displayMode" type="radio" value="" id="scr-md" /> 适应模式 </label>'; | |
configHTML += '<label><input name="displayMode" type="radio" value="" id="scr-lg" /> 居中模式 </label>'; | |
configHTML += '<label><input name="displayMode" type="radio" value="" id="scr-fo" /> 沉浸模式(无侧栏)</label>'; | |
configHTML += '<hr style="height:1px;border:none;border-top:1px solid #cccccc;margin: 5px 0px 5px 0px;" />'; | |
configHTML += '<p class="bold">通用设定</p>'; | |
configHTML += '<p>自定义背景图: <input type="text" id="backgroundImgUrl" placeholder="图片所在网址或Base64" style="border-radius: 2px;border: 1px solid #f0f0f0;padding:5px;width:100%;margin-bottom:5px;"> <input style="margin-bottom:5px;" accept="image/*" id="upload_bg" type="file"></p>'; | |
configHTML += '<input type="checkbox" id="toggle-recommend-button"> <label for="toggle-recommend-button" class="modeLabel">显示推荐内容</label>'; | |
configHTML += '<br>'; | |
configHTML += '<input type="checkbox" id="toggle-shop-button"> <label for="toggle-shop-button" class="modeLabel">显示小店</label>'; | |
configHTML += '<br>'; | |
configHTML += '<input type="checkbox" id="toggle-whitetheme-button"> <label for="toggle-whitetheme-button" class="modeLabel">白色主题&Dark Reader兼容模式<br><span style="color: #808080;"># 选项作用:开启后可通过Dark Reader插件灵活控制白色与黑暗模式,<a style="color: green;" href="https://chrome.zzzmh.cn/info?token=eimadpbcbfnmbkopoojfekhnkhdbieeh" target="_blank">插件下载地址点我</a></span></label>'; | |
configHTML += '<br>'; | |
configHTML += '<input type="checkbox" id="toggle-autosize-button"> <label for="toggle-autosize-button" class="modeLabel">宽度自动适应<br><span style="color: #808080;"># 选项作用:开启此选项可以在页面宽度缩小时自动切换至小屏模式</span></label>'; | |
configHTML += '<br>'; | |
configHTML += '<input type="checkbox" id="toggle-autohidetoolbar-button"> <label for="toggle-autohidetoolbar-button" class="modeLabel">向下滚动自动隐藏顶栏</label>'; | |
configHTML += '<br>'; | |
configHTML += '<input type="checkbox" id="toggle-autohidebottombar-button"> <label for="toggle-autohidebottombar-button" class="modeLabel">始终隐藏底栏</label>'; | |
configHTML += '<br>'; | |
configHTML += '<input type="checkbox" id="toggle-writeblog-button"> <label for="toggle-writeblog-button" class="modeLabel">显示创作中心按钮</label>'; | |
configHTML += '<br>'; | |
configHTML += '<hr style="height:1px;border:none;border-top:1px solid #cccccc;margin: 5px 0px 5px 0px;" />'; | |
configHTML += '<p class="bold"><b>右侧栏定制</b></p>'; | |
configHTML += '<input type="checkbox" id="toggle-ad-button"> <label for="toggle-ad-button" class="modeLabel">显示来自脚本的小广告</label>'; | |
configHTML += '<br>'; | |
configHTML += '<input type="checkbox" id="toggle-authorcard-button"> <label for="toggle-authorcard-button" class="modeLabel">显示作者名片</label>'; | |
configHTML += '<br>'; | |
configHTML += '<input type="checkbox" id="toggle-searchblog-button"> <label for="toggle-searchblog-button" class="modeLabel">显示搜博主文章</label>'; | |
configHTML += '<br>'; | |
configHTML += '<input type="checkbox" id="toggle-newarticle-button"> <label for="toggle-newarticle-button" class="modeLabel">显示最新文章</label>'; | |
configHTML += '<br>'; | |
configHTML += '<input type="checkbox" id="toggle-hotarticle-button"> <label for="toggle-hotarticle-button" class="modeLabel">显示热门文章</label>'; | |
configHTML += '<br>'; | |
configHTML += '<input type="checkbox" id="toggle-newcomments-button"> <label for="toggle-newcomments-button" class="modeLabel">显示最新评论</label>'; | |
configHTML += '<br>'; | |
configHTML += '<input type="checkbox" id="toggle-kindperson-button"> <label for="toggle-kindperson-button" class="modeLabel">显示分类专栏</label>'; | |
configHTML += '<br>'; | |
configHTML += '<input type="checkbox" id="toggle-recommendarticle-button"> <label for="toggle-recommendarticle-button" class="modeLabel">显示推荐文章</label>'; | |
configHTML += '<br>'; | |
configHTML += '<input type="checkbox" id="toggle-archive-button"> <label for="toggle-archive-button" class="modeLabel">显示归档</label>'; | |
configHTML += '<br>'; | |
configHTML += '<input type="checkbox" id="toggle-content-button"> <label for="toggle-content-button" class="modeLabel">显示目录</label>'; | |
configHTML += '<br><br>'; | |
configHTML += '<div><h6>要不要来看看 :)</h6><p>(作者本人建设的社区~</p><p>社区中聚集了同行业的大佬小白,欢迎小伙伴们一起摸鱼!</p><a href="https://fishpi.cn" target="_blank"><img src="https://s2.loli.net/2022/01/05/1HpBZUraMcR8ist.png" style="width:100%;height:100%;"/></a></div>'; | |
configHTML += '<a href="https://github.com/adlered/CSDNGreener" target="_blank" class="giveMeOneStar">' + star_svg + ' <b>点我~</b> 动动小手在 GitHub 点个 Star 和关注,支持我继续维护脚本 :)</a><br><br>'; | |
configHTML += '<p>特别提示:CSDNGreener 脚本不提供任何会员文章破解、会员资源下载功能,仅适用于前端优化,请在CSDN官方渠道购买CSDN会员体验付费功能。</p>'; | |
configHTML += '<hr style="height:1px;border:none;border-top:1px solid #cccccc;margin: 5px 0px 5px 0px;" />'; | |
configHTML += '<br>'; | |
// configHTML += '<a href="https://doc.stackoverflow.wiki/web/#/21?page_id=138" target="_blank" style="margin-top: 5px; display: block;">' + donate_svg + ' 我是老板,投币打赏</a>'; | |
configHTML += '</div></div><div id="fade" class="black_overlay"></div>'; | |
let saveButton = '<button class="saveButton" style="position: sticky;top: 5px;left: calc(100% - 80px);" onclick="saveAndReload();">' + save_svg + ' 应用</button>'; | |
// 绿化器设定 | |
$("body").after('<div id="configContent" class="white_content">' + saveButton + configHTML); | |
/** 配置控制 **/ | |
// 推荐内容 | |
$(".blog-content-box").append("<br><div class='blog-content-box' id='recommendSwitch' style='text-align: right;'></div>"); | |
$("#recommendSwitch:last").append('<input type="checkbox" id="toggle-button"> <label for="toggle-button" class="button-label"> <span class="circle"></span> <span class="text on"> </span> <span class="text off"> </span> </label>' + | |
'<p style="margin-top: 5px; font-size: 13px;">显示推荐内容</p>'); | |
let recommendCookie = config.get("recommend", false); | |
if (!recommendCookie) { | |
$(".recommend-box").hide(); | |
} | |
if (recommendCookie) { | |
$("#toggle-recommend-button").prop("checked", true); | |
$("#toggle-button").prop("checked", true); | |
} else { | |
$("#toggle-recommend-button").prop("checked", false); | |
$("#toggle-button").prop("checked", false); | |
} | |
config.listenButton("#toggle-recommend-button", "recommend", | |
function() {$(".recommend-box").slideDown(200);}, | |
function() {$(".recommend-box").slideUp(200);}); | |
config.listenButtonAndAction("#toggle-button", "recommend", | |
function() {$(".recommend-box").slideDown(200);}, | |
function() {$(".recommend-box").slideUp(200);}); | |
// 显示小店 | |
let shopCookie = config.get('shop',false); | |
if(!shopCookie){ | |
$("#csdn-shop-window").hide(); | |
$("#csdn-shop-window-top").hide(); | |
} | |
if (shopCookie) { | |
$("#toggle-shop-button").prop("checked", true); | |
} else { | |
$("#toggle-shop-button").prop("checked", false); | |
} | |
config.listenButton("#toggle-shop-button", "shop", | |
function() {location.reload();}, | |
function() {location.reload();}); | |
// 侧栏小广告 | |
let adCookie = config.get("ad", true); | |
if (adCookie) { | |
setTimeout(function() { | |
// $("#recommend-right").append('<div id="asideArchive" class="aside-box" style="margin-top: 8px; width: 300px; display:block !important;"><h3 class="aside-title">来自 CSDN 脚本的小广告</h3><div class="aside-content"><ul class="inf_list clearfix"><li class="clearfix"><b>您可在 <a onclick="showConfig()" style="display: inline-block;">脚本设置</a> 中永久关闭小广告<br>感谢您的支持 ❤️</b><br><p style="font-size: 4px;margin-top: 10px;"><b>29元每月!</b>CTGNet GIA 回程五网高端CN2 GIA/GT网络,支持VPC高级网络<br>拒绝绕路,拒绝不稳定,助力企业拓展全球业务<br>安全,稳定,高性能</p></li><li class="clearfix"><a href="https://www.tsyvps.com/aff/HEHTPGYL" target="_blank"><img src="https://www.tsyvps.com/img/gg.png" style="width: 265px;height:149px"></a></li></ul></div></div>'); | |
}, 500); | |
} | |
if (adCookie) { | |
$("#toggle-ad-button").prop("checked", true); | |
} else { | |
$("#toggle-ad-button").prop("checked", false); | |
} | |
config.listenButton("#toggle-ad-button", "ad", | |
function() {location.reload();}, | |
function() {location.reload();}); | |
// 显示作者名片 | |
let authorCardCookie = config.get("authorCard", true); | |
if (authorCardCookie) { | |
// 博主信息 | |
$('#recommend-right').append($('#asideProfile').prop("outerHTML")); | |
setTimeout(function() { | |
$('#asideProfile').attr("style", "margin-top: 8px; width: 300px;"); | |
}, 500); | |
} | |
if (authorCardCookie) { | |
$("#toggle-authorcard-button").prop("checked", true); | |
} else { | |
$("#toggle-authorcard-button").prop("checked", false); | |
} | |
config.listenButton("#toggle-authorcard-button", "authorCard", | |
function() {location.reload();}, | |
function() {location.reload();}); | |
// 强制白色主题 | |
let whiteThemeCookie = config.get("whiteTheme", false); | |
if (whiteThemeCookie) { | |
// 背景删除 | |
$('.main_father').attr('style', 'background-image: none !important; background-color: #f5f6f7; background: #f5f6f7;'); | |
$('[href^="https://csdnimg.cn/release/phoenix/template/themes_skin/"]').attr('href', 'https://csdnimg.cn/release/phoenix/template/themes_skin/skin-technology/skin-technology-6336549557.min.css'); | |
$('#csdn-toolbar').removeClass('csdn-toolbar-skin-black'); | |
$('.csdn-logo').attr('src', '//csdnimg.cn/cdn/content-toolbar/csdn-logo.png?v=20200416.1'); | |
$('html').css('background-color', '#f5f6f7'); | |
} | |
if (whiteThemeCookie) { | |
$("#toggle-whitetheme-button").prop("checked", true); | |
} else { | |
$("#toggle-whitetheme-button").prop("checked", false); | |
} | |
config.listenButton("#toggle-whitetheme-button", "whiteTheme", | |
function() {location.reload();}, | |
function() {location.reload();}); | |
// 背景图 | |
let backgroundImage = GM_getValue("backgroundImage", ""); | |
if (backgroundImage !== "") { | |
$("#backgroundImgUrl").val(backgroundImage); | |
$(".main_father").attr('style', 'background-image:url(' + backgroundImage + ');background-attachment:fixed;background-size:100%;'); | |
} | |
$('#backgroundImgUrl').on('input', function() { | |
GM_setValue("backgroundImage", $("#backgroundImgUrl").val()); | |
}); | |
$('#backgroundImgUrl').on('change', function() { | |
GM_setValue("backgroundImage", $("#backgroundImgUrl").val()); | |
}); | |
$("#upload_bg").on('change', function() { | |
let file = $("#upload_bg")[0].files[0]; | |
let reader = new FileReader(); | |
reader.onloadend = function (e) { | |
let base64 = e.target.result; | |
$('#backgroundImgUrl').val(base64); | |
$('#backgroundImgUrl').change(); | |
} | |
reader.readAsDataURL(file); | |
}); | |
// 搜博主文章 | |
let searchBlogCookie = config.get("searchBlog", false); | |
if(searchBlogCookie) { | |
$('#recommend-right').append($('#asideSearchArticle').prop("outerHTML")); | |
setTimeout(function() { | |
$('#asideSearchArticle').attr("style", "margin-top: 8px; width: 300px;"); | |
var i = $("#search-blog-words") | |
, n = $(".btn-search-blog"); | |
i.keyup(function(t) { | |
var n = t.keyCode; | |
if (13 == n) { | |
var e = encodeURIComponent(i.val()); | |
if (e) { | |
var s = "//so.csdn.net/so/search/s.do?q=" + e + "&t=blog&u=" + username; | |
window.open(s) | |
} | |
} | |
}); | |
n.on("click", function(t) { | |
var n = encodeURIComponent(i.val()); | |
if (n) { | |
var e = "//so.csdn.net/so/search/s.do?q=" + n + "&t=blog&u=" + username; | |
window.open(e) | |
} | |
t.preventDefault() | |
}); | |
}, 500); | |
} | |
if (searchBlogCookie) { | |
$("#toggle-searchblog-button").prop("checked", true); | |
} else { | |
$("#toggle-searchblog-button").prop("checked", false); | |
} | |
config.listenButton("#toggle-searchblog-button", "searchBlog", | |
function() {location.reload();}, | |
function() {location.reload();}); | |
// 最新文章 | |
let newArticleCookie = config.get("newArticle", false); | |
if (newArticleCookie) { | |
$('#recommend-right').append($('#asideNewArticle').prop("outerHTML")); | |
setTimeout(function() { | |
$('#asideNewArticle').attr("style", "margin-top: 8px; width: 300px;"); | |
}, 0); | |
} | |
if (newArticleCookie) { | |
$("#toggle-newarticle-button").prop("checked", true); | |
} else { | |
$("#toggle-newarticle-button").prop("checked", false); | |
} | |
config.listenButton("#toggle-newarticle-button", "newArticle", | |
function() {location.reload();}, | |
function() {location.reload();}); | |
// 热门文章 | |
let hotArticleCookie = config.get("hotArticle", false); | |
if (hotArticleCookie) { | |
$('#recommend-right').append($("#asideHotArticle").prop("outerHTML")); | |
setTimeout(function() { | |
$('#asideHotArticle').attr("style", "margin-top: 8px; width: 300px;"); | |
$('#asideHotArticle img').remove(); | |
}, 0); | |
} | |
if (hotArticleCookie) { | |
$("#toggle-hotarticle-button").prop("checked", true); | |
} else { | |
$("#toggle-hotarticle-button").prop("checked", false); | |
} | |
config.listenButton("#toggle-hotarticle-button", "hotArticle", | |
function() {location.reload();}, | |
function() {location.reload();}); | |
// 最新评论 | |
let newCommentsCookie = config.get("newComments", false); | |
if (newCommentsCookie) { | |
$('#recommend-right').append($("#asideNewComments").prop("outerHTML")); | |
setTimeout(function() { | |
$('#asideNewComments').attr("style", "margin-top: 8px; width: 300px;"); | |
$(".comment.ellipsis").attr("style", "max-height: none;"); | |
$(".title.text-truncate").attr("style", "padding: 0"); | |
}, 0); | |
} | |
if (newCommentsCookie) { | |
$("#toggle-newcomments-button").prop("checked", true); | |
} else { | |
$("#toggle-newcomments-button").prop("checked", false); | |
} | |
config.listenButton("#toggle-newcomments-button", "newComments", | |
function() {location.reload();}, | |
function() {location.reload();}); | |
// 分类专栏 | |
let kindPersonCookie = config.get("kindPerson", false); | |
if (!kindPersonCookie) { | |
setTimeout(function() { | |
$('#asideCategory').remove(); | |
$('.kind_person').remove(); | |
}, 0); | |
} else { | |
$('#recommend-right').append($("#asideCategory").prop("outerHTML")); | |
if ($("#asideCategory").length > 0) { | |
$('.kind_person').remove(); | |
} else { | |
$('.kind_person').attr("style", "margin-top: 8px; width: 300px; height:255px;"); | |
} | |
setTimeout(function() { | |
$('#asideCategory').attr("style", "margin-top: 8px; width: 300px; display:block !important;"); | |
$("a.flexible-btn").click(function() { | |
$(this).parents('div.aside-box').removeClass('flexible-box'); | |
$(this).parents("p.text-center").remove(); | |
}) | |
}, 500); | |
} | |
if (kindPersonCookie) { | |
$("#toggle-kindperson-button").prop("checked", true); | |
} else { | |
$("#toggle-kindperson-button").prop("checked", false); | |
} | |
config.listenButton("#toggle-kindperson-button", "kindPerson", | |
function() {location.reload();}, | |
function() {location.reload();}); | |
// 目录 | |
let contentCookie = config.get("content", true); | |
if (!contentCookie) { | |
setTimeout(function() { | |
$('.align-items-stretch.group_item').parent().remove(); | |
}, 0); | |
} | |
if (contentCookie) { | |
$("#toggle-content-button").prop("checked", true); | |
} else { | |
$("#toggle-content-button").prop("checked", false); | |
} | |
config.listenButton("#toggle-content-button", "content", | |
function() {location.reload();}, | |
function() {location.reload();}); | |
// 推荐文章 | |
let recommendArticleCookie = config.get("recommendArticle", false); | |
if (!recommendArticleCookie) { | |
setTimeout(function() { | |
$('.recommend-list-box').remove(); | |
}, 0); | |
} else { | |
setTimeout(function() { | |
$('.recommend-list-box').attr("style", "margin-top: 8px; width: 300px; height:255px;"); | |
}, 0); | |
} | |
if (recommendArticleCookie) { | |
$("#toggle-recommendarticle-button").prop("checked", true); | |
} else { | |
$("#toggle-recommendarticle-button").prop("checked", false); | |
} | |
config.listenButton("#toggle-recommendarticle-button", "recommendArticle", | |
function() {location.reload();}, | |
function() {location.reload();}); | |
// 归档 | |
let archiveCookie = config.get("archive", false); | |
if (!archiveCookie) { | |
setTimeout(function() { | |
$('#asideArchive').remove(); | |
}, 0); | |
} else { | |
$('#recommend-right').append($("#asideArchive").prop("outerHTML")); | |
setTimeout(function() { | |
$('#asideArchive').attr("style", "margin-top: 8px; width: 300px; display:block !important;"); | |
}, 500); | |
} | |
if (archiveCookie) { | |
$("#toggle-archive-button").prop("checked", true); | |
} else { | |
$("#toggle-archive-button").prop("checked", false); | |
} | |
config.listenButton("#toggle-archive-button", "archive", | |
function() {location.reload();}, | |
function() {location.reload();}); | |
// 自动靠左平铺 | |
let autoSizeCookie = config.get("autoSize", false); | |
if (autoSizeCookie) { | |
setInterval(function () { | |
// 文章宽度自适应 | |
if (window.innerWidth < 1100) { | |
// 删除原有响应式样式 | |
$(".main_father").removeClass("justify-content-center"); | |
$("article").width(window.innerWidth - 150); | |
GM_addStyle(` | |
main{ | |
width: auto!important; | |
float: none!important; | |
max-width: 90vw; | |
} | |
main article img{ | |
margin: 0 auto; | |
max-width: 100%; | |
object-fit: cover; | |
} | |
`); | |
did = true; | |
} else { | |
if (did === true) { | |
$("article").removeAttr("style"); | |
did = false; | |
} | |
} | |
}, 500); | |
} | |
if (autoSizeCookie) { | |
$("#toggle-autosize-button").prop("checked", true); | |
} else { | |
$("#toggle-autosize-button").prop("checked", false); | |
} | |
config.listenButton("#toggle-autosize-button", "autoSize", | |
function() {location.reload();}, | |
function() {location.reload();}); | |
// 自动隐藏顶栏 | |
let autoHideToolbarCookie = config.get("autoHideToolbar", true); | |
if (autoHideToolbarCookie) { | |
$(window).scroll(function() { | |
if (document.documentElement.scrollTop > 100) { | |
let scrollS = $(this).scrollTop(); | |
if (scrollS >= windowTop) { | |
$('#csdn-toolbar').slideUp(100); | |
windowTop = scrollS; | |
} else { | |
$('#csdn-toolbar').slideDown(100); | |
windowTop = scrollS; | |
} | |
} | |
}); | |
} | |
if (autoHideToolbarCookie) { | |
$("#toggle-autohidetoolbar-button").prop("checked", true); | |
} else { | |
$("#toggle-autohidetoolbar-button").prop("checked", false); | |
} | |
config.listenButton("#toggle-autohidetoolbar-button", "autoHideToolbar", | |
function() {location.reload();}, | |
function() {location.reload();}); | |
// 自动隐藏底栏 | |
let autoHideBottomBarCookie = config.get("autoHideBottomBar", true); | |
if (autoHideBottomBarCookie) { | |
$("#toolBarBox .left-toolbox").css({ | |
position: "relative", | |
left: "0px", | |
bottom: "0", | |
width: $("#toolBarBox").width() + "px" | |
}); | |
$(window).scroll(function() { | |
$("#toolBarBox .left-toolbox").css({ | |
position: "relative", | |
left: "0px", | |
bottom: "0", | |
width: $("#toolBarBox").width() + "px" | |
}) | |
}); | |
} | |
if (autoHideBottomBarCookie) { | |
$("#toggle-autohidebottombar-button").prop("checked", true); | |
} else { | |
$("#toggle-autohidebottombar-button").prop("checked", false); | |
} | |
config.listenButton("#toggle-autohidebottombar-button", "autoHideBottomBar", | |
function() {location.reload();}, | |
function() {location.reload();}); | |
// 创作中心按钮 | |
let writeBlogCookie = config.get("writeBlog", true); | |
if (!writeBlogCookie) { | |
$(".toolbar-btn-write").remove(); | |
} | |
if (writeBlogCookie) { | |
$("#toggle-writeblog-button").prop("checked", true); | |
} else { | |
$("#toggle-writeblog-button").prop("checked", false); | |
} | |
config.listenButton("#toggle-writeblog-button", "writeBlog", | |
function() {location.reload();}, | |
function() {location.reload();}); | |
// 右侧滚动条 | |
/** setTimeout(function () { | |
let rightSideHeight = 0; | |
let pageHeight = $(window).height(); | |
rightSideHeight += getHeight($('.align-items-stretch.group_item').parent()); | |
rightSideHeight += getHeight($("#asideProfile")); | |
rightSideHeight += getHeight($("#asideSearchArticle")); | |
rightSideHeight += getHeight($("#asideNewArticle")); | |
rightSideHeight += getHeight($("#asideHotArticle")); | |
rightSideHeight += getHeight($("#asideNewComments")); | |
rightSideHeight += getHeight($("#asideCategory")); | |
rightSideHeight += getHeight($("#asideArchive")); | |
console.debug("Right side total height: " + rightSideHeight); | |
console.debug("Page height: " + pageHeight); | |
if (rightSideHeight > pageHeight) { | |
$('#recommend-right').css("overflow", "scroll"); | |
} | |
}, 1500); */ | |
} else if (num === 7) { | |
$(".me_r")[1].remove(); | |
} else if (num === 8) { | |
/* $(".article-bar-top").append("<br>"); | |
$(".article-bar-top").append($(".aside-box-footerClassify").children("dd").html()); | |
$("dl").each(function (index, element) { | |
var key = $(this).children("dt"); | |
var value = $(this).children("dd").children("span"); | |
if (key.html().indexOf("原创") != -1) { | |
key = $(this).children("dt").children("a") | |
value = $(this).children("dd").children("a").children("span"); | |
addInfo(key, value); | |
} else | |
if (value.html() != undefined) { | |
addInfo(key, value); | |
} | |
} ); | |
function addInfo(key, value) { | |
var bind = key.html() + " " + value.html() + " "; | |
$(".article-bar-top").append(bind + " "); | |
} */ | |
$(".blog_container_aside").remove(); | |
// 标题消息提醒去除 | |
let title = document.title.replace(/^\(.*?\)/g, ""); | |
document.title = title; | |
// 评论复制按钮 | |
$('.comment-box').prepend('<button class="comment-hidden-text" style="display:none">COPY BUTTON</button>'); | |
$('.new-opt-box.new-opt-box-bg').prepend('<a class="btn btn-report btn-copy" onclick="javascript:$(\'.comment-hidden-text\').attr(\'data-clipboard-text\',$(this).parent().parent().find(\'.new-comment\').text())">复制评论</a><span class="btn-bar"></span>'); | |
$('.btn-copy').click(function() { | |
var clipboard = new ClipboardJS('.comment-hidden-text'); | |
clipboard.on('success', function(e) { | |
console.info('Action:', e.action); | |
console.info('Text:', e.text); | |
console.info('Trigger:', e.trigger); | |
e.clearSelection(); | |
$('.btn-copy').html('成功'); | |
setTimeout(function() { | |
$('.btn-copy').html('复制评论'); | |
}, 1000); | |
}); | |
clipboard.on('error', function(e) { | |
console.error('Action:', e.action); | |
console.error('Trigger:', e.trigger); | |
$('.btn-copy').html('失败,请手动复制'); | |
setTimeout(function() { | |
$('.btn-copy').html('复制评论'); | |
}, 1000); | |
}); | |
$(".comment-hidden-text").click(); | |
clipboard.destroy(); | |
}); | |
} else if (num === 9) { | |
// 删除CSDN LOGO悬浮后的二维码 | |
$(".toolbar-subMenu > img").parent().remove(); | |
} | |
}, 100); | |
progressor.incProgress(10); | |
} | |
function showTips() { | |
var config = { | |
content: "欢迎使用 CSDNGreener,绿化设定按钮在这里!<br><a onclick='javascript:$(\".trips\").remove();'>好的,以后不再提示我</a>", | |
type: "html", | |
alignTo: ["bottom", "right"], | |
trigger: "show", | |
isclose: false, | |
color: ["#B2E281", "#B2E281"] | |
}; | |
$("#greenerSettings").showTips(config); | |
} | |
function getHeight(element) { | |
let outerHeight = element.outerHeight(); | |
if (outerHeight === null) { | |
return 0; | |
} | |
return outerHeight; | |
} | |
function isFirefox() { | |
return navigator.userAgent.indexOf("Firefox") > 0; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment