當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
JavaScript——易班优课YOOC课群在线测试自动答题解决方案(五)简单插件
生活随笔
收集整理的這篇文章主要介紹了
JavaScript——易班优课YOOC课群在线测试自动答题解决方案(五)简单插件
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
前文
JavaScript——易班優課YOOC課群在線測試自動答題解決方案(一)答案獲取
Spring Boot——易班優課YOOC課群在線測試自動答題解決方案(二)答案儲存
Spring Boot——易班優課YOOC課群在線測試自動答題解決方案(三)答案查詢
JavaScript——易班優課YOOC課群在線測試自動答題解決方案(四)答案顯示
解決方案
// ==UserScript== // @name YOOC Exam // @namespace http://tampermonkey.net/ // @version 0.1 // @description try to take over the world! // @author STZG // @match https://www.yooc.me/group/*/exam/*/detail // @grant none // ==/UserScript==(function() {'use strict';// Your code here... var examUpload=()=>{var xmlhttp = new XMLHttpRequest();//獲取對象xmlhttp.onreadystatechange = function(){//設置回調函數if(xmlhttp.readyState == 4){//這里的4是請求的狀態碼,代表請求已經完成if(xmlhttp.status == 200 || xmlhttp.status == 304){//這里是獲得響應的狀態碼,200代表成功,304代表無修改可以直接從緩存中讀取console.log(xmlhttp);//創建DOMvar html=document.createElement("html");html.innerHTML=xmlhttp.responseTextconsole.log(html)//獲取考試信息var group=document.getElementById('group-data')var groupId=group.getAttribute("data-group-id")var examId=group.getAttribute("data-exam-id")//獲取問題信息var question=Array.from(html.getElementsByClassName('question-board'))console.log(question)//數據封裝var question_arr=[]question.forEach(q=>{question_arr.push({id:q.id,question:q.outerHTML.replace('/the-ans fls/g',"the-ans crt").replace('/<li class="crt/g"','<li class=""').replace('/<li class="fls/g"','<li class=""')})})//上傳服務器var posthttp = new XMLHttpRequest();//獲取對象posthttp.onreadystatechange = function(){//設置回調函數if(posthttp.readyState == 4){//這里的4是請求的狀態碼,代表請求已經完成if(posthttp.status == 200 || posthttp.status == 304){//這里是獲得響應的狀態碼,200代表成功,304代表無修改可以直接從緩存中讀取var result = posthttp.responseText;//這里獲取的是響應文本,也可以獲得響應xml或JSONconsole.log(result)}}}posthttp.open("POST","https://localhost/MyZSTU/yooc/group/"+groupId+"/exam/"+examId+"/upload");//JSON Headerposthttp.setRequestHeader("Content-Type","application/json");posthttp.setRequestHeader("Content-Security-Policy","upgrade-insecure-requests");//解析為JSONposthttp.send(JSON.stringify(question_arr));//POST請求}}}xmlhttp.open("GET",document.URL);xmlhttp.send();//GET請求 } var answer=()=>{//獲取考試信息var group=document.getElementById('group-data')var groupId=group.getAttribute("data-group-id")var examId=group.getAttribute("data-exam-id")//獲取問題信息questions=document.getElementsByClassName('question-board')var question_arr=[]Array.from(questions).forEach(q=>{question_arr.push(q.id.substr(9))})var xmlhttp = new XMLHttpRequest();//獲取對象xmlhttp.onreadystatechange = function(){//設置回調函數if(xmlhttp.readyState == 4){//這里的4是請求的狀態碼,代表請求已經完成if(xmlhttp.status == 200 || xmlhttp.status == 304){//這里是獲得響應的狀態碼,200代表成功,304代表無修改可以直接從緩存中讀取var result = xmlhttp.responseText;//這里獲取的是響應文本,也可以獲得響應xml或JSONconsole.log(result)//解析為JS對象var obj = JSON.parse(result);var questionContainer=document.getElementsByClassName('exam-detial-container')[0]obj.forEach(q=>{var question=document.getElementById('question-'+q.id)var answer = document.createElement("div");answer.innerHTML = q.question;var child=answer.childNodes[0]child.id='ans-'+q.idquestionContainer.insertBefore(child,question)console.log(question)console.log(answer)})}}}xmlhttp.open("GET","https://localhost/MyZSTU/yooc/group/"+groupId+"/exam/"+examId+"/answer?question="+question_arr);xmlhttp.send();//GET請求 }//獲取考試信息 var group=document.getElementById('group-data') var groupId=group.getAttribute("data-group-id") var examId=group.getAttribute("data-exam-id") var examQuestionNum=Number(group.getAttribute("data-questions")) //獲取問題信息 var questions=document.getElementsByClassName('question-board') var questionNum = questions.length //獲取答案信息 var ansElements = document.getElementsByClassName('the-ans') var ansNum = ansElements.length if(ansNum>0){if(questionNum===examQuestionNum){examUpload()}else{console.log("現在是考試中,不能上傳答案哦。")} }else{answer() }})();使用教程
參考文章
https://www.jianshu.com/p/cf3f8d20bbfc?
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的JavaScript——易班优课YOOC课群在线测试自动答题解决方案(五)简单插件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JavaScript——易班优课YOOC
- 下一篇: Spring Boot——易班优课YOO