对于 submission 界面可以查看未公布的答案

// ==UserScript==
// @name         一键查看MOOC答案
// @namespace    http://tampermonkey.net/
// @version      1.0
// @description  对于已经提交的界面点击按钮跳转到答案
// @match        https://mooc2.uestc.edu.cn/exam/*
// @match        https://mooc2.uestc.edu.cn/api/*
// @grant        none
// @license      AGPL-3.0-or-later
// @author       最可爱的小夏同学
// ==/UserScript==
 
(function() {
    'use strict';
 
    const url = window.location.href;
    const match = url.match(/exam\/(\d+)\/subjects#\/submission\/(\d+)/);
    if (match) {
        debugger;
        const [_, examId, submissionId] = match;
 
        // 创建按钮
        const jumpButton = document.createElement('button');
        jumpButton.textContent = '跳转到答案页面';
        jumpButton.style.position = 'fixed';
        jumpButton.style.top = '20px';
        jumpButton.style.right = '20px';
        jumpButton.style.zIndex = '1000';
 
        // 添加点击事件
        jumpButton.addEventListener('click', function() {
            // 跳转到指定的URL
            window.location.href = 'https://mooc2.uestc.edu.cn/api/exams/12177/submissions/'+ submissionId;
        });
 
        // 将按钮添加到页面中
        document.body.appendChild(jumpButton);
    }
 
    const api_match = url.match(/exams\/(\d+)\/submissions\/(\d+)/);
    if (api_match) {
 
        // 使用fetch API获取数据
        fetch(window.location.href)
            .then(response => response.json()) // 将响应转换为JSON
            .then(data => {
                // 清除页面上的其他内容
                document.body.innerHTML = '';
 
                // 创建一个新的div元素来显示正确答案
                var answersDiv = document.createElement('div');
                answersDiv.style.padding = '20px';
 
                // 遍历correct_answers数组,为每个答案创建一个段落<p>元素
                data.correct_answers_data.correct_answers.forEach(function(answer) {
                    // 检查answer是否有content字段
                    if (answer.content) {
                        var p = document.createElement('p');
                        p.innerHTML = answer.content; // 设置段落内容为答案的content
                        answersDiv.appendChild(p); // 将段落添加到div中
                    } else if (answer.correct_answers && answer.correct_answers.length > 0) {
                        // 如果没有content字段,但存在嵌套的correct_answers
                        answer.correct_answers.forEach(function(nestedAnswer) {
                            if (nestedAnswer.content) {
                                var pNested = document.createElement('p');
                                pNested.innerHTML = nestedAnswer.content; // 设置段落内容为嵌套答案的content
                                answersDiv.appendChild(pNested); // 将段落添加到div中
                            }
                        });
                    }
                });
 
                // 将div添加到body中
                document.body.appendChild(answersDiv);
            })
            .catch(error => {
                console.error('Error fetching data:', error);
            });
    }
 
 
})();

如何使用?

  1. 首先安装油猴插件,请 Google
  2. 添加新脚本 复制进去 Ctrl + S 保存
  3. 用 Chrome 浏览器打开成电 MOOC
  4. 进入任意一个已经提交过的 submission 界面 (不是做题界面,也不是未提交过的界面,而是已经做过的提交记录,这个脚本只能够把没有公布的答案显现出来)
  5. 此时右上角应该会出现一个按钮,点击跳转到答案界面按钮即可

没有识别到的话可能需要从 exam 重新进入