Skip to content

Instantly share code, notes, and snippets.

@book000
Created November 28, 2020 04:31
Show Gist options
  • Save book000/d2ec1ee8aee967bc47337a5e1e659263 to your computer and use it in GitHub Desktop.
Save book000/d2ec1ee8aee967bc47337a5e1e659263 to your computer and use it in GitHub Desktop.
IT Passport Kakomon doujyo keyboard controller
// ==UserScript==
// @name IT Passport Kakomon doujyo keyboard controller
// @namespace https://gist.github.com/book000
// @version 0.0.1
// @description ITパスポート試験ドットコム「ITパスポート過去問道場」をキーボード操作可能とするスクリプト
// @author book000
// @match https://www.itpassportsiken.com/ipkakomon.php
// @grant none
// ==/UserScript==
/*
* ITパスポート試験ドットコム「ITパスポート過去問道場」でそれぞれ以下の機能を追加するスクリプト
* ・数字キーおよびテンキーの1,2,3,4を回答のア,イ,ウ,エと関連付け、それらのキーが押された場合アイウエのいずれか対応するボタンを押す。
* ・アイウエのいずれかが押された時、正解であれば緑チェックマークを、不正解であれば赤チェックマークを設定する。
* ・エンターキーが押された際、「次の問題」ボタンを押して次の問題へ進む。
*
* Tampermonkeyなどに登録して動作するようにしてください。
*/
(function() {
document.onkeydown = function (event) {
if (event) {
let keyCode;
if (event.keyCode) {
keyCode = event.keyCode;
} else if (event.which) {
keyCode = event.which;
}
// 数字キーおよびテンキーの1,2,3,4を回答のア,イ,ウ,エと関連付け、それらのキーが押された場合アイウエのいずれか対応するボタンを押す。
if (keyCode == 49 || keyCode == 97) {
document.querySelectorAll(".selectBtn")[0].click();
}
if (keyCode == 50 || keyCode == 98) {
document.querySelectorAll(".selectBtn")[1].click();
}
if (keyCode == 51 || keyCode == 99) {
document.querySelectorAll(".selectBtn")[2].click();
}
if (keyCode == 52 || keyCode == 100) {
document.querySelectorAll(".selectBtn")[3].click();
}
// エンターキーが押された際、「次の問題」ボタンを押して次の問題へ進む。
if (keyCode == 13) {
document.querySelector("#configform > div.bottomBtns > button.submit").click();
}
}
}
// アイウエのいずれかが押された時、正解であれば緑チェックマークを、不正解であれば赤チェックマークを設定する。
for (let element of document.querySelectorAll(".selectBtn")) {
element.onclick = function () {
answerCheck();
}
}
function answerCheck() {
if (document.querySelector("div#popup.maru") != null) {
console.log("正解");
document.querySelector(".checkG").click();
}
if (document.querySelector("div#popup.batu") != null) {
console.log("不正解");
document.querySelector(".checkP").click();
}
}
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment