// ==UserScript==
// @name 按 / 回到搜索框
// @namespace http://tampermonkey.net/
// @version 0.01.5
// @description 在浏览网站内容时,想进行新的一次搜索,又想回到搜索框输入新的搜索关键词,又不想动鼠标,难受!安装该脚本后,即可通过按下 ` / ` 键回到搜索框,进行输入。
// @author missiont522
// @license MIT
// @match https://*.baidu.com/*
// @match https://*.bing.com/*
// @match https://*.sogou.com/*
// @match https://*.taobao.com/*
// @include https://*.bilibili.com/*
// @match https://*.gf.qytechs.cn/*
// @match https://*.douban.com/*
// @match https://wht.im/*
// @match https://fanyi.sogou.com/*
// @match https://share.dmhy.org/*
// @match https://weibo.com/*
// @match https://www.shanbay.com/*
// @include /^https:\/\/(kns\.)?(w*\.)?cnki\.net.*$/
// @match https://juejin.cn/*
// @match https://www.douyin.com/*
// @match https://baike.baidu.com/*
// @grant GM_addStyle
// @todo siteList.queryS
// ==/UserScript==
const methods = () => {
console.log(`---${this.id},${this.name},'${this.query}'---`);
};
const doubanMeth = () => {
};
const weiboMeth = () => {};
const siteList = [
{ id: 0, name: "baidu", query: "#kw.s_ipt", methods },
{ id: 1, name: "google", query: "没有", methods },
{ id: 2, name: "bing", query: "#sb_form_q.b_searchbox", methods },
{ id: 3, name: "sogou", query: "#upquery.query", methods },
{ id: 4, name: "taobao", query: "#q.search-combobox-input", methods },
{ id: 5, name: "bilibili", query: ".nav-search-input", methods },
{ id: 6, name: "search.bilibili", query: ".search-input-el", methods },
{ id: 7, name: "greasyfork", query: '[type="search"]', methods },
{ id: 8, name: "douban", query: "#inp-query", methods: doubanMeth },
{ id: 9, name: "wht.im", query: "input.float-left.search-keyword", methods },
{ id: 10, name: "fanyi.sogou", query: "#trans-input", methods },
{ id: 11, name: "dmhy", query: "input#keyword", methods },
{ id: 12, name: "weibo", query: "input.woo-input-main", methods: weiboMeth },
{ id: 13, name: "shanbay", query: "#search .input", methods },
{ id: 14, name: "cnki", query: ".search-input", methods },
{ id: 14, name: "juejin", query: ".search-input", methods },
{ id: 15, name: "douyin", query: 'form input[type="text"]', methods },
{ id: 16, name: "baike.baidu", query: 'form input[type="text"]', methods },
{ id: 17, name: "tieba.baidu", query: '#wd1', methods },
// { id: 99, name: 'douyin', query: 'form input[type="search"]', methods,},
];
const addKeydownListener = (form, siteItem, recursion) => {
if (form) {
console.log(form);
document.documentElement.addEventListener("keydown", (evt) => {
if (evt.target === document.body && evt.key == "/") {
form.focus();
evt.preventDefault();
const tempv = form.value;
form.value = "";
form.value = tempv;
}
});
} else {
setTimeout(() => {
if (recursion < 5) {
recursion++;
const newForm = document.querySelector(siteItem.query);
addKeydownListener(newForm, siteItem, recursion);
} else {
console.log("element not found");
return;
}
}, 2000);
}
};
siteList.forEach((item) => {
if (!location.host.includes(item.name)) return;
const searchForm = document.querySelector(item.query);
addKeydownListener(searchForm, item, 0);
});