// ==UserScript== // @name 好大学在线选择题答题情况查看 // @namespace https://zby.io // @version 0.1 // @description 显示好大学在线测验与作业选择题回答情况 // @author fourstring // @match https://cnmooc.org/examTest/stuExamList/* // @grant none // @downloadURL none // ==/UserScript== (function() { 'use strict'; function createTipsNode(result){ var tipsNode=document.createElement("span"); if (result=="right"){ tipsNode.innerText="[正确(结果不会即时更新,需要答题完暂存后再重新进入查看)]"; tipsNode.style.color="green"; }else{ tipsNode.innerText="[错误(结果不会即时更新,需要答题完暂存后再重新进入查看)]"; tipsNode.style.color="red"; } return tipsNode; } function checkErrorFlags(){ let problemsList=$('div.view-test.practice-item').toArray(); if (!problemsList){ return; } for (let problem of problemsList) { let currentResult=problem.getAttribute("error_flag"); let currentProblemId=problem.getAttribute("id"); let addtionalTextArea=$("div#"+currentProblemId+" div.test-attach")[0]; addtionalTextArea.appendChild(createTipsNode(currentResult)); } } function hook(func,pre,post){ return function(){ if (pre) pre.apply(window,arguments); func.apply(window,arguments); if (post) post.apply(window,arguments); } } var checked=false; var intervalId=setInterval(function(){ console.log('1'); console.log(checked); if (window.hasOwnProperty("examLockTips")&&(!checked)&&window.examLockTips.closed&&$("div#enterObjectExamDiv").toArray().length==0){ console.log('3'); checkErrorFlags(); checked=true; window.doSubmitExam=hook(window.doSubmitExam,null,function(){console.log('2');checked=false;console.log(checked);}); window.doSubmitExamBack=hook(window.doSubmitExamBack,null,function(){console.log('2');checked=false;console.log(checked);}); } },500); })();