NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name TEL 快捷键 // @namespace http://tampermonkey.net/ // @version 0.1 // @description TEL + 快捷键 // @author The King of Crap // @match https://tel.tigermed.net/* // @icon https://tel.tigermed.net/moodle/theme/image.php/clean/theme/1590472767/favicon // @license MIT // @grant GM_getValue // @grant GM_setValue // ==/UserScript== /* 使用指南:使用如下快捷键。Q键和R键需要打开两个页面配合使用。 ------------------------------------------------------------ 快捷键: 数字键1:模拟鼠标对选项a进行点击。 数字键2:模拟鼠标对选项b进行点击。 数字键3:模拟鼠标对选项c进行点击。 数字键4:模拟鼠标对选项d进行点击。 数字键5:模拟鼠标对选项e进行点击。 数字键6:模拟鼠标对选项f进行点击。 数字键7:模拟鼠标对选项g进行点击。 `~(在数字键1左侧):单选题点击最后一项选项;多选题点击全部选项。 空格:点击下一题或者所有可能的确认选项。 Q:将题目复制到剪切板。 R:直接在当前页面搜索题目,并跳转;题目内容由Q键复制得到。 ------------------------------------------------------------ */ (function () { document.querySelector("html").addEventListener('keydown', function (e) { /* 快捷键分配为:R */ if (e.keyCode == 82) { var text = GM_getValue("question"); if (!window.find(text, false)) { window.find(text, false, true); } } function trim(s) { return (s || '').replace(/^\s+|\s+$/g, ''); } /* 快捷键分配为:Q */ if (e.keyCode == 81) { text = document.querySelector(".qtext").innerText; text = trim(text); if (text.indexOf(":") > 0) { text = text.substr(0, text.indexOf(":")); } else if (text.indexOf("?") > 0) { text = text.substr(0, text.indexOf("?")); } GM_setValue("question", text); let transfer = document.createElement('input'); document.body.appendChild(transfer); transfer.value = text; transfer.focus(); transfer.select(); if (document.execCommand('copy')) { document.execCommand('copy'); } transfer.blur(); console.log('复制成功'); document.body.removeChild(transfer); } /* 快捷键分配为:Space Bar */ if (e.keyCode == 32) { if (document.querySelector("input[value='Next page']")) { document.querySelector("input[value='Next page']").click(); } else if (document.querySelector("input[value='Finish attempt ...']")) { document.querySelector("input[value='Finish attempt ...']").click(); } else if (document.querySelector("input[value='Submit all and finish'][type='button']")) { document.querySelector("input[value='Submit all and finish'][type='button']").click(); } else if (document.querySelector("input[value='Submit all and finish']")) { document.querySelector("input[value='Submit all and finish']").click(); } } /* 快捷键分配为:1 */ if (e.keyCode == 49) { if (document.querySelector("input[type='radio'][id$=answer0]")) { document.querySelector("input[type='radio'][id$=answer0]").click(); } else if (document.querySelector("input[type='checkbox'][id$=choice0]")) { document.querySelector("input[type='checkbox'][id$=choice0]").click(); } } /* 快捷键分配为:2 */ if (e.keyCode == 50) { if (document.querySelector("input[type='radio'][id$=answer1]")) { document.querySelector("input[type='radio'][id$=answer1]").click(); } else if (document.querySelector("input[type='checkbox'][id$=choice1]")) { document.querySelector("input[type='checkbox'][id$=choice1]").click(); } } /* 快捷键分配为:3 */ if (e.keyCode == 51) { if (document.querySelector("input[type='radio'][id$=answer2]")) { document.querySelector("input[type='radio'][id$=answer2]").click(); } else { document.querySelector("input[type='checkbox'][id$=choice2]").click(); } } /* 快捷键分配为:4 */ if (e.keyCode == 52) { if (document.querySelector("input[type='radio'][id$=answer3]")) { document.querySelector("input[type='radio'][id$=answer3]").click(); } else if (document.querySelector("input[type='checkbox'][id$=choice3]")) { document.querySelector("input[type='checkbox'][id$=choice3]").click(); } } /* 快捷键分配为:5 */ if (e.keyCode == 53) { if (document.querySelector("input[type='radio'][id$=answer4]")) { document.querySelector("input[type='radio'][id$=answer4]").click(); } else if (document.querySelector("input[type='checkbox'][id$=choice4]")) { document.querySelector("input[type='checkbox'][id$=choice4]").click(); } } /* 快捷键分配为:6 */ if (e.keyCode == 54) { if (document.querySelector("input[type='radio'][id$=answer5]")) { document.querySelector("input[type='radio'][id$=answer5]").click(); } else if (document.querySelector("input[type='checkbox'][id$=choice5]")) { document.querySelector("input[type='checkbox'][id$=choice5]").click(); } } /* 快捷键分配为:7 */ if (e.keyCode == 55) { if (document.querySelector("input[type='radio'][id$=answer6]")) { document.querySelector("input[type='radio'][id$=answer6]").click(); } else if (document.querySelector("input[type='checkbox'][id$=choice6]")) { document.querySelector("input[type='checkbox'][id$=choice6]").click(); } } /* 快捷键分配为:`~ */ if (e.keyCode == 192) { if (document.querySelector("input[type='radio'][id$=answer0]")) { for (var i = 0; i < 10; i++) { if (document.querySelector("input[type='radio'][id$=answer" + i + "]")) { document.querySelector("input[type='radio'][id$=answer" + i + "]").click(); } else { break; } } } else if (document.querySelector("input[type='checkbox'][id$=choice0]")) { for (i = 0; i < 10; i++) { if (document.querySelector("input[type='checkbox'][id$=choice" + i + "]")) { document.querySelector("input[type='checkbox'][id$=choice" + i + "]").click(); } else { break; } } } } }); })(); /* Keycode 代码表: keycode 0 = keycode 1 = keycode 2 = keycode 3 = keycode 4 = keycode 5 = keycode 6 = keycode 7 = keycode 8 = BackSpace keycode 9 = Tab keycode 10 = keycode 11 = keycode 12 = Clear keycode 13 = Enter keycode 14 = keycode 15 = keycode 16 = Shift_L keycode 17 = Control_L keycode 18 = Alt_L keycode 19 = Pause keycode 20 = Caps_Lock keycode 21 = keycode 22 = keycode 23 = keycode 24 = keycode 25 = keycode 26 = keycode 27 = Esc Escape keycode 28 = keycode 29 = keycode 30 = keycode 31 = keycode 32 = Space keycode 33 = Page Up keycode 34 = Page Down keycode 35 = End keycode 36 = Home keycode 37 = Left Arrow keycode 38 = Up Arrow keycode 39 = Right Arrow keycode 40 = Down Arrow keycode 41 = Select keycode 42 = Print keycode 43 = Execute keycode 44 = keycode 45 = Insert keycode 46 = Delete keycode 47 = Help keycode 48 = 0 ) keycode 49 = 1 ! keycode 50 = 2 @ keycode 51 = 3 # keycode 52 = 4 $ keycode 53 = 5 % keycode 54 = 6 ^ keycode 55 = 7 & keycode 56 = 8 * keycode 57 = 9 ( keycode 58 = keycode 59 = keycode 60 = keycode 61 = keycode 62 = keycode 63 = keycode 64 = keycode 65 = a A keycode 66 = b B keycode 67 = c C keycode 68 = d D keycode 69 = e E keycode 70 = f F keycode 71 = g G keycode 72 = h H keycode 73 = i I keycode 74 = j J keycode 75 = k K keycode 76 = l L keycode 77 = m M keycode 78 = n N keycode 79 = o O keycode 80 = p P keycode 81 = q Q keycode 82 = r R keycode 83 = s S keycode 84 = t T keycode 85 = u U keycode 86 = v V keycode 87 = w W keycode 88 = x X keycode 89 = y Y keycode 90 = z Z keycode 91 = keycode 92 = keycode 93 = keycode 94 = keycode 95 = keycode 96 = KP_0 keycode 97 = KP_1 keycode 98 = KP_2 keycode 99 = KP_3 keycode 100 = KP_4 keycode 101 = KP_5 keycode 102 = KP_6 keycode 103 = KP_7 keycode 104 = KP_8 keycode 105 = KP_9 keycode 106 = KP_* KP_Multiply keycode 107 = KP_+ KP_Add keycode 108 = KP_Enter KP_Separator keycode 109 = KP_- KP_Subtract keycode 110 = KP_. KP_Decimal keycode 111 = KP_/ KP_Divide keycode 112 = F1 keycode 113 = F2 keycode 114 = F3 keycode 115 = F4 keycode 116 = F5 keycode 117 = F6 keycode 118 = F7 keycode 119 = F8 keycode 120 = F9 keycode 121 = F10 keycode 122 = F11 keycode 123 = F12 keycode 124 = F13 keycode 125 = F14 keycode 126 = F15 keycode 127 = F16 keycode 128 = F17 keycode 129 = F18 keycode 130 = F19 keycode 131 = F20 keycode 132 = F21 keycode 133 = F22 keycode 134 = F23 keycode 135 = F24 keycode 136 = Num_Lock keycode 137 = Scroll_Lock keycode 138 = keycode 139 = keycode 140 = keycode 141 = keycode 142 = keycode 143 = keycode 144 = keycode 145 = keycode 146 = keycode 147 = keycode 148 = keycode 149 = keycode 150 = keycode 151 = keycode 152 = keycode 153 = keycode 154 = keycode 155 = keycode 156 = keycode 157 = keycode 158 = keycode 159 = keycode 160 = keycode 161 = keycode 162 = keycode 163 = keycode 164 = keycode 165 = keycode 166 = keycode 167 = keycode 168 = keycode 169 = keycode 170 = keycode 171 = keycode 172 = keycode 173 = keycode 174 = keycode 175 = keycode 176 = keycode 177 = keycode 178 = keycode 179 = keycode 180 = keycode 181 = keycode 182 = keycode 183 = keycode 184 = keycode 185 = keycode 186 = keycode 187 = =+ keycode 188 = ,< keycode 189 = -_ keycode 190 = .> keycode 191 = /? keycode 192 = `~ keycode 193 = keycode 194 = keycode 195 = keycode 196 = keycode 197 = keycode 198 = keycode 199 = keycode 200 = keycode 201 = keycode 202 = keycode 203 = keycode 204 = keycode 205 = keycode 206 = keycode 207 = keycode 208 = keycode 209 = keycode 210 = plusminus hyphen macron keycode 211 = keycode 212 = copyright registered keycode 213 = guillemotleft guillemotright keycode 214 = masculine ordfeminine keycode 215 = ae AE keycode 216 = cent yen keycode 217 = questiondown exclamdown keycode 218 = onequarter onehalf threequarters keycode 219 = [{ keycode 220 = \| keycode 221 = ]} keycode 222 = '" keycode 223 = keycode 224 = keycode 225 = keycode 226 = keycode 227 = multiply division keycode 228 = acircumflex Acircumflex keycode 229 = ecircumflex Ecircumflex keycode 230 = icircumflex Icircumflex keycode 231 = ocircumflex Ocircumflex keycode 232 = ucircumflex Ucircumflex keycode 233 = ntilde Ntilde keycode 234 = yacute Yacute keycode 235 = oslash Ooblique keycode 236 = aring Aring keycode 237 = ccedilla Ccedilla keycode 238 = thorn THORN keycode 239 = eth ETH keycode 240 = diaeresis cedilla currency keycode 241 = agrave Agrave atilde Atilde keycode 242 = egrave Egrave keycode 243 = igrave Igrave keycode 244 = ograve Ograve otilde Otilde keycode 245 = ugrave Ugrave keycode 246 = adiaeresis Adiaeresis keycode 247 = ediaeresis Ediaeresis keycode 248 = idiaeresis Idiaeresis keycode 249 = odiaeresis Odiaeresis keycode 250 = udiaeresis Udiaeresis keycode 251 = ssharp question backslash keycode 252 = asciicircum degree keycode 253 = 3 sterling keycode 254 = Mode_switch */