Greasy Fork

Greasy Fork is available in English.

Mutx163学习通自动评教

学习通自动评价,默认满分

目前为 2024-03-28 提交的版本。查看 最新版本

// ==UserScript==
// @name         Mutx163学习通自动评教
// @namespace    http://tampermonkey.net/
// @version      v1.1
// @description  学习通自动评价,默认满分
// @author       Mutx163
// @match        http://newes.chaoxing.com/pj/newesReception/*
// @icon         
// @license MIT
// @grant        none
// ==/UserScript==
//默认开启了自动提交,把不喜欢的话自动提交下面的那行代码注释掉即可

window.onload = function() {
    'use strict';

    // 使用轮询方式等待元素加载
    function waitForElement(selector, callback) {
        const interval = setInterval(function() {
            const element = document.querySelector(selector);
            if (element) {
                clearInterval(interval);
                callback(element);
            }
        }, 100); // 每100毫秒检查一次
    }

    // 查找所有标记为5分的<input type="radio">元素并模拟点击
    waitForElement('input.inputvalue.reselect[score="5.0"]', function(options) {
        options.forEach(option => {
            const clickEvent = new MouseEvent('click', {
                bubbles: true,
                cancelable: true,
                view: window
            });
            option.dispatchEvent(clickEvent);
        });
    });

    // 查找<textarea>元素并填入“无”
    waitForElement('textarea.blueTextarea', function(textarea) {
        textarea.value = '无';
        // 触发keyup事件以模拟用户输入
        const keyupEvent = new Event('keyup', {
            bubbles: true,
            cancelable: true
        });
        textarea.dispatchEvent(keyupEvent);

        // 延迟点击提交按钮,确保前面的操作已完成
        setTimeout(() => {
            waitForElement('a[onclick="save(2);"]', function(submitButton) {
                const clickEvent = new MouseEvent('click', {
                    bubbles: true,
                    cancelable: true,
                    view: window
                });
                submitButton.dispatchEvent(clickEvent);
                console.log('提交按钮已模拟点击。');

                // 延迟点击弹窗中的“确定”按钮,以确保弹窗已经出现
                setTimeout(() => {
                    waitForElement('.layui-layer-btn0', function(confirmButton) {
                        const clickEvent = new MouseEvent('click', {
                            bubbles: true,
                            cancelable: true,
                            view: window
                        });
                        confirmButton.dispatchEvent(clickEvent);
                        console.log('弹窗中的“确定”按钮已模拟点击。');
                    });
                }, 1000); // 根据弹窗出现的实际延迟调整这个时间
            });
        }, 500); // 延迟500毫秒以确保<textarea>的值被正确设置和处理
    });
};