diff --git a/packages/shell-chrome/assets/js/advanced-search/content-helper.js b/packages/shell-chrome/assets/js/advanced-search/content-helper.js new file mode 100644 index 0000000..ec65e06 --- /dev/null +++ b/packages/shell-chrome/assets/js/advanced-search/content-helper.js @@ -0,0 +1,118 @@ +console.log("[BitDance extension] 学生助手插件 - 自动搜索模块加载成功"); + +// refer: https://www.cnblogs.com/chen-lhx/p/5198612.html +// $.extend({ +// getUrlVars: function () { +// var vars = [], hash; +// var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&'); +// for (var i = 0; i < hashes.length; i++) { +// hash = hashes[i].split('='); +// vars.push(hash[0]); +// vars[hash[0]] = hash[1]; +// } +// return vars; +// }, +// getUrlVar: function (name) { +// return $.getUrlVars()[name]; +// } +// }); +// let transText = $.getUrlVar('__bitdance_extension__'); + +window.onload = () => { + + /** + * 先处理不需要传入参数,只需要点击按钮的情况,然后再处理需要传入参数的情况 + */ + + /** + * ********************************************************************************************** + * + * 不需要传入参数情况 + * + * ********************************************************************************************** + */ + switch (window.location.host) { + + case "fanyi.qq.com": // 腾讯翻译君 + document.getElementsByClassName("language-translate-button")[0].click() + // $(".language-translate-button")[0].click() + clearUrlParams(); + return; + + } + + /** + * ********************************************************************************************** + * + * 需要传入参数的情况 + * + * ********************************************************************************************** + */ + + /** + * 定义函数 + */ + // 获取 URL 参数 + function getUrlVar(name) { + var vars = [], hash; + var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&'); + for (var i = 0; i < hashes.length; i++) { + hash = hashes[i].split('='); + vars.push(hash[0]); + vars[hash[0]] = hash[1]; + } + return decodeURIComponent(vars[name] ?? ""); + } + + // 从URL参数中剔除指定参数 + function clearUrlParams() { + // 参数获取完成后,清除页面参数 + // History.replaceState() refer: https://developer.mozilla.org/zh-CN/docs/Web/API/History/replaceState + // history.replaceState({}, "", "/"); + let urlParams = (location.search + "&").replace(/__bitdance_extension__=.*?\&/, ""); // 在最后补上一个 & ,然后替换掉 __bitdance_extension__=xxx& + urlParams = urlParams.substring(0, urlParams.length - 1); // 去掉最后一个 & + history.replaceState({}, "", location.pathname + urlParams); + } + + /** + * 开始代码逻辑 + */ + // 获取参数 + let transText = getUrlVar('__bitdance_extension__') + + console.log(transText); + + // 如果没有传递参数,那么就不执行 + if (!transText || transText.trim() == "" || transText == "undefined") + return + + switch (window.location.host) { + default: + break; + + case "baike.baidu.com": // 百度百科 + document.getElementById("query").value = transText + document.getElementById("search").click() + // 跳转新页面,所以不需要清除页面参数 + break; + + case "fanyi.youdao.com": // 有道翻译 + document.getElementsByTagName("textarea")[0].value = transText + document.getElementById("transMachine").click() + clearUrlParams(); + break; + + case "www.cnki.net": // 中国知网 + document.getElementById("txt_SearchText").value = transText + document.querySelector(".search-btn").click() + break; + + case "qikan.cqvip.com": // 维普期刊 + document.getElementById("searchKeywords").value = transText + document.getElementById("btnSearch").click() + break; + + } + + console.log("[BitDance extension] 学生助手插件 - 自动搜索模块完成搜索 [" + transText + "]"); +} diff --git a/packages/shell-chrome/assets/js/advanced-search/content-helper/baike.baidu.com.js b/packages/shell-chrome/assets/js/advanced-search/content-helper/baike.baidu.com.js deleted file mode 100644 index 71775ee..0000000 --- a/packages/shell-chrome/assets/js/advanced-search/content-helper/baike.baidu.com.js +++ /dev/null @@ -1,28 +0,0 @@ -console.log("[BitDance extension] 学生助手插件 - 百度百科自动搜索模块加载成功"); - -// refer: https://www.cnblogs.com/chen-lhx/p/5198612.html -$.extend({ - getUrlVars: function () { - var vars = [], hash; - var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&'); - for (var i = 0; i < hashes.length; i++) { - hash = hashes[i].split('='); - vars.push(hash[0]); - vars[hash[0]] = hash[1]; - } - return vars; - }, - getUrlVar: function (name) { - return $.getUrlVars()[name]; - } -}); - -window.onload = () => { - let transText = $.getUrlVar('__bitdance_extension__'); - if (!transText || transText.trim() == "") return - transText = decodeURIComponent(transText) - console.log("[BitDance extension] 学生助手插件 - 百度百科自动搜索模块 - 模块文本为:", transText); - - document.getElementById("query").value = transText - document.getElementById("search").click() -} diff --git a/packages/shell-chrome/assets/js/advanced-search/content-helper/fanyi.qq.com.js b/packages/shell-chrome/assets/js/advanced-search/content-helper/fanyi.qq.com.js deleted file mode 100644 index b8bf018..0000000 --- a/packages/shell-chrome/assets/js/advanced-search/content-helper/fanyi.qq.com.js +++ /dev/null @@ -1,4 +0,0 @@ -console.log("[BitDance extension] 学生助手插件 - 腾讯翻译君自动点击翻译模块加载成功"); -window.onload = () => { - $(".language-translate-button")[0].click() -} diff --git a/packages/shell-chrome/assets/js/advanced-search/content-helper/fanyi.youdao.com.js b/packages/shell-chrome/assets/js/advanced-search/content-helper/fanyi.youdao.com.js deleted file mode 100644 index 97504b3..0000000 --- a/packages/shell-chrome/assets/js/advanced-search/content-helper/fanyi.youdao.com.js +++ /dev/null @@ -1,32 +0,0 @@ -console.log("[BitDance extension] 学生助手插件 - 有道翻译自动填入模块加载成功"); - -// refer: https://www.cnblogs.com/chen-lhx/p/5198612.html -$.extend({ - getUrlVars: function () { - var vars = [], hash; - var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&'); - for (var i = 0; i < hashes.length; i++) { - hash = hashes[i].split('='); - vars.push(hash[0]); - vars[hash[0]] = hash[1]; - } - return vars; - }, - getUrlVar: function (name) { - return $.getUrlVars()[name]; - } -}); - -window.onload = () => { - let transText = $.getUrlVar('__bitdance_extension__'); - if (!transText || transText.trim() == "") return - transText = decodeURIComponent(transText) - console.log("[BitDance extension] 学生助手插件 - 有道翻译自动填入模块 - 翻译文本为:", transText); - - document.getElementsByTagName("textarea")[0].value = transText - document.getElementById("transMachine").click() - - // 参数获取完成后,清除掉页面参数 - // History.replaceState() refer: https://developer.mozilla.org/zh-CN/docs/Web/API/History/replaceState - history.replaceState({}, "", "/"); -} diff --git a/packages/shell-chrome/assets/js/advanced-search/content-helper/qikan.cqvip.com.js b/packages/shell-chrome/assets/js/advanced-search/content-helper/qikan.cqvip.com.js deleted file mode 100644 index 2e5067c..0000000 --- a/packages/shell-chrome/assets/js/advanced-search/content-helper/qikan.cqvip.com.js +++ /dev/null @@ -1,28 +0,0 @@ -console.log("[BitDance extension] 学生助手插件 - 维普期刊自动搜索模块加载成功"); - -// refer: https://www.cnblogs.com/chen-lhx/p/5198612.html -$.extend({ - getUrlVars: function () { - var vars = [], hash; - var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&'); - for (var i = 0; i < hashes.length; i++) { - hash = hashes[i].split('='); - vars.push(hash[0]); - vars[hash[0]] = hash[1]; - } - return vars; - }, - getUrlVar: function (name) { - return $.getUrlVars()[name]; - } -}); - -window.onload = () => { - let transText = $.getUrlVar('__bitdance_extension__'); - if (!transText || transText.trim() == "") return - transText = decodeURIComponent(transText) - console.log("[BitDance extension] 学生助手插件 - 维普期刊自动搜索模块 - 模块文本为:", transText); - - document.getElementById("searchKeywords").value = transText - document.getElementById("btnSearch").click() -} diff --git a/packages/shell-chrome/assets/js/advanced-search/content-helper/www.cnki.net.js b/packages/shell-chrome/assets/js/advanced-search/content-helper/www.cnki.net.js deleted file mode 100644 index 35f00a4..0000000 --- a/packages/shell-chrome/assets/js/advanced-search/content-helper/www.cnki.net.js +++ /dev/null @@ -1,28 +0,0 @@ -console.log("[BitDance extension] 学生助手插件 - 中国知网自动搜索模块加载成功"); - -// refer: https://www.cnblogs.com/chen-lhx/p/5198612.html -$.extend({ - getUrlVars: function () { - var vars = [], hash; - var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&'); - for (var i = 0; i < hashes.length; i++) { - hash = hashes[i].split('='); - vars.push(hash[0]); - vars[hash[0]] = hash[1]; - } - return vars; - }, - getUrlVar: function (name) { - return $.getUrlVars()[name]; - } -}); - -window.onload = () => { - let transText = $.getUrlVar('__bitdance_extension__'); - if (!transText || transText.trim() == "") return - transText = decodeURIComponent(transText) - console.log("[BitDance extension] 学生助手插件 - 中国知网自动搜索模块 - 模块文本为:", transText); - - document.getElementById("txt_SearchText").value = transText - document.querySelector(".search-btn").click() -} diff --git a/packages/shell-chrome/manifest.json b/packages/shell-chrome/manifest.json index 16c52ef..17c3f31 100644 --- a/packages/shell-chrome/manifest.json +++ b/packages/shell-chrome/manifest.json @@ -49,52 +49,15 @@ }, { "matches": [ - "*://fanyi.qq.com/*" - ], - "js": [ - "assets/js/lib/jquery.min.js", - "assets/js/advanced-search/content-helper/fanyi.qq.com.js" - ], - "run_at": "document_start" - }, - { - "matches": [ - "*://fanyi.youdao.com/*" - ], - "js": [ - "assets/js/lib/jquery.min.js", - "assets/js/advanced-search/content-helper/fanyi.youdao.com.js" - ], - "run_at": "document_start" - }, - { - "matches": [ - "*://www.cnki.net/*" - ], - "js": [ - "assets/js/lib/jquery.min.js", - "assets/js/advanced-search/content-helper/www.cnki.net.js" - ], - "run_at": "document_start" - }, - { - "matches": [ + "*://fanyi.qq.com/*", + "*://baike.baidu.com/*", + "*://fanyi.youdao.com/*", + "*://www.cnki.net/*", "*://qikan.cqvip.com/*", "*://lib.cqvip.com/*" ], "js": [ - "assets/js/lib/jquery.min.js", - "assets/js/advanced-search/content-helper/qikan.cqvip.com.js" - ], - "run_at": "document_start" - }, - { - "matches": [ - "*://baike.baidu.com/*" - ], - "js": [ - "assets/js/lib/jquery.min.js", - "assets/js/advanced-search/content-helper/baike.baidu.com.js" + "assets/js/advanced-search/content-helper.js" ], "run_at": "document_start" }