您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
一键完成WeLearn的油猴脚本
当前为
// ==UserScript== // @name WeLearn一键完成 // @namespace https://github.com/Zonakkis // @version 0.1.6 // @description 一键完成WeLearn的油猴脚本 // @author Zonakkis // @match *://welearn.sflep.com/student/StudyCourse.aspx* // @match *://welearn.sflep.com/student/studyccourse.aspx* // @grant none // @license MIT // ==/UserScript== (function () { 'use strict'; function Wait(ms) { return new Promise(resolve => setTimeout(resolve, ms)); } function GetInnerDocument() { return document.getElementById("contentFrame").contentDocument; } function FillingShort() { const divs = innerdocument.querySelectorAll('div[data-controltype="filling"]'); for (let i = 0; i < divs.length; i++) { const input = divs[i].querySelector('input'); ///const result = divs[i].querySelector('div[data-itemtype="result"]'); const myresult = divs[i].querySelector('div[data-itemtype="myresult"]'); let answer = input.dataset.solution; input.value = answer; if (myresult != null) { myresult.innerText = answer; } } } function FillingLong() { const divs = innerdocument.querySelectorAll('div[data-controltype="fillinglong"]'); for (let i = 0; i < divs.length; i++) { const textarea = divs[i].querySelector('textarea'); const result = divs[i].querySelector('div[data-itemtype="result"]'); let answer = result.innerText .trim() .replace(/\s+/g, ' ') .replace(/\([^)]*\)/g, '') .replace(/(?<=\s|^)(\w+)(?:\s*\/\s*\w+)+(?=\s|$)/, '$1'); textarea.value = answer; } } function Choice() { const divs = innerdocument.querySelectorAll('div[data-controltype="choice"]'); for (let i = 0; i < divs.length; i++) { const ul = divs[i].querySelector('ul[data-itemtype="options"]'); const li = ul.querySelector('li[data-solution]'); li.dataset.choiced = ""; } } function MultiChoice() { const divs = innerdocument.querySelectorAll('div[data-controltype="multichoice"]'); for (let i = 0; i < divs.length; i++) { const ul = divs[i].querySelector('ul[data-itemtype="options"]'); const lis = ul.querySelectorAll('li[data-solution]'); for (let j = 0; j < lis.length; j++) { const li = lis[j]; li.dataset.choiced = ""; } } } async function Record() { let record = innerdocument.querySelector('[data-xbindclick="record"]'); if (!record) { record = innerdocument.querySelector('[data-controltype="record"]'); } if (record) { while (!record.hasAttribute("data-recording") && recordTry < recordMaxTry) { recordTry++; record.click(); await Wait(2000); } if (record.hasAttribute("data-recording")) { record.click(); } } } async function Finish() { innerdocument = GetInnerDocument(); FillingShort(); FillingLong(); Choice(); MultiChoice(); await Submit(); await Record(); await Wait(300); NextPage(); } async function Submit() { const submit = innerdocument.getElementsByClassName("cmd cmd_submit")[0]; if (typeof submit !== "undefined") { submit.click(); await Wait(300); Confirm(); } } function Confirm() { const yes = innerdocument.getElementsByClassName("layui-layer-btn0")[0]; yes.click(); } function NextPage() { recordTry = 0; nextPage.click(); } async function AddButton() { nextPage = document.getElementsByClassName("c_s_3_2")[0].childNodes[0]; while (!finish) { finish = document.getElementsByClassName("c_s_2_5")[0]; await Wait(100); } finish.removeAttribute("id"); finish.style.display = "block"; const button = finish.childNodes[0]; button.href = "javascript:void(0)"; button.style.fontSize = "12px"; button.innerText = "一键完成"; button.onclick = Finish; } let innerdocument; let nextPage; let finish; const recordMaxTry = 5; let recordTry = 0; window.onload = AddButton; })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址