Focus to the very first text input on a web page on any key press
目前為
// ==UserScript==
// @name FocusInput
// @namespace https://berkantkz.github.io
// @version 0.2
// @description Focus to the very first text input on a web page on any key press
// @author berkantkz
// @match *://*/*
// @homepage https://gist.github.com/berkantkz/cfa31157d8e54d821f1ddf345a93d36a
// @icon https://berkantkz.github.io/kz.png
// @grant none
// ==/UserScript==
(function() {
'use strict';
// feature to disable certain key detections on certain websites.
// keys array must be placed in order with the website index in hosts array.
// e.g. berkantkz.live is the 1st item in the array. so the keys that will be
// dismissed on that page must be in the 1st array in keys array which is "a"
// and "b" keys in the variables below.
var hosts = ["youtube.com", "berkantkz.live"];
var keys = [["j","k","l","t","c", "f", "m"], ["a","b"]];
var currentHost = window.location.host.replace('www.','');
document.onkeypress=function(k) {
console.log(k);
if (k.code !== "Space"){
if (hosts.includes(currentHost) && keys[hosts.indexOf(currentHost)].includes(k.key)) return;
if (document.activeElement.tagName == "INPUT" || document.activeElement.tagName == "TEXTAREA" || document.activeElement.contentEditable == "true") return;
var i;
var item = document.getElementsByTagName('input');
var l = document.getElementsByTagName('input').length;
var n;
for (i=0; i<l; i++) {
if (item[i].placeholder !== '' || item[i].value !== '' && item[i].type == "text" || item[i].value == "search") {
//console.log(item[i]);
n = item[i];
break;
}
}
if (n !== document.activeElement) {
n.value = "";
n.click();
n.focus();
}
}
};
})();