Disable Enter on Wrong Answer

Blocks proceeding with the enter key when getting an answer wrong.

目前为 2022-04-18 提交的版本。查看 最新版本

// ==UserScript==
// @name         Disable Enter on Wrong Answer
// @namespace    http://tampermonkey.net/
// @version      1.0
// @description  Blocks proceeding with the enter key when getting an answer wrong.
// @author       panda-byte
// @license      MIT
// @match        https://www.kaniwani.com/*
// @icon         https://www.google.com/s2/favicons?domain=kaniwani.com
// @grant        none
// ==/UserScript==


(function() {
    'use strict';

    let inReviewSession = false;
    let box = null;
    const red = 'rgb(226, 50, 91)';

    window.addEventListener('keydown', event => {
        if (event.key === 'Enter' && inReviewSession && box !== null
                && window.getComputedStyle(box).backgroundColor
                   === red) {
            event.stopPropagation();
        }
    }, true);

    // check if user entered review session
    setInterval(() => {
        const hasSessionStarted = document.URL.endsWith('/reviews/session');

        if (hasSessionStarted === inReviewSession) return;

        if (hasSessionStarted) {
            // try to find answer element
            const findAnswerElementInterval = setInterval(() => {
                const answer = document.getElementById('answer');

                if (answer === null) return;

                clearInterval(findAnswerElementInterval);
                box = answer.parentElement;
            }, 100);
        } else {
            box = null;
        }

        inReviewSession = hasSessionStarted;
    }, 200);
})();