diff --git a/README.md b/README.md index 12143f3..e7d9123 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ https://github.com/027xiguapi/code-box 博客网站在未登录状态下无法复制代码,使用这个插件,无需登录可以一键复制代码。 -还支持解除`关注博主即可阅读全文`的提示,隐藏登陆弹窗。 +还支持解除`关注博主即可阅读全文`的提示,隐藏登录弹窗。 完整分析:[谷歌插件:无需登录一键复制 CSDN 代码](https://lwebapp.com/zh/post/copy-csdn) @@ -47,7 +47,7 @@ https://github.com/027xiguapi/code-box 1. 打开任意一个`CSDN`博客即可开始复制代码 2. 未登录`CSDN`状态下,支持选中代码 3. 未登录`CSDN`状态下,代码右上角按钮一键复制 -4. 未登录`CSDN`状态下,不会再出现强制登陆弹窗 +4. 未登录`CSDN`状态下,不会再出现强制登录弹窗 5. 未关注博主状态下,不再提示关注博主即可阅读全文,且完整展示文章 6. 自动展开代码块 7. 移动端屏蔽跳转APP diff --git a/component/csdn.tsx b/component/csdn.tsx index 2dc76a2..15e9343 100644 --- a/component/csdn.tsx +++ b/component/csdn.tsx @@ -19,6 +19,11 @@ export default function Csdn() { (v) => (v === undefined ? true : v) ) + const [closeRedirectModal, setCloseRedirectModal] = useStorage( + "csdn-closeLoginModal", + (v) => (v === undefined ? true : v) + ) + return (
CSDN设置 @@ -70,7 +75,17 @@ export default function Csdn() { checked={closeLoginModal} onChange={(e) => setCloseLoginModal(e.target.checked)} /> - + + +
+ setCloseRedirectModal(e.target.checked)} + /> +
) diff --git a/contents/csdn.tsx b/contents/csdn.tsx index 8fa06d3..878e153 100644 --- a/contents/csdn.tsx +++ b/contents/csdn.tsx @@ -3,6 +3,8 @@ import { useEffect, useRef } from "react" import { useStorage } from "@plasmohq/storage/hook" +import { addCss } from "~tools" + export const config: PlasmoCSConfig = { matches: ["https://*.blog.csdn.net/*"] } @@ -17,36 +19,35 @@ const csdn = () => { const [closeFollow] = useStorage("csdn-closeFollow") const [autoOpenCode] = useStorage("csdn-autoOpenCode") const [closeLoginModal] = useStorage("csdn-closeLoginModal") + const [closeRedirectModal] = useStorage("csdn-closeLoginModal") useEffect(() => { - console.log("CSDN closeAds", closeAds) + console.log("CSDN status", { + closeAds, + copyCode, + autoOpenCode, + closeFollow, + closeLoginModal, + closeRedirectModal + }) closeAds && closeAdsFunc() - }, [closeAds]) - - useEffect(() => { - console.log("CSDN copyCode", copyCode) copyCode && copyCodeFunc() - }, [copyCode]) - - useEffect(() => { - console.log("CSDN autoOpenCode", autoOpenCode) autoOpenCode && autoOpenCodeFunc() - }, [autoOpenCode]) - - useEffect(() => { - console.log("CSDN closeFollow", closeFollow) closeFollow && followFunc() - }, [closeFollow]) - - useEffect(() => { - console.log("CSDN closeLoginModal", closeLoginModal) closeLoginModal && closeLoginModalFunc() - }, [closeLoginModal]) + closeRedirectModal && closeRedirectModalFunc() + }, [ + closeAds, + copyCode, + autoOpenCode, + closeFollow, + closeLoginModal, + closeRedirectModal + ]) /* 未登录复制代码 */ function copyCodeCssFunc() { - let style = document.createElement("style") - const css = document.createTextNode(` + const css = ` #content_views pre, #content_views pre code { -webkit-touch-callout: auto !important; @@ -55,9 +56,8 @@ const csdn = () => { -moz-user-select: auto !important; -ms-user-select: auto !important; user-select: auto !important; - }`) - style.appendChild(css) - document.head.appendChild(style) + }` + addCss(css) } function copyCodeFunc() { @@ -103,43 +103,36 @@ const csdn = () => { // 关闭广告 function closeAdsFunc() { - const style = document.createElement("style") - const css = document.createTextNode(` + const css = ` .toolbar-advert, #recommendAdBox, .adsbygoogle { display:none !important; - }`) - style.appendChild(css) - document.head.appendChild(style) + }` } // 解除 关注博主即可阅读全文的提示 const followFunc = () => { const readMore = document.querySelector(".btn-readmore") - const style = document.createElement("style") - const css = document.createTextNode(` - #article_content{ - height: auto !important; - } - .hide-article-box { - z-index: -1 !important; - }`) if (readMore) { - style.appendChild(css) - document.head.appendChild(style) + const css = ` + #article_content{ + height: auto !important; + } + .hide-article-box { + z-index: -1 !important; + }` + addCss(css) } } - // 隐藏登陆弹窗 + // 隐藏登录弹窗 function closeLoginModalFunc() { - const style = document.createElement("style") - const css = document.createTextNode(` + const css = ` .passport-login-container { display:none !important; - }`) - style.appendChild(css) - document.head.appendChild(style) + }` + addCss(css) } // 自动展开代码块 @@ -153,6 +146,8 @@ const csdn = () => { document.querySelectorAll(".hide-preCode-box") ) + const readallBox = document.querySelector(".readall_box") + pres.forEach((pre) => { pre.style.height = "unset" pre.style.maxHeight = "unset" @@ -160,6 +155,25 @@ const csdn = () => { presBox.forEach((box) => { box.style.display = "none" }) + + if (readallBox) { + const articleContent = + document.querySelector(".article_content") + + articleContent.style.height = "unset" + readallBox.style.display = "none" + } + } + + // 隐藏移动端跳转APP弹窗 + function closeRedirectModalFunc() { + const css = ` + .ios-shadowbox, + .feed-Sign-weixin, + .weixin-shadowbox { + display:none !important; + }` + addCss(css) } return
diff --git a/contents/zhihu.tsx b/contents/zhihu.tsx index 20e4203..6411f25 100644 --- a/contents/zhihu.tsx +++ b/contents/zhihu.tsx @@ -70,7 +70,7 @@ export default function zhihu() { }) } - // 隐藏登陆弹窗 + // 隐藏登录弹窗 function closeLoginModalFunc() { addCss(` .Modal-wrapper--transparent, diff --git a/package.json b/package.json index 454ddb6..9964a25 100644 --- a/package.json +++ b/package.json @@ -1,8 +1,8 @@ { "name": "code-box", "displayName": "codebox-免登录复制代码(CSDN/知乎/脚本之家/博客园)", - "version": "0.0.5", - "description": "本插件可以用于CSDN/知乎/脚本之家/博客园等网站,实现无需登录一键复制代码;支持选中代码;或者代码右上角按钮的一键复制;解除关注博主即可阅读全文提示;去除登陆弹窗.", + "version": "0.0.6", + "description": "本插件可以用于CSDN/知乎/脚本之家/博客园等网站,实现无需登录一键复制代码;支持选中代码;或者代码右上角按钮的一键复制;解除关注博主即可阅读全文提示;去除登录弹窗;去除跳转APP弹窗.", "author": "027xiguapi. <458813868@qq.com>", "scripts": { "dev": "plasmo dev",