From b946803645986d9e9455238d07d56cf60111c164 Mon Sep 17 00:00:00 2001 From: Coding Zhang <2291200076@qq.com> Date: Sat, 5 Feb 2022 18:20:36 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BD=BF=E7=94=A8=E4=BA=86=E4=B8=80=E4=B8=AA?= =?UTF-8?q?=E4=B8=8D=E5=A4=AA=E4=BC=98=E9=9B=85=E7=9A=84=E6=96=B9=E5=BC=8F?= =?UTF-8?q?=E5=AE=8C=E6=88=90directurl=E5=8A=9F=E8=83=BD=E5=90=88=E5=B9=B6?= =?UTF-8?q?=EF=BC=88=E5=BC=A0=E6=9D=BE=E7=9A=84=E4=BB=A3=E7=A0=81=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../shell-chrome/assets/js/direct-url/url.js | 101 ++++++++++++++++++ packages/shell-chrome/assets/js/popup.js | 17 +++ packages/shell-chrome/manifest.json | 5 +- packages/shell-chrome/popup.html | 10 ++ 4 files changed, 131 insertions(+), 2 deletions(-) create mode 100644 packages/shell-chrome/assets/js/direct-url/url.js diff --git a/packages/shell-chrome/assets/js/direct-url/url.js b/packages/shell-chrome/assets/js/direct-url/url.js new file mode 100644 index 0000000..39cb741 --- /dev/null +++ b/packages/shell-chrome/assets/js/direct-url/url.js @@ -0,0 +1,101 @@ +window.onload = function(){ + console.log("[BitDance extension] 学生助手插件 - 确认跳转页直接跳转模块加载成功"); + + chrome.storage.sync.get("linkOpen", ({ linkOpen })=>{ + if(linkOpen){ + let locHost = location.host,locHref = location.href; + + let methods = { + http(link, s = false) { + return link.startsWith("http") + ? link + : (s ? "https://" : "http://") + link; + }, + }; + + let RedirectPage = { + sites: { + "c.pc.qq.com": { + include: "middlem.html?pfurl=", + selector: "#url", + }, + "docs.qq.com": { + include: "scenario/link.html?url=", + selector: "span.url-src", + timeout: 500, + }, + "www.tianyancha.com": { + include: "security?target=", + selector: "div.security-link", + }, + "jump.bdimg.com": { + include: "safecheck/index?url=", + selector: "div.warning_info.fl>a", + }, + "jump2.bdimg.com": { + include: "safecheck/index?url=", + selector: "div.warning_info.fl>a", + }, + "www.chinaz.com": { + include: "go.shtml?url=", + selector: "div.link-bd__text", + }, + "www.douban.com": { + include: "link2/?url=", + selector: "a.btn-redir", + }, + "iphone.myzaker.com" : { + include: "zaker/link.php?", + selector: "a.btn", + }, + "www.itdaan.com": { + include: "link/", + selector: "a.c-footer-a1", + }, + "link.csdn.net": { + include: "?target=", + selector: "a.loading-btn", + timeout: 100, + }, + "link.zhihu.com":{ + include :"?target=", + selector : "a.button" + }, + "link.juejin.cn": { + include: "?target=", + selector: 'p[style="margin: 0px;"]', + }, + "www.jianshu.com": { + include: "go-wild?ac=2&url=", + selector: 'div[title^="http"], div[title^="www"]', + }, + // QQ、腾讯文档、天眼查、百度贴吧、站长之家、豆瓣、Zaker、开发者知识库、CSDN、知乎、掘金、简书etc... + }, + + redirect(host){ + let site = this.sites[host]; + if (site) { + let include = host + "/" + site.include; + if (locHref.includes(include) || site.match && locHref.match(site.match)) { + + let target = document.querySelector(site.selector); + if (target.length) location.replace(target.href || target.innerText); + + } + } + } + } + + locHref = locHref.split(RedirectPage.sites[locHost].include); + if(locHref){ + location.replace(decodeURIComponent(locHref[1])); + }else{ + //改进 + let target = document.querySelector(RedirectPage.sites[locHost].selector); + location.replace(target.href || target.innerText) + } + + //两种方案 默认不阻止重定向 阻止重定向直接跳转 + } + }) +} diff --git a/packages/shell-chrome/assets/js/popup.js b/packages/shell-chrome/assets/js/popup.js index 3e2c7d2..968f8b7 100644 --- a/packages/shell-chrome/assets/js/popup.js +++ b/packages/shell-chrome/assets/js/popup.js @@ -61,4 +61,21 @@ $(function() { }) }) }) + + // Direct Url + const btnDirectUrl = document.querySelector("#btnDirectUrl"); + chrome.storage.sync.get("linkOpen", ({ linkOpen }) => { + btnDirectUrl.checked = !linkOpen; + }); + + btnDirectUrl.addEventListener("change", () => { + chrome.storage.sync.set({ linkOpen: !btnDirectUrl.checked }); + // 获取当前tab窗口 + chrome.tabs.query({ active: true, currentWindow: true }, function (tabs) { + chrome.scripting.executeScript({ + target: { tabId: tabs[0].id }, + func: () => { window.location.reload() }, + }); + }); + }); }) diff --git a/packages/shell-chrome/manifest.json b/packages/shell-chrome/manifest.json index db3320b..f4adb1f 100644 --- a/packages/shell-chrome/manifest.json +++ b/packages/shell-chrome/manifest.json @@ -27,9 +27,10 @@ "js": [ "assets/js/lib/jquery.min.js", "assets/js/content.js", - "assets/js/advanced-search/content.js", + "assets/js/direct-url/url.js", "assets/js/mouse-effects/click.js", - "assets/js/mouse-effects/mouse-style.js" + "assets/js/mouse-effects/mouse-style.js", + "assets/js/advanced-search/content.js" ], "css": [], "run_at": "document_start" diff --git a/packages/shell-chrome/popup.html b/packages/shell-chrome/popup.html index 2865f04..51e4f98 100644 --- a/packages/shell-chrome/popup.html +++ b/packages/shell-chrome/popup.html @@ -38,6 +38,16 @@ +