中国大学MOOC隐藏答案

添加一个切换答案按钮,点击可显示/隐藏答案

  1. // ==UserScript==
  2. // @name 中国大学MOOC隐藏答案
  3. // @namespace https://github.com/lcandy2
  4. // @version 1.4
  5. // @description 添加一个切换答案按钮,点击可显示/隐藏答案
  6. // @author lcandy2
  7. // @license MIT
  8. // @match *://www.icourse163.org/learn/*
  9. // @homepage https://github.com/lcandy2/user.js
  10. // @run-at document-end
  11. // @grant none
  12. // ==/UserScript==
  13.  
  14. function main() {
  15. const targetElement = document.querySelector('.u-learn-moduletitle');
  16. if (targetElement) {
  17. console.log('中国大学MOOC隐藏答案');
  18. console.log(targetElement);
  19. const toggleButton = document.createElement('a');
  20. toggleButton.className = 'j-backList backbtn f-fl f-fc9';
  21. toggleButton.id = 'hideAnswer';
  22. toggleButton.tabIndex = '-1';
  23. toggleButton.textContent = '隐藏答案';
  24.  
  25. targetElement.appendChild(toggleButton);
  26. let radioInputs, itemsRight, itemsWrong, analysisInfo, scoreElements;
  27.  
  28. let visibility = true;
  29.  
  30. toggleButton.addEventListener('click', () => {
  31.  
  32. if (visibility) {
  33. radioInputs = document.querySelectorAll('input[type="radio"]:checked');
  34. itemsRight = document.querySelectorAll('li.f-cb.checked.right');
  35. itemsWrong = document.querySelectorAll('li.f-cb.checked.wrong');
  36. analysisInfo = document.querySelectorAll('.analysisInfo');
  37. scoreElements = document.querySelectorAll('.score.f-fr');
  38. }
  39.  
  40. visibility ? visibility = false : visibility = true;
  41. radioInputs.forEach(input => {
  42. visibility ? input.checked = true : input.checked = false;
  43. });
  44. itemsRight.forEach(item => {
  45. visibility ? item.className = 'li f-cb checked right' : item.className = 'f-cb';
  46. });
  47. itemsWrong.forEach(item => {
  48. visibility ? item.className = 'li f-cb checked wrong' : item.className = 'f-cb';
  49. });
  50. analysisInfo.forEach(element => {
  51. visibility ? element.style.display = 'block' : element.style.display = 'none';
  52. });
  53. scoreElements.forEach(element => {
  54. visibility ? element.style.display = 'block' : element.style.display = 'none';
  55. });
  56. toggleButton.textContent = visibility ? '隐藏答案' : '显示答案';
  57. });
  58. }
  59. }
  60.  
  61. window.onload = main;

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址