Greasy Fork

Greasy Fork is available in English.

中国保密在线网-♿️

2024年保密教育线上培训考试-学时/答题轮椅

当前为 2024-05-13 提交的版本,查看 最新版本

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         中国保密在线网-♿️
// @version      1.0.1
// @description  2024年保密教育线上培训考试-学时/答题轮椅
// @author       akiki
// @run-at       document-end
// @match        https://www.baomi.org.cn/*
// @grant        none
// @license      MIT
// @namespace http://greasyfork.icu/users/1300844
// ==/UserScript==


(function() {
    'use strict';
    console.log("baomi_script start run");
    var $ = window.jQuery;

    class ModifiedHttpRequest extends XMLHttpRequest {
        constructor() {
            // 调用父类的constructor
            super();
            // 保存原始的open方法
            this.originalOpen = this.open;
            // 替换原始的open方法
            this.open = this.modifiedOpen;
            // 存储原始响应数据
            this._originalResponseText = null;
        }

        modifiedOpen(method, url, async, user, password) {
            this.addEventListener("readystatechange", () => {
                if (this.readyState === 4) {
                    // 当请求完成时,首先存储原始响应数据
                    this._originalResponseText = this.responseText;

                    if (this._originalResponseText.startsWith('{')) {
                        let res = JSON.parse(this._originalResponseText)
                        if (res.data != null && res.data != undefined) {
                            let keys = Object.keys(res.data)
                            for (let i = 0; i < keys.length; i++) {
                                //if (keys[i].includes('Grade') || keys[i].includes('grade')) {
                                //    console.log("--------------------Key:", keys[i], "Value:", res.data[keys[i]]);
                                // }
                                // 修改学时
                                if (keys[i] === 'totalGrade') {
                                    res.data[keys[i]] = 4
                                    console.log("修改学时完成...");
                                }
                            }
                            this._originalResponseText = JSON.stringify(res)
                        }

                    }
                    if (/exam\/getExamContentData.do/g.test(url)) {
                        console.log("考试开始");
                        let res = JSON.parse(this._originalResponseText)
                        let typeList = res.data.typeList
                        for (let i = 0; i < typeList.length; i++) {
                            let questionList = typeList[i].questionList
                            for (let i = 0; i < questionList.length; i++) {
                                let question = questionList[i]
                                question.content = question.content.replace('</XHTML>', question.answer + ' </XHTML>')
                                console.log("展示答案完成...");
                            }

                        }
                        this._originalResponseText = JSON.stringify(res)
                    }


                    // 当请求完成时,修改responseText
                    Object.defineProperty(this, 'responseText', {
                        get: () => {
                            // 这里可以根据需要修改原始的响应数据
                            return this._originalResponseText;
                        },
                        configurable: true
                    });
                }
            });

            // 调用原始的open方法
            this.originalOpen(method, url, async, user, password);
        }
    }

    window.XMLHttpRequest = ModifiedHttpRequest;

})();