// ==UserScript== // @name Mutx163学习通自动评教 // @namespace http://tampermonkey.net/ // @version v1.22 // @description 学习通自动评价,默认满分 // @author Mutx163 // @match https://newes.chaoxing.com/pj/newesReception/questionnaireInfo* // @icon // @license MIT // @grant none // @downloadURL none // ==/UserScript== //默认开启了自动提交,把不喜欢的话自动提交下面的那行代码注释掉即可 window.onload = function() { 'use strict'; // 创建一个按钮用于控制自动评教 const autoEvaluateButton = document.createElement('button'); autoEvaluateButton.textContent = '启动自动评教'; autoEvaluateButton.style.position = 'fixed'; autoEvaluateButton.style.top = '10px'; autoEvaluateButton.style.right = '10px'; autoEvaluateButton.style.zIndex = '1000'; document.body.appendChild(autoEvaluateButton); // 检查localStorage中的状态 const autoEvaluateEnabled = localStorage.getItem('autoEvaluateEnabled') === 'true'; // 根据存储的状态更新按钮文本 autoEvaluateButton.textContent = autoEvaluateEnabled ? '禁用自动评教' : '启动自动评教'; autoEvaluateButton.addEventListener('click', function() { const isEnabled = localStorage.getItem('autoEvaluateEnabled') === 'true'; localStorage.setItem('autoEvaluateEnabled', !isEnabled); autoEvaluateButton.textContent = !isEnabled ? '禁用自动评教' : '启动自动评教'; if (!isEnabled) { startAutoEvaluation(); } }); // 如果已启用,自动开始评教 if (autoEvaluateEnabled) { startAutoEvaluation(); } }; function startAutoEvaluation() { setTimeout(() => { // 查找所有 class 为 'dafen' 的输入框,并自动填写满分 const scoreInputs = document.querySelectorAll('input.dafen'); if (scoreInputs.length > 0) { scoreInputs.forEach(input => { const maxScore = input.getAttribute('maxscore'); // 获取最大分数 input.value = maxScore; // 自动填写最大分数 const keyupEvent = new Event('keyup', { bubbles: true, cancelable: true }); input.dispatchEvent(keyupEvent); // 触发输入事件,使前端行为一致 }); console.log('已找到并填写所有评分框的满分。'); } else { console.error('未找到评分输入框。'); } // 查找 class 为 'blueTextarea' 的文本框并自动填写 "无" const textareas = document.querySelectorAll('textarea.blueTextarea'); if (textareas.length > 0) { textareas.forEach(textarea => { textarea.value = '无'; // 自动填写 "无" const keyupEvent = new Event('keyup', { bubbles: true, cancelable: true }); textarea.dispatchEvent(keyupEvent); // 触发输入事件 }); console.log('已找到并填写所有文本框为 "无"。'); } else { console.error('未找到文本输入区域。'); } // 延迟点击提交按钮,确保前面的操作已完成 setTimeout(() => { const submitButton = document.querySelector('a[onclick="save(2);"]'); if (submitButton) { const clickEvent = new MouseEvent('click', { bubbles: true, cancelable: true, view: window }); submitButton.dispatchEvent(clickEvent); console.log('提交按钮已模拟点击。'); // 延迟点击弹窗中的“确定”按钮,以确保弹窗已经出现 setTimeout(() => { const confirmButton = document.querySelector('a.layui-layer-btn0'); if (confirmButton) { const clickEvent = new MouseEvent('click', { bubbles: true, cancelable: true, view: window }); confirmButton.dispatchEvent(clickEvent); console.log('弹窗中的“确定”按钮已模拟点击。'); } else { console.error('弹窗中的“确定”按钮未找到。'); } }, 1000); // 根据弹窗出现的实际延迟调整这个时间 } else { console.error('提交按钮未找到,需要手动提交或检查选择器。'); } }, 500); // 延迟500毫秒以确保所有评分框和文本框的值被正确设置和处理 }, 1000); // 延迟1秒执行,根据实际加载时间调整 }