Study.com Quiz Answers

Highlights correct answers with a green background on Study.com quizes and exams

À partir de 2022-02-28. Voir la dernière version.

Vous devrez installer une extension telle que Tampermonkey, Greasemonkey ou Violentmonkey pour installer ce script.

Vous devrez installer une extension telle que Tampermonkey ou Violentmonkey pour installer ce script.

Vous devrez installer une extension telle que Tampermonkey ou Violentmonkey pour installer ce script.

Vous devrez installer une extension telle que Tampermonkey ou Userscripts pour installer ce script.

Vous devrez installer une extension telle que Tampermonkey pour installer ce script.

Vous devrez installer une extension de gestionnaire de script utilisateur pour installer ce script.

(J'ai déjà un gestionnaire de scripts utilisateur, laissez-moi l'installer !)

Vous devrez installer une extension telle que Stylus pour installer ce style.

Vous devrez installer une extension telle que Stylus pour installer ce style.

Vous devrez installer une extension telle que Stylus pour installer ce style.

Vous devrez installer une extension du gestionnaire de style pour utilisateur pour installer ce style.

Vous devrez installer une extension du gestionnaire de style pour utilisateur pour installer ce style.

Vous devrez installer une extension du gestionnaire de style pour utilisateur pour installer ce style.

(J'ai déjà un gestionnaire de style utilisateur, laissez-moi l'installer!)

// ==UserScript==
// @name        Study.com Quiz Answers
// @namespace   https://greatest.deepsurf.us/en/users/668659-denvercoder1
// @match       *://*.study.com/*
// @include     https://study.com/*
// @grant       none
// @version     1.3
// @author      Jonah Lawrence
// @license     MIT
// @description Highlights correct answers with a green background on Study.com quizes and exams
// ==/UserScript==

/* jshint esversion: 6 */

(function () {
  const interval = setInterval(function () {
    // add styling for highlighting correct answers
    // quiz answers will at this point already be highlighted since they have this attribute
    const styles = '[data-correct="true"] { background: #c5ff81; box-shadow: 0 0 0 14px #c5ff81; border-radius: 2px; }';
    document.getElementsByTagName("head")[0].insertAdjacentHTML("beforeend", `<style>${styles}</style>`);
    // get exam container
    const container = document.querySelector("#practice-exam-container");
    // check if the element exists (only on exam pages)
    if (!container) {
      // disable interval and exit function since this is not an exam
      return clearInterval(interval);
    }
    // if this is an exam, get the Controller
    const controller = angular.element(container).controller();
    // wait for the controller to be loaded
    if (controller) {
      // get the questions list
      const questions = controller.questionByQuestionInstanceId;
      // highlight the correct answer to each question
      Object.values(questions).forEach(function (x) {
        const correctAnswer = document.querySelector(`li[ng-class*="${x.correctQuizQuestionOptionId}"]`);
        // check that element for the correct answer exists on the page
        if (correctAnswer) {
          // mark answer as correct so it can be highlighted
          correctAnswer.dataset.correct = true;
          // no need to keep checking
          clearInterval(interval);
        }
      });
    }
  }, 500);
})();