Greasy Fork

Greasy Fork is available in English.

hbjs质量技术网络学习试卷选择助手

答题进度提示,答案备份和恢复

当前为 2022-01-27 提交的版本,查看 最新版本

// ==UserScript==
// @name         hbjs质量技术网络学习试卷选择助手
// @namespace    x_jianp
// @version      0.8
// @description  答题进度提示,答案备份和恢复
// @author       x_jianp
// @match        http://mis.hebjs.com.cn/*
// @grant        unsafewindow
// @grant        GM_setValue
// @grant        GM_getValue
// @grant        GM_listValues
// @grant        GM_deleteValue
// @require      http://code.jquery.com/jquery-latest.js
// ==/UserScript==
// 本脚本发布地址在 http://greasyfork.icu/zh-CN/scripts/435675
(function() {
    'use strict';

    // Your code here...
    let i =0;
    try {
        //异常的抛出
        //尝试获取成绩
        //多人成绩会造成困扰
        let yanzheng = document.querySelector("#r > div:nth-child(1) > div.panel-header > div.panel-title");
        if (yanzheng.innerText == '我的学习情况') {
            //先删除成绩再录入
            let keys = GM_listValues();
            for (let key of keys){ GM_deleteValue(key);}
            // 录入成绩
            let myHis = document.querySelector("#r > div:nth-child(1) > div.panel.datagrid.panel-htop.portal-p.panel-body > div > div > div.datagrid-view2 > div.datagrid-body > table > tbody");
            for ( i=0;i<myHis.children.length;i++){
                let infoi = myHis.children[i].innerText.split("\n");
                GM_setValue(infoi[0],[infoi[4],infoi[2]]);
            }
        }

    } catch(e) {
        //异常的捕获与处理
    } finally {
        //结束处理
    }


    //尝试写入成绩
    let yanzheng = null;
    try {
        yanzheng = document.querySelector("#formMain > table > tbody > tr:nth-child(1) > td > h3");
    } finally {}
    if (yanzheng != null) {
        if (yanzheng.innerText = '请选择规范开始答题'){
            for (let j=0 ; j<5;j++ ){
                let tiku = document.querySelector("#formMain > table > tbody > tr:nth-child("+String(j*2+3)+") > td");
                let tishu = tiku.children.length;
                for ( i=0;i<tishu;i++){
                    let tiname = tiku.children[i].querySelector("span > span.l-btn-text").innerText;
                    let chengji = GM_getValue(tiname);
                    if (chengji != null) {
                        let mypro = document.createElement("progress");
                        mypro.value=chengji[0];
                        mypro.max=chengji[1];
                        tiku.children[i].appendChild(mypro);
                        //console.log(tiname+"成功");
                    } else {
                        //console.log(tiname+"没成绩");
                    }
                }
            }

        }
    }

})();
(function() {
    'use strict';
    jQuery(function () {
    });

    try { var myFormDoc = document.getElementById("formMain").children[10].children[0];
        } catch(e){} finally{}
    if (myFormDoc != null) {
        var qnum = (myFormDoc.children.length-3)/2;
        var butt = $('<a/>',{
            'id': 'upAnswer',
            'href':'javascript:void(0)',
            'onclick':'up_myanswer()'
        }).text('答案恢复');
        var dbutt = $('<a/>',{
            'id': 'downAnswer',
            'href':'javascript:void(0)',
            'onclick':'down_myanswer()'
        }).text('      答案导出');
        unsafeWindow.up_myanswer = function up_myanswer() {
            alert("该插件仅用于答题暂停时,答案备份和恢复,请正规使用。规范学习");
            console.log("btn_ok");
            var qstarnum =Number(document.getElementById("0_QuestionId").value);
            //console.log(qstartnum);
            var mytxt = document.getElementById("myinputAnswer").value.split("\n");
            if (mytxt.length != 0){
                for (var i=0;i<mytxt.length;i++){
                    document.getElementById(String(i)+"_MyAnswer").value=mytxt[i];
                    var iqus = mytxt[i].split(';');
                    for (var j=0;j<iqus.length;j++){
                        document.getElementsByName(String(i)+"_MyAnswerItem_"+String(qstarnum + i))[j].value=iqus[j];
                        //console.log(String(i)+"_MyAnswerItem_"+String(qstarnum + i));
                        //console.log(document.getElementById(String(i)+"_MyAnswerItem_"+String(qstarnum + i)));
                    }
                }
            }
        }

        unsafeWindow.down_myanswer = function down_myanswer(){
            var mytxt = ""
            for (var i=0;i<qnum;i++){
                mytxt += document.getElementById(String(i)+"_MyAnswer").value + "\n";
            }
            document.getElementById("myinputAnswer").value=mytxt;
        }

        $('#formMain').append(butt);
        $('#formMain').append(dbutt);
        $('#formMain').append('<textarea id="myinputAnswer"></textarea>');
    }
    //$('#formMain').append('<button id="upanswer_btn">上传答案</button>');
    /*
    for (var i=0;i<qnum;i++)
    {
        document.getElementById(String(i)+"_MyAnswer").type="text";
    }
*/
    //document.getElementById("formMain").appendChild(btn);
})();