// ==UserScript==
// @name 按 / 回到搜索框
// @version 0.2.4
// @description 想要输入新的搜索内容时,按下 ` / ` 键,光标焦点就会自动跳转到搜索框中,接下来就可以愉快的输入新的搜索内容啦!
// @author missiont522
// @license MIT
// @icon https://www.bing.com/sa/simg/favicon-trans-bg-blue-mg.ico
// @match *://*.baidu.com/*
// @match *://*.sogou.com/*
// @match *://*.taobao.com/*
// @match *://*.tmall.com/*
// @match *://*.bilibili.com/*
// @match *://*.greasyfork.org/*
// @match *://*.douban.com/*
// @match *://fanyi.sogou.com/*
// @match *://share.dmhy.org/*
// @match *://*.weibo.com/*
// @match *://*.shanbay.com/*
// @match *://*.jd.com/*
// @match *://*.cnki.net/*
// @match *://developers.weixin.qq.com/*
// @match *://*.ixigua.com/*
// @match *://kimi.moonshot.cn/*
// @match *://*.toutiao.com/*
// @match *://*.xiaohongshu.com/*
// @namespace http://tampermonkey.net/
// ==/UserScript==
const siteList = [
{ id: 0, name: "baidu", query: "#kw" },
// { id: 1, name: "google", query: "没有" },
{ id: 3, name: "sogou", query: `#upquery.query` },
{
id: 4,
name: ["taobao", "tmall", "jd", "bilibili"],
query: `[accesskey="s"]`,
},
{
id: 5,
name: "search.bilibili",
query: `.search-input-el`,
},
{
id: 7,
name: ["greasyfork", "toutiao", "ixigua", "developers.weixin.qq.com"],
query: '[type="search"]',
},
{ id: 8, name: "douban", query: "#inp-query" },
{ id: 10, name: "fanyi.sogou", query: "#trans-input" },
{ id: 11, name: "dmhy", query: "input#keyword" },
{ id: 12, name: "weibo", query: "input.woo-input-main" },
{ id: 13, name: "shanbay", query: "#search .input" },
{ id: 14, name: ["cnki", "xiaohongshu"], query: ".search-input" },
{ id: 15, name: "baike.baidu", query: ".searchInput" },
{ id: 16, name: "tieba.baidu", query: "#wd1" },
{ id: 17, name: "kimi.moonshot", query: `div[contenteditable="true"]` },
// { id: 99, name: '', query: ``,},
];
siteList.forEach((item) => {
const names = Array.isArray(item.name) ? item.name : [item.name];
const isMatched = names.some((name) => location.host.includes(name));
if (!isMatched) {
return;
}
/** @type {HTMLInputElement} */
let form = document.querySelector(item.query);
// console.log("|", item.name, form);
document.documentElement.addEventListener("keydown", (event) => {
if (event.key !== "/") return;
if (!form) {
form = document.querySelector(item.query);
}
if (document.activeElement === form) {
return;
}
form.focus();
event.preventDefault();
if (form.value) {
const contentLen = form.value.length;
form.setSelectionRange(contentLen, contentLen);
}
});
});