您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
A configurable script that maps keyboard keys (1, 2, 3, 4 and Space by default) to the answer buttons on Kahoot
- // ==UserScript==
- // @name PKaBoot
- // @namespace https://tampermonkey.net
- // @version 0.15
- // @description A configurable script that maps keyboard keys (1, 2, 3, 4 and Space by default) to the answer buttons on Kahoot
- // @author AshKmo
- // @match https://kahoot.it/*
- // @grant GM_getValue
- // @grant GM_setValue
- // @license MIT
- // ==/UserScript==
- (function(){
- var keybinds = GM_getValue('keys');
- if (keybinds == null) {
- keybinds = ['1', '2', '3', '4', 'Space'];
- }
- var tkb = keybinds.map(e => e.toUpperCase());
- var menuEl = document.createElement('div');
- menuEl.innerHTML = '<style>.pkbInKeys {display:inline-block;width:44px !important;color:white;}</style><p style="margin:0;">PKaBoot keys: <input type="text" class="pkbInKeys" style="background-color:rgb(208, 25, 55);"><input type="text" class="pkbInKeys" style="background-color:rgb(18, 96, 190);"><input type="text" class="pkbInKeys" style="background-color:rgb(199, 146, 0);"><input type="text" class="pkbInKeys" style="background-color:rgb(35, 126, 11);"><input type="text" class="pkbInKeys" style="background-color:black;"><button id="pkbSubmit" style="width: auto !important;">Apply</button></p>';
- menuEl.setAttribute('style', 'position:absolute;z-index:5;top:0px;left:15%;background-color:white;');
- var pkbInKeys = menuEl.querySelectorAll('.pkbInKeys');
- pkbInKeys.forEach((k,i) => (k.value = keybinds[i]));
- menuEl.querySelector('#pkbSubmit').onclick = () => {
- pkbInKeys.forEach((k,i) => (keybinds[i] = k.value));
- tkb = keybinds.map(e => e.toUpperCase());
- GM_setValue('keys', keybinds);
- };
- document.body.appendChild(menuEl);
- keybinds.map(k => k.toUpperCase());
- document.addEventListener('keydown', e => {
- var index = tkb.indexOf(e.key.toUpperCase());
- index = index == -1 ? tkb.indexOf(e.code.toUpperCase()) : index;
- try {
- document.querySelector(`[data-functional-selector="${index == 4 ? 'multi-select-submit-button' : 'answer-' + index}"]`).click();
- } catch {}
- });
- })();