您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
适用于天津工业大学URP高校教学管理与服务平台“本学期成绩查询列表”页面,能够自动显示详细分数和分数代码
当前为
// ==UserScript== // @name 强制开启详细分数查询 // @author Drzad // @match https://jwxs.tiangong.edu.cn/student/integratedQuery/* // @description 适用于天津工业大学URP高校教学管理与服务平台“本学期成绩查询列表”页面,能够自动显示详细分数和分数代码 // @grant none // @version 2.1 // @namespace https://greasyfork.org/users/820213 // ==/UserScript== (function() { 'use strict'; $("#showScoreDetail").val("1"); // 成绩类别映射 const scoreCategoryMapping = { "001-1": "课堂成绩(平时)", "001-2": "课堂成绩(期中)", "001-3": "课堂成绩(期末)", "002-1": "实验成绩(平时)", "002-2": "实验成绩(期中)", "002-3": "实验成绩(期末)", "003-1": "实践成绩(平时)", "003-2": "实践成绩(期中)", "003-3": "实践成绩(期末)" }; // 创建一个观察者对象 let observer = new MutationObserver((mutations, obs) => { let table = $('#scoretbody tr'); if (table.length) { // 表格存在,执行脚本 modifyTableAndRunAjax(); // 停止观察 obs.disconnect(); } }); // 配置观察者选项:仅监视子元素的变动 let config = { childList: true, subtree: true }; // 选择需要观察变动的节点 let targetNode = document.body; // 启动观察者 observer.observe(targetNode, config); // 修改表格并运行AJAX的函数 function modifyTableAndRunAjax() { // 向表头添加新列 $('table.table thead tr').append('<th>成绩明细</th>'); // 向每个表格行添加新数据列 $('table.table tbody tr').append('<td class="score-details"></td>'); // 对<tbody>内的每个<tr>元素进行遍历 let rows = $('table.table tbody tr'); rows.each(function() { let row = $(this); let onclickElement = row.find('[onclick]'); if (onclickElement.length) { let onclickArgs = onclickElement.attr('onclick'); let argsMatch = onclickArgs.match(/\((.*?)\)/); if (argsMatch && argsMatch[1]) { let args = argsMatch[1].split(',').map(arg => arg.trim().replace(/"/g, '')); if (args.length >= 4) { let zxjxjhh = args[0]; let kch = args[1]; let kxh = args[2]; let kssj = args[3]; // 发送Ajax请求 $.ajax({ url: "/student/integratedQuery/scoreQuery/subitemScore/look", type: "post", data: `zxjxjhh=${zxjxjhh}&kch=${kch}&kxh=${kxh}&kssj=${kssj}¶m=1`, dataType: "json", success: function (response) { if (response.scoreDetailList && response.scoreDetailList.length > 0) { let scoreDetails = response.scoreDetailList.map(detail => { let scoreCategory = scoreCategoryMapping[detail.id.scoreSubItemCode] || detail.id.scoreSubItemCode; return `${scoreCategory}: ${detail.subItemScore}`; }).join('<br>'); // 在新添加的单元格中显示成绩明细 row.find('.score-details').html(scoreDetails); } }, error: function (error) { console.log('请求失败: ', error); } }); } } } else { // 修复未定成绩时候的多余格 row.find('td:empty:first').remove(); } }); } })();