// ==UserScript== // @name 联大学堂课程作业自动答题 // @namespace http://tampermonkey.net/ // @version 1.0 // @description 自动勾选所有答案,并点击交卷按钮(不处理弹窗) // @match https://*.jxjypt.cn/paper/start* // @grant none // @run-at document-end // ==/UserScript== (function() { 'use strict'; // 等待 jQuery 加载(页面自带) function waitForJQuery(callback) { if (window.jQuery) { callback(window.jQuery); } else { setTimeout(() => waitForJQuery(callback), 100); } } waitForJQuery(function($) { // 1. 自动勾选所有答案 function selectAnswers() { let successCount = 0; let failCount = 0; $('.m-question').each(function(index) { const $question = $(this); // 从隐藏解析区获取答案字母(如 C) const answerElem = $question.find('.solution .right'); if (!answerElem.length) { console.log(`第${index+1}题:未找到答案区域`); failCount++; return; } const answerLetter = answerElem.text().trim().match(/[A-D]/i); if (!answerLetter) { console.log(`第${index+1}题:答案格式不正确`); failCount++; return; } const letter = answerLetter[0].toUpperCase(); // 找到对应的选项 dd 并点击 const $option = $question.find(`dd[data-value="${letter}"]`); if (!$option.length) { console.log(`第${index+1}题:未找到选项 ${letter}`); failCount++; return; } $option.click(); // 触发原生事件,确保被监听 $option[0].dispatchEvent(new Event('click', { bubbles: true })); console.log(`✅ 第${index+1}题 已选择 ${letter}`); successCount++; }); console.log(`答题完成:成功 ${successCount} 题,失败 ${failCount} 题`); } // 2. 点击交卷按钮(仅一次) let hasClicked = false; function clickSubmit() { if (hasClicked) return; const $submitBtn = $('#btn_submit'); if ($submitBtn.length) { hasClicked = true; $submitBtn.click(); $submitBtn[0].dispatchEvent(new Event('click', { bubbles: true })); console.log('已点击交卷按钮,请手动确认弹窗。'); } else { console.log('未找到交卷按钮'); } } // 3. 主流程:延迟执行,确保页面完全加载 setTimeout(() => { selectAnswers(); setTimeout(() => { clickSubmit(); }, 1500); // 等待选项勾选生效后再交卷 }, 1000); }); })();