// ==UserScript== // @name Mturk Radio Keybinds // @namespace https://gist.github.com/Kadauchi // @version 2.1.1 // @description Keybinds to select radios // @author Kadauchi // @icon http://i.imgur.com/oGRQwPN.png // @include /^https://(www\.mturkcontent|s3\.amazonaws)\.com/ // @grant GM_getValue // @grant GM_setValue // @downloadURL none // ==/UserScript== document.body.insertAdjacentHTML( `afterbegin`, `
` + `` + `` + `` + `` + `` + `
` ); const numbers = document.getElementById(`numbers`); const letters = document.getElementById(`letters`); const autosubmit = document.getElementById(`autosubmit`); numbers.addEventListener(`change`, function (event) { GM_setValue(`numbers`, numbers.checked); }); letters.addEventListener(`change`, function (event) { GM_setValue(`letters`, letters.checked); }); autosubmit.addEventListener(`change`, function (event) { GM_setValue(`autosubmit`, autosubmit.checked); }); window.addEventListener(`keydown`, function (event) { const key = event.key; if (numbers.checked && key.match(/[1-9]/)) { const radio = document.querySelectorAll(`[type="radio"]`)[key - 1]; if (radio) radio.click(); if (autosubmit.checked) document.querySelector(`[type="submit"]`).click(); } if (letters.checked && key.match(/z|x|c|v|b|n|m|,|\./)) { console.log(key); const convert = { 'z': 0, 'x': 1, 'c': 2, 'v': 3, 'b': 4, 'n': 5, 'm': 6, ',': 7, '.': 8 }; const radio = document.querySelectorAll(`[type="radio"]`)[convert[key]]; if (radio) radio.click(); if (autosubmit.checked) document.querySelector(`[type="submit"]`).click(); } if (key.match(/Enter/)) { document.querySelector(`[type="submit"]`).click(); } }); window.focus();