您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Focus to search or a certain text input with forward slash (/) key similar to YouTube.
当前为
- // ==UserScript==
- // @name Focus Input Keybind
- // @namespace https://github.com/kittenparry/
- // @version 1.1
- // @description Focus to search or a certain text input with forward slash (/) key similar to YouTube.
- // @author kittenparry
- // @match *://*/*
- // @grant none
- // @license MIT License
- // ==/UserScript==
- /* LIST:
- * rarbg.to
- * reddit.com
- * twitch.tv
- * wiktionary.org
- */
- /* CHANGELOG:
- * 1.1: +wiktionary.org
- * 1.0: initial
- */
- check_focus_input_keybind = (e, val, special) => {
- var type = e.target.getAttribute('type');
- var tag = e.target.tagName.toLowerCase();
- if (type != 'text' && tag != 'textarea') {
- if (e.keyCode == 191) { // /
- if (special == 'reddit') {
- document.getElementById(val).firstChild.focus();
- } else if (special == 'selector') {
- document.querySelector(val).focus();
- } else {
- document.getElementById(val).focus();
- }
- }
- }
- };
- /* probably need a better way than simply .includes()
- * inid: id or other value of the input element
- * inspcl: when inid isn't an id (eg. a class) to specify it
- */
- var current_url = window.location.href;
- if (current_url.includes('rarbg.to')) {
- var inid = 'searchinput';
- } else if (current_url.includes('reddit.com')) {
- var inid = 'search';
- var inspcl = 'reddit';
- } else if (current_url.includes('twitch.tv')) {
- var inid = 'textarea[class="tw-block tw-border-radius-medium tw-font-size-6 tw-full-width tw-textarea tw-textarea--no-resize"]';
- var inspcl = 'selector';
- } else if (current_url.includes('wiktionary.org')) {
- var inid = 'searchInput';
- }
- if (inid != undefined) {
- try {
- // pass an empty string for input special so to not repeat the event listener code similar to other script
- if (!inspcl) {
- var inspcl = '';
- }
- // keyup instead of keydown to prevent the initial entry of a forward slash to input
- window.addEventListener('keyup', (e) => check_focus_input_keybind(e, inid, inspcl), false);
- } catch (e) {}
- }