您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Genki Study Resources helper for https://sethclydesdale.github.io/
// ==UserScript== // @name Genki Study Resources Helper // @namespace http://tampermonkey.net/ // @version 0.2 // @description Genki Study Resources helper for https://sethclydesdale.github.io/ // @author You // @match https://sethclydesdale.github.io/* // @icon https://www.google.com/s2/favicons?domain=greatest.deepsurf.us // @grant none // ==/UserScript== (function() { 'use strict'; var inputs = document.getElementsByTagName('input'); for (const input of inputs){ if (input.className == "writing-zone-input"){ var button = document.createElement("button"); button.textContent = "?"; button.className = "check-answers"; input.parentNode.insertBefore(button, input.nextSibling); input.addEventListener("keydown", (event) => { if (event.key == "Enter") { checkAnswers(input.parentNode); } }); } } let buttons = document.getElementsByTagName("button"); for (const button of buttons){ if (button.className == "check-answers"){ button.addEventListener("click", function() { checkAnswers(button.parentNode); }); } } function checkAnswers(parent_element){ let input = Array.from(parent_element.children).filter(function (e) { return e.nodeName=="INPUT"})[0] let answers = [] let answer_values = Object.getOwnPropertyNames(input.dataset).filter(e => e.includes("answer")) let is_answer_correct = false; for (let answer_value of answer_values){ let answer = input.dataset[answer_value]; if (answer ==input.value){ is_answer_correct = true; } answers.push(answer); } let alert_text = ""; if (is_answer_correct){ alert_text += "Correct"; }else{ alert_text+="Incorrect </br>" alert_text+="Current: "+input.value+"</br>"; for (let answer of answers){ let formatted_answer = "" for(let i=0;i<answer.length;i++){ if (input.value[i] == answer[i]){ formatted_answer+="<span style='color: green;'>"+answer[i]+"</span>" }else{ formatted_answer+="<span style='color: red;'>"+answer[i]+"</span>" } } alert_text+="Correct: "+formatted_answer+"</br>"; } } let res_element = document.createElement("span") res_element.innerHTML = alert_text parent_element.parentElement.parentElement.insertBefore(res_element,parent_element.parentElement.nextSibling) let close_button = document.createElement("button") close_button.textContent="close" close_button.addEventListener("click", function(){ res_element.remove(); this.remove(); }) document.addEventListener('keydown', (event) => { if (event.key == "Escape"){ res_element.remove(); close_button.remove(); } }); res_element.parentElement.insertBefore(close_button,res_element.nextSibling) } })();