mirror of
https://gitee.com/bitdance-team/chrome-extension
synced 2025-10-07 16:35:15 +08:00
使用了一个不太优雅的方式完成directurl功能合并(张松的代码)
This commit is contained in:
101
packages/shell-chrome/assets/js/direct-url/url.js
Normal file
101
packages/shell-chrome/assets/js/direct-url/url.js
Normal file
@@ -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)
|
||||
}
|
||||
|
||||
//两种方案 默认不阻止重定向 阻止重定向直接跳转
|
||||
}
|
||||
})
|
||||
}
|
@@ -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() },
|
||||
});
|
||||
});
|
||||
});
|
||||
})
|
||||
|
@@ -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"
|
||||
|
@@ -38,6 +38,16 @@
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="click-per">
|
||||
<span>确认访问页自动跳转</span>
|
||||
<div class="button">
|
||||
<input type="checkbox" id="btnDirectUrl" class="checkbox" />
|
||||
<div class="knobs"></div>
|
||||
<div class="layer"></div>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
Reference in New Issue
Block a user