// ==UserScript==
// @name CSDN|简书优化
// @icon https://www.csdn.net/favicon.ico
// @namespace https://gf.qytechs.cn/zh-CN/scripts/406136-csdn-简书优化
// @supportURL https://gf.qytechs.cn/zh-CN/scripts/406136-csdn-简书优化/feedback
// @version 0.7.0
// @description 支持手机端和PC端,屏蔽广告,优化浏览体验,自动跳转简书拦截URL
// @author WhiteSevs
// @match http*://*.csdn.net/*
// @match http*://*.jianshu.com/*
// @match http*://*.jianshu.io/*
// @grant GM_registerMenuCommand
// @grant GM_unregisterMenuCommand
// @grant GM_getValue
// @grant GM_setValue
// @grant GM_deleteValue
// @grant GM_listValues
// @grant GM_info
// @grant unsafeWindow
// @run-at document-start
// @require https://lf3-cdn-tos.bytecdntp.com/cdn/expire-1-M/jquery/3.4.1/jquery.min.js
// @require https://gf.qytechs.cn/scripts/449471-viewer/code/Viewer.js?version=1170654
// @require https://gf.qytechs.cn/scripts/455186-whitesevsutils/code/WhiteSevsUtils.js?version=1219374
// ==/UserScript==
(function () {
const utils = Utils.noConflict();
const jQuery = $.noConflict(true);
const log = new utils.Log(GM_info);
log.config({
logMaxCount: 20,
autoClearConsole: true,
});
/**
* 因为在有些页面上,比如:简书,当插入style元素到head中,该页面清除该元素
*/
const GM_addStyle = utils.GM_addStyle;
let GM_Menu = null;
/**
* 移除元素(未出现也可以等待出现)
* @param {string} selectorText 元素选择器
*/
const waitForElementToRemove = function (selectorText = "") {
utils.waitNode(selectorText).then((dom) => {
dom.forEach((item) => {
item.remove();
});
});
};
const Optimization = {
jianshu: {
/**
* 判断是否是简书
*/
locationMatch() {
return Boolean(/jianshu.(com|io)/i.test(window.location.origin));
},
PC: {
/**
* 添加屏蔽CSS
*/
addCSS() {
GM_addStyle(`
.download-app-guidance,
.call-app-btn,
.collapse-tips,
.note-graceful-button,
.app-open,
.header-wrap,
.recommend-wrap.recommend-ad,
.call-app-Ad-bottom,
#recommended-notes p.top-title span.more,
#homepage .modal,
button.index_call-app-btn,
span.note__flow__download,
.download-guide,
#footer,
.comment-open-app-btn-wrap,
.nav.navbar-nav + div,
.self-flow-ad,
#free-reward-panel,
div[id*='AdFive'],
#index-aside-download-qrbox{
display:none !important;
}
body.reader-day-mode.normal-size {
overflow: auto !important;
}
.collapse-free-content{
height:auto !important;
}
.copyright{
color:#000 !important;
}
#note-show .content .show-content-free .collapse-free-content:after{
background-image:none !important;
}
footer > div > div{
justify-content: center;
}`);
},
/**
* 全文居中
*/
articleCenter() {
GM_addStyle(`
div[role=main] aside,
div._3Pnjry{
display: none !important;
}
div._gp-ck{
width: 100% !important;
}`);
waitForElementToRemove("div[role=main] aside");
waitForElementToRemove("div._3Pnjry");
utils.waitNode("div._gp-ck").then((dom) => {
dom.forEach((item) => {
item.style["width"] = "100%";
});
});
},
/**
* 去除剪贴板劫持
*/
removeClipboardHijacking() {
const stopNativePropagation = (event) => {
event.stopPropagation();
};
window.addEventListener("copy", stopNativePropagation, true);
document.addEventListener("copy", stopNativePropagation, true);
},
/**
* 自动展开全文
*/
autoExpandFullText() {
utils.waitNode(`div#homepage div[class*="dialog-"]`).then(
(nodeList) => {
nodeList[0].style["visibility"] = "hidden";
utils.mutationObserver(nodeList[0], {
callback: (mutations) => {
if (mutations.length == 0) {
return;
}
if (mutations[0].target.style["display"] != "none") {
document
.querySelector(
'div#homepage div[class*="dialog-"] .cancel'
)
?.click();
}
},
config: {
/* 子节点的变动(新增、删除或者更改) */
childList: false,
/* 属性的变动 */
attributes: true,
/* 节点内容或节点文本的变动 */
characterData: true,
/* 是否将观察器应用于该节点的所有后代节点 */
subtree: true,
},
});
}
);
},
/**
* 去除简书拦截其它网址的url并自动跳转
*/
jumpRedirect() {
if (window.location.pathname === "/go-wild") {
/* 禁止简书拦截跳转 */
window.stop();
let search = window.location.href.replace(
window.location.origin + "/",
""
);
search = decodeURIComponent(search);
let newURL = search
.replace(/^go-wild\?ac=2&url=/gi, "")
.replace(/^https:\/\/link.zhihu.com\/\?target\=/gi, "");
window.location.href = newURL;
}
},
run() {
this.addCSS();
this.removeClipboardHijacking();
this.autoExpandFullText();
if (GM_Menu.get("JianShuArticleCenter")) {
this.articleCenter();
}
},
},
Mobile: {
addCSS() {
Optimization.jianshu.PC.addCSS();
},
/**
* 手机-移除底部推荐阅读
*/
removeFooterRecommendRead() {
GM_addStyle(`
#recommended-notes{
display: none !important;
}`);
},
run() {
this.addCSS();
Optimization.jianshu.PC.removeClipboardHijacking();
Optimization.jianshu.PC.autoExpandFullText();
if (GM_Menu.get("JianShuremoveFooterRecommendRead")) {
this.removeFooterRecommendRead();
}
},
},
/**
* 函数入口
*/
run() {
this.PC.jumpRedirect();
if (utils.isPhone()) {
log.success("简书-移动端");
this.Mobile.run();
} else {
log.success("简书-桌面端");
this.PC.run();
}
},
},
csdn: {
/**
* 判断是否是CSDN
*/
locationMatch() {
return Boolean(/csdn.net/i.test(window.location.origin));
},
PC: {
addCSS() {
GM_addStyle(`
.ecommend-item-box.recommend-recommend-box,
.login-mark,
.opt-box.text-center,
.leftPop,
#csdn-shop-window,
.toolbar-advert,
.hide-article-box,
.user-desc.user-desc-fix,
.recommend-card-box,
.more-article,
.article-show-more,
#csdn-toolbar-profile-nologin,
.guide-rr-first,
#recommend-item-box-tow{
display: none !important;
}
.comment-list-box{
max-height: none !important;
}
.blog_container_aside,
#nav{
margin-left: -45px;
}
.recommend-right.align-items-stretch.clearfix,.dl_right_fixed{
margin-left: 45px;
}
#content_views pre,
#content_views pre code{
user-select: text !important;
}
#article_content,
.user-article.user-article-hide{
height: auto !important;
overflow: auto !important;
}
`);
},
/**
* 去除剪贴板劫持
*/
removeClipboardHijacking() {
log.info("去除剪贴板劫持");
jQuery(".article-copyright")?.remove();
if (unsafeWindow.articleType) {
unsafeWindow.articleType = 0;
}
if (
unsafeWindow.csdn &&
unsafeWindow.csdn.copyright &&
unsafeWindow.csdn.copyright.textData
) {
unsafeWindow.csdn.copyright.textData = "";
}
if (
unsafeWindow.csdn &&
unsafeWindow.csdn.copyright &&
unsafeWindow.csdn.copyright.htmlData
) {
unsafeWindow.csdn.copyright.htmlData = "";
}
},
/**
* 取消禁止复制
*/
unBlockCopy() {
log.info("取消禁止复制");
jQuery(document).on("click", ".hljs-button.signin", function () {
/* 复制按钮 */
let btnNode = jQuery(this);
/* 需要复制的文本 */
let copyText = btnNode.parent().text();
utils.setClip(copyText);
btnNode.attr("data-title", "复制成功");
});
jQuery(document).on("mouseenter mouseleave", "pre", function () {
this.querySelector(".hljs-button.signin")?.setAttribute(
"data-title",
"复制"
);
});
/* 取消Ctrl+C的禁止 */
utils.waitNode("#content_views").then(() => {
unsafeWindow.$("#content_views").unbind("copy");
jQuery("#content_views")
.off("copy")
.on("copy", function (event) {
event?.preventDefault();
event?.stopPropagation();
utils.setClip(unsafeWindow.getSelection().toString());
return false;
});
});
},
/**
* 点击代码块自动展开
*/
clickPreCodeAutomatically() {
if (!GM_Menu.get("autoExpandContent")) {
return;
}
log.info("点击代码块自动展开");
jQuery(document).on("click", "pre", function () {
let clickNode = jQuery(this);
clickNode.css("height", "auto");
clickNode.find(".hide-preCode-box")?.remove();
});
},
/**
* 恢复评论到正确位置
*/
restoreComments() {
/* 第一条评论 */
log.info("恢复评论到正确位置-第一条评论");
utils.waitNode(".first-recommend-box").then((dom) => {
jQuery(".recommend-box.insert-baidu-box.recommend-box-style").prepend(
jQuery(dom)
);
});
log.info("恢复评论到正确位置-第二条评论");
/* 第二条评论 */
utils.waitNode(".second-recommend-box").then((dom) => {
jQuery(".recommend-box.insert-baidu-box.recommend-box-style").prepend(
jQuery(dom)
);
});
},
/**
* 标识CSDN下载的链接
*/
identityCSDNDownload() {
log.info("标识CSDN下载的链接");
jQuery(".recommend-item-box[data-url*='https://download.csdn.net/']").each(
(index, item) => {
if (GM_Menu.get("removeCSDNDownloadPC")) {
item.remove();
} else {
jQuery(item).find(".content-box").css("border", "2px solid red");
}
}
);
},
/**
* 全文居中
*/
articleCenter() {
if (!GM_Menu.get("articleCenter")) {
return;
}
log.info("全文居中");
GM_addStyle(`
aside.blog_container_aside{
display:none !important;
}
#mainBox main{
width: inherit !important;
}
`);
GM_addStyle(`
@media (min-width: 1320px) and (max-width:1380px) {
.nodata .container {
width:900px !important
}
.nodata .container main {
width: 900px
}
.nodata .container main #pcCommentBox pre >ol.hljs-ln {
width: 490px !important
}
.nodata .container main .articleConDownSource {
width: 500px
}
}
@media screen and (max-width: 1320px) {
.nodata .container {
width:760px !important
}
.nodata .container main {
width: 760px
}
.nodata .container main #pcCommentBox pre >ol.hljs-ln {
width: 490px !important
}
.nodata .container main .toolbox-list .tool-reward {
display: none
}
.nodata .container main .more-toolbox-new .toolbox-left .profile-box .profile-name {
max-width: 128px
}
.nodata .container main .articleConDownSource {
width: 420px
}
}
@media screen and (min-width: 1380px) {
.nodata .container {
width:1010px !important
}
.nodata .container main {
width: 1010px
}
.nodata .container main #pcCommentBox pre >ol.hljs-ln {
width: 490px !important
}
.nodata .container main .articleConDownSource {
width: 560px
}
}
@media (min-width: 1550px) and (max-width:1700px) {
.nodata .container {
width:820px !important
}
.nodata .container main {
width: 820px
}
.nodata .container main #pcCommentBox pre >ol.hljs-ln {
width: 690px !important
}
.nodata .container main .articleConDownSource {
width: 500px
}
}
@media screen and (min-width: 1700px) {
.nodata .container {
width:1010px !important
}
.nodata .container main {
width: 1010px
}
.nodata .container main #pcCommentBox pre >ol.hljs-ln {
width: 690px !important
}
.nodata .container main .articleConDownSource {
width: 560px
}
}
`);
},
/**
* 添加前往评论的按钮,在返回顶部的下面
*/
addGotoRecommandButton() {
log.info("添加前往评论的按钮,在返回顶部的上面");
let gotoRecommandNode = jQuery(`
<a class="option-box" data-type="gorecommand">
<span class="show-txt" style="display:flex;opacity:100;">前往<br>评论</span>
</a>
`);
jQuery(gotoRecommandNode).on("click", function () {
log.info("滚动到评论");
jQuery("html, body").animate(
{
scrollTop:
jQuery("#toolBarBox").offset().top -
jQuery("#csdn-toolbar").height() -
8,
},
1000
);
});
utils.waitNode(".csdn-side-toolbar").then(() => {
jQuery(".csdn-side-toolbar a").eq("-2").after(gotoRecommandNode);
});
},
/**
* 屏蔽登录(不可用)弹窗
*/
shieldLoginDialog() {
if (GM_Menu.get("shieldLoginDialog")) {
log.info("屏蔽登录(不可用)弹窗");
window.GM_CSS_GM_shieldLoginDialog = [
GM_addStyle(
`.passport-login-container{display: none !important;}`
),
];
}
},
/**
* 自动展开内容块
*/
autoExpandContent() {
if (!GM_Menu.get("autoExpandContent")) {
return;
}
log.info("自动展开内容块");
GM_addStyle(`
pre.set-code-hide{
height: auto !important;
}
pre.set-code-hide .hide-preCode-box{
display: none !important;
}
`);
},
/**
* 显示/隐藏目录
*/
showOrHideDirectory() {
if (GM_Menu.get("showOrHideDirectory")) {
log.info("显示目录");
GM_addStyle(`
aside.blog_container_aside{
display: none !important;
}
`);
} else {
log.info("隐藏目录");
GM_addStyle(`
aside.blog_container_aside{
display: block !important;
}
`);
}
},
/**
* 显示/隐藏侧边栏
*/
showOrHideSidebar() {
if (GM_Menu.get("showOrHideSidebar")) {
log.info("显示侧边栏");
GM_addStyle(`
#rightAsideConcision{
display: none !important;
}
`);
} else {
log.info("隐藏侧边栏");
GM_addStyle(`
#rightAsideConcision{
display: block !important;
}
`);
}
},
/**
* 去除CSDN拦截其它网址的url并自动跳转
*/
jumpRedirect() {
/* https://link.csdn.net/?target=https%3A%2F%2Fjaist.dl.sourceforge.net%2Fproject%2Fportecle%2Fv1.11%2Fportecle-1.11.zip */
if (
window.location.hostname === "link.csdn.net" &&
window.location.search.startsWith("?target")
) {
/* 禁止CSDN拦截跳转 */
window.stop();
let search = window.location.search.replace(/^\?target=/gi, "");
search = decodeURIComponent(search);
let newURL = search;
log.success(`跳转链接 ${newURL}`);
window.location.href = newURL;
}
},
run() {
this.addCSS();
this.articleCenter();
this.shieldLoginDialog();
this.autoExpandContent();
this.showOrHideDirectory();
this.showOrHideSidebar();
let that = this;
jQuery(document).ready(function () {
that.removeClipboardHijacking();
that.unBlockCopy();
that.identityCSDNDownload();
that.clickPreCodeAutomatically();
that.restoreComments();
that.addGotoRecommandButton();
});
},
},
Mobile: {
addCSS() {
GM_addStyle(`
#mainBox{
width: auto;
}
.user-desc.user-desc-fix{
height: auto !important;
overflow: auto !important;
}
#operate,.feed-Sign-span,
.view_comment_box,
.weixin-shadowbox.wap-shadowbox,
.feed-Sign-span,
.user-desc.user-desc-fix,
.comment_read_more_box,
#content_views pre.set-code-hide .hide-preCode-box,
.passport-login-container,
.hljs-button[data-title='登录(不可用)后复制'],
.article-show-more,
#treeSkill,
div.btn_open_app_prompt_div,
div.readall_box,
div.aside-header-fixed,
div.feed-Sign-weixin,
div.ios-shadowbox{
display:none !important;
}
.component-box .praise {
background: #ff5722;
border-radius: 5px;
padding: 0px 8px;
height: auto;
}
.component-box .praise,.component-box .share {
color: #fff;
}
.component-box a {
display: inline-block;
font-size:xx-small;
}
.component-box {
display: inline;
margin: 0;
position: relative;
white-space:nowrap;
}
.csdn-edu-title{
background: #4d6de1;
border-radius: 5px;
padding: 0px 8px;
height: auto;
color: #fff !important;
}
#comment{
max-height: none !important;
}
#content_views pre,
#content_views pre code{
webkit-touch-callout: text !important;
-webkit-user-select: text !important;
-khtml-user-select: text !important;
-moz-user-select: text !important;
-ms-user-select: text !important;
user-select: text !important;
}
#content_views pre.set-code-hide,
.article_content{
height: 100% !important;
overflow: auto !important;
}`);
GM_addStyle(`
.GM-csdn-dl{
padding: .24rem .32rem;
width: 100%;
justify-content: space-between;
-webkit-box-pack: justify;
border-bottom: 1px solid #F5F6F7!important;
}
.GM-csdn-title{
font-size: .3rem;
color: #222226;
letter-spacing: 0;
line-height: .44rem;
font-weight: 600;
//max-height: .88rem;
word-break: break-all;
overflow: hidden;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2
}
.GM-csdn-title a{
word-break: break-all;
color: #222226;
font-weight: 600;
}
.GM-csdn-title em,.GM-csdn-content em{
font-style: normal;
color: #fc5531
}
.GM-csdn-content{
//max-width: 5.58rem;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
color: #555666;
font-size: .24rem;
line-height: .34rem;
max-height: .34rem;
word-break: break-all;
-webkit-box-flex: 1;
-ms-flex: 1;
flex: 1;
margin-top: .16rem;
}
.GM-csdn-img img{
width: 2.18rem;
height: 1.58rem;
//margin-left: .16rem
}
.GM-csdn-Redirect{
color: #fff;
background-color: #f90707;
font-family: sans-serif;
margin: auto 2px;
border: 1px solid #ccc;
border-radius: 4px;
padding: 0px 3px;
font-size: xx-small;
display: inline;
white-space: nowrap;
}`);
},
/**
* 重构底部推荐
*/
refactoringRecommendation() {
log.info("重构底部推荐");
function refactoring() {
/* 反复执行的重构函数 */
jQuery(".container-fluid").each((index, item) => {
item = jQuery(item);
var url = ""; /* 链接 */
var title = ""; /* 标题 */
var content = ""; /* 内容 */
var img = ""; /* 图片 */
var isCSDNDownload = false; /* 判断是否是CSDN资源下载 */
var isCSDNEduDownload = false; /* 判断是否是CSDN-学院资源下载 */
if (item.attr("data-url")) {
/* 存在真正的URL */
url = item.attr("data-url");
title = item.find(".recommend_title div.left").html();
content = item.find(".text").html();
if (item.find(".recommend-img").length) {
/* 如果有图片就加进去 */
item.find(".recommend-img").each((_index_, _item_) => {
img += jQuery(_item_).html();
});
}
} else {
log.info("节点上无data-url");
url = item.find("a[data-type]").attr("href");
title = item.find(".recommend_title div.left").html();
content = item.find(".text").html();
}
if (GM_Menu.get("showDirect")) {
/* 开启就添加 */
title += `<div class="GM-csdn-Redirect">Redirect</div>`;
}
var _URL_ = new URL(url);
if (
_URL_.host === "download.csdn.net" ||
(_URL_.host === "www.iteye.com" &&
_URL_.pathname.match(/^\/resource/gi))
) {
/* 该链接为csdn资源下载 */
log.info("该链接为csdn资源下载");
isCSDNDownload = true;
title += `<div class="component-box"><a class="praise" href="javascript:;">CSDN下载</a></div>`;
} else if (_URL_.origin.match(/edu.csdn.net/gi)) {
/* 该链接为csdn学院下载 */
isCSDNEduDownload = true;
log.info("该链接为csdn学院下载");
title += `<div class="component-box"><a class="csdn-edu-title" href="javascript:;">CSDN学院</a></div>`;
}
item.attr("class", "GM-csdn-dl");
item.attr("data-url", url);
item.html(
`<div class="GM-csdn-title"><div class="left">${title}</div></div><div class="GM-csdn-content">${content}</div><div class="GM-csdn-img">${img}</div>`
);
if (
(isCSDNDownload || isCSDNEduDownload) &&
GM_Menu.get("removeCSDNDownloadMobile")
) {
item.remove();
}
/* jQuery("#recommend")
.find(".recommend_list")
.before(jQuery("#first_recommend_list").find("dl").parent().html()); */
});
}
utils.waitNode("#recommend").then((nodeList) => {
utils.mutationObserver(nodeList[0], {
callback: () => {
setTimeout(() => {
refactoring();
}, 300);
},
config: { childList: true, subtree: true, attributes: true },
});
});
this.recommendClickEvent();
},
/**
* 设置底部推荐点击跳转事件
*/
recommendClickEvent() {
log.info("设置底部推荐点击跳转事件");
jQuery(document).on("click", ".GM-csdn-dl", function () {
let url = jQuery(this).attr("data-url");
if (GM_Menu.get("openNewTab")) {
window.open(url, "_blank");
} else {
window.location.href = url;
}
});
},
/**
* 去除广告
*/
removeAds() {
log.info("去除广告");
/* 登录(不可用)窗口 */
waitForElementToRemove(".passport-login-container");
/* 打开APP */
waitForElementToRemove(
".btn_open_app_prompt_box.detail-open-removed"
);
/* 广告 */
waitForElementToRemove(".add-firstAd");
/* 打开CSDN APP 小程序看全文 */
waitForElementToRemove("div.feed-Sign-weixin");
/* ios版本提示 */
waitForElementToRemove("div.ios-shadowbox");
},
run() {
this.addCSS();
let that = this;
jQuery(document).ready(function () {
that.removeAds();
that.refactoringRecommendation();
});
},
},
/**
* 函数入口
*/
run() {
Optimization.csdn.PC.jumpRedirect();
if (utils.isPhone()) {
log.success("移动端模式");
this.Mobile.run();
} else {
log.success("桌面端模式");
this.PC.run();
}
},
},
};
if (Optimization.csdn.locationMatch()) {
if (utils.isPhone()) {
GM_Menu = new utils.GM_Menu(
{
showDirect: {
text: "手机-标识处理过的底部推荐文章",
enable: true,
showText: (_text_, _enable_) => {
return (_enable_ ? "✅" : "❌") + " " + _text_;
},
callback: () => {
window.location.reload();
},
},
openNewTab: {
text: "手机-底部推荐文章新标签页打开",
enable: true,
showText: (_text_, _enable_) => {
return (_enable_ ? "✅" : "❌") + " " + _text_;
},
callback: () => {
window.location.reload();
},
},
removeCSDNDownloadMobile: {
text: "手机-移除文章底部的CSDN下载",
enable: false,
showText: (_text_, _enable_) => {
return (_enable_ ? "✅" : "❌") + " " + _text_;
},
callback: () => {
window.location.reload();
},
},
},
false,
GM_getValue,
GM_setValue,
GM_registerMenuCommand,
GM_unregisterMenuCommand
);
} else {
GM_Menu = new utils.GM_Menu(
{
removeCSDNDownloadPC: {
text: "电脑-移除文章底部的CSDN下载",
enable: false,
showText: (_text_, _enable_) => {
return (_enable_ ? "✅" : "❌") + " " + _text_;
},
callback: () => {
window.location.reload();
},
},
articleCenter: {
text: "电脑-全文居中",
enable: true,
showText: (_text_, _enable_) => {
return (_enable_ ? "✅" : "❌") + " " + _text_;
},
callback: () => {
window.location.reload();
},
},
shieldLoginDialog: {
text: "电脑-屏蔽登录(不可用)弹窗",
enable: true,
showText: (_text_, _enable_) => {
return (_enable_ ? "✅" : "❌") + " " + _text_;
},
callback: (_key_, _enable_) => {
if (!_enable_) {
window.GM_CSS_GM_shieldLoginDialog.forEach((item) => {
item.remove();
});
} else {
if (typeof window.GM_CSS_GM_shieldLoginDialog !== "undefined") {
window.GM_CSS_GM_shieldLoginDialog = [
...window.GM_CSS_GM_shieldLoginDialog,
GM_addStyle(
`.passport-login-container{display: none !important;}`
),
];
} else {
window.GM_CSS_GM_shieldLoginDialog = [
GM_addStyle(
`.passport-login-container{display: none !important;}`
),
];
}
}
},
},
autoExpandContent: {
text: "电脑-自动展开内容块",
enable: false,
showText: (_text_, _enable_) => {
return (_enable_ ? "✅" : "❌") + " " + _text_;
},
callback: () => {
window.location.reload();
},
},
showOrHideDirectory: {
text: "电脑-显示目录",
enable: false,
showText: (_text_, _enable_) => {
return _enable_ ? `⚙ 电脑-隐藏目录` : `⚙ ${_text_}`;
},
callback: (_key_, _enable_) => {
window.location.reload();
},
},
showOrHideSidebar: {
text: "电脑-显示侧边栏",
enable: false,
showText: (_text_, _enable_) => {
return _enable_ ? `⚙ 电脑-隐藏侧边栏` : `⚙ ${_text_}`;
},
callback: (_key_, _enable_) => {
window.location.reload();
},
},
},
false,
GM_getValue,
GM_setValue,
GM_registerMenuCommand,
GM_unregisterMenuCommand
);
}
Optimization.csdn.run();
} else if (Optimization.jianshu.locationMatch()) {
if (utils.isPhone()) {
GM_Menu = new utils.GM_Menu(
{
JianShuremoveFooterRecommendRead: {
text: "手机-移除底部推荐阅读",
enable: false,
showText: (_text_, _enable_) => {
return (_enable_ ? "✅" : "❌") + " " + _text_;
},
callback: () => {
window.location.reload();
},
},
},
false,
GM_getValue,
GM_setValue,
GM_registerMenuCommand,
GM_unregisterMenuCommand
);
} else {
GM_Menu = new utils.GM_Menu(
{
JianShuArticleCenter: {
text: "电脑-全文居中",
enable: true,
showText: (_text_, _enable_) => {
return (_enable_ ? "✅" : "❌") + " " + _text_;
},
callback: () => {
window.location.reload();
},
},
},
false,
GM_getValue,
GM_setValue,
GM_registerMenuCommand,
GM_unregisterMenuCommand
);
}
Optimization.jianshu.run();
}
})();