- // ==UserScript==
- // @name ChaoxingAnswerToggler
- // @namespace http://tampermonkey.net/
- // @version 0.4
- // @description 隐藏或显示学习通作业选择题答案,复习专用。
- // @author Cassius0924
- // @match https://mooc1.chaoxing.com/mooc-ans/mooc2/work/*
- // @match https://mooc1.chaoxing.com/*
- // @match https://mooc1.chaoxing.com/mycourse/studentstudy/*
- // @icon https://www.google.com/s2/favicons?sz=64&domain=chaoxing.com
- // @grant none
- // @license MIT
- // ==/UserScript==
-
- (function() {
- 'use strict';
-
- function toggleAnswer(answerDiv) {
- if (answerDiv.style.visibility === 'hidden' || answerDiv.style.visibility === '') {
- answerDiv.style.visibility = 'visible';
- } else {
- answerDiv.style.visibility = 'hidden';
- }
- }
-
- function hideAllAnswers(answerDivs) {
- answerDivs.forEach(function(answerDiv) {
- answerDiv.style.visibility = 'hidden';
- });
- }
-
- function showAllAnswers(answerDivs) {
- answerDivs.forEach(function(answerDiv) {
- answerDiv.style.visibility = 'visible';
- });
- }
-
- function createElement(tag, className, style, content) {
- const element = document.createElement(tag);
- className && (element.className = className);
- style && (element.style = style);
- content && (element.innerHTML = content);
- return element;
- }
-
- function applyToggler(QContainerClassName, AContainerClassName, TContainerClassName, Style) {
- var questionContainers = document.querySelectorAll(QContainerClassName);
-
- questionContainers.forEach(function(questionContainer) {
- var answerDiv = questionContainer.querySelector(AContainerClassName);
- answerDiv.classList.add('ha_mark_answer');
- answerDiv.style.width = 'auto';
- answerDiv.style.visibility = 'visible';
- var showAnswerButton = createElement('button', 'ha_toggle_answer_button');
- showAnswerButton.classList.add('ha_button');
- showAnswerButton.textContent = '显示答案';
- showAnswerButton.addEventListener('click', (event) => {
- toggleAnswer(answerDiv)
- });
-
- questionContainer.appendChild(showAnswerButton);
- });
-
- const topicNumberContainer = document.querySelector(TContainerClassName);
- if (topicNumberContainer) {
- var haControlDiv = createElement('div', 'ha_control_div');
- haControlDiv.classList.add('topicNumber_checkbox');
- topicNumberContainer.appendChild(haControlDiv);
-
- var haShowAllButton = createElement('button', 'ha_show_all_answer');
- haShowAllButton.classList.add('ha_button');
- haShowAllButton.textContent = '显示所有答案';
- haShowAllButton.addEventListener('click', ()=>{
- var answerDivs = document.querySelectorAll(AContainerClassName);
- showAllAnswers(answerDivs);
- });
- haControlDiv.appendChild(haShowAllButton);
-
- var haHiddenAllButton = createElement('button', 'ha_hidden_all_answer');
- haHiddenAllButton.classList.add('ha_button');
- haHiddenAllButton.textContent = '隐藏所有答案';
- haHiddenAllButton.addEventListener('click', ()=> {
- var answerDivs = document.querySelectorAll(AContainerClassName);
- hideAllAnswers(answerDivs);
- });
- haControlDiv.appendChild(haHiddenAllButton);
-
- document.querySelector(TContainerClassName).appendChild(createElement('style', 'ha-global-style', '', Style));
- }
- }
-
- const QContainerClassNames = [
- {
- QC: ".questionLi",
- AC: ".mark_answer",
- TC: "#topicNumberScroll",
- Style: '.ha_hidden_all_answer{margin-top: -20px; width: 90px; height: 32px} .ha_show_all_answer{margin-top: -10px; margin-right: 50px;width: 90px; height: 32px} .ha_toggle_answer_button {margin-top: -43px;margin-left: 24px;width: 70px;height: 32px;line-height: 32px;} .ha_button {box-shadow: -4px -4px 10px -8px rgba(255, 255, 255, 1), 4px 4px 10px -8px rgba(0, 0, 0, .3); background: linear-gradient(135deg, rgba(230, 230, 230, 1) 0%, rgba(246, 246, 246, 1) 100%);cursor: pointer;border: 1px solid #e5e5e5;border-radius: 5px;text-align: center;} .ha_mark_answer{margin-left: 100px;}'
- },
- {
- QC: ".newTiMu",
- AC: ".newAnswerBx",
- TC: ".ceyan_name",
- Style: '.ha_hidden_all_answer{margin-top: -20px; width: 90px; height: 32px} .ha_show_all_answer{margin-top: 13px; margin-right: 50px;width: 90px; height: 32px} .ha_toggle_answer_button {margin-top: -130px;margin-left: 24px;width: 70px;height: 32px;line-height: 32px;} .ha_button {box-shadow: -4px -4px 10px -8px rgba(255, 255, 255, 1), 4px 4px 10px -8px rgba(0, 0, 0, .3); background: linear-gradient(135deg, rgba(230, 230, 230, 1) 0%, rgba(246, 246, 246, 1) 100%);cursor: pointer;border: 1px solid #e5e5e5;border-radius: 5px;text-align: center;} .ha_mark_answer{margin-left: 100px;}'
- },
- ];
-
- QContainerClassNames.forEach((map) => {
- console.log("APL");
- applyToggler(map["QC"], map["AC"], map["TC"], map["Style"]);
- });
-
- })();