嘉兴市第二届青少年网络知识风暴竞赛 全自动答题脚本

全自动回答“嘉兴市第二届青少年网络知识风暴竞赛”的题目

// ==UserScript==
// @name         嘉兴市第二届青少年网络知识风暴竞赛 全自动答题脚本
// @namespace    myitian.wjx.jx-2nd-tiksc-autoanswer
// @version      1.0
// @description  全自动回答“嘉兴市第二届青少年网络知识风暴竞赛”的题目
// @author       Myitian
// @license      MIT
// @match        https://xxks.cnjxol.com/vm/t9oQQ3R.aspx*
// @grant        none
// ==/UserScript==

function selectAns(e) {
  var correct = e.getAttribute("ans") != undefined;
  var i = e.querySelector("input");
  var a = e.querySelector("a");
  console.log(e.querySelector("input").checked);
  if (i.checked || a.className.indexOf("jqchecked") != -1) {
    if (!correct) {
      e.click();
      i.checked = false;
      if (a.className.indexOf("jqchecked") != -1) {
        a.className = a.className.substr(0, 7);
      }
    }
  }
  if (!(i.checked && a.className.indexOf("jqchecked") != -1)) {
    if (correct) {
      e.click();
      i.checked = true;
      if (a.className.indexOf("jqchecked") == -1) {
        a.className += " jqchecked";
      }
    }
  }
} // 确保能选中或取消选中,页面JS太烂了,光click可能导致<input>元素被选中,而<a>的jqchecked没加上

function selectAllAns() {
  document.querySelectorAll("fieldset[style=''] div.ui-radio").forEach(selectAns);
  document.querySelectorAll("fieldset[style=''] div.ui-checkbox").forEach(selectAns);
}

function autoSelect() {
  if (!selecting && document.querySelector("fieldset[style=''] div.ui-radio[ans],fieldset[style=''] div.ui-checkbox[ans]")) { // 确保有东西可选
    selecting = true;
    selectAllAns();
    selecting = false;
    setTimeout(nextPage, 10);
  }
}

function nextPage() {
  var submit = document.querySelector("#divSubmit[style='']");
  if (submit) { // 当提交按钮可见时提交
    submit.click();
  } else {
    document.querySelector(".button.mainBgColor").click(); // 下一页
  }
}
var selecting = false;
window.addEventListener("click", autoSelect);
document.body.click()