Greasy Fork is available in English.

Dò Đáp Án H5P

Dò đáp án đúng và hiển thị ảnh SVG cạnh chữ đáp án (nếu có), chỉ khi nhấn nút Dò. Có thể mở/đóng và di chuyển bảng với hiệu ứng mượt.

// ==UserScript==
// @name         Dò Đáp Án H5P
// @namespace    http://tampermonkey.net/
// @version      3.8
// @description  Dò đáp án đúng và hiển thị ảnh SVG cạnh chữ đáp án (nếu có), chỉ khi nhấn nút Dò. Có thể mở/đóng và di chuyển bảng với hiệu ứng mượt.
// @author       V Quan / Hai Trieu
// @match        https://lms360.edu.vn/*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';let hasCopied=false,currentQuestion="",isPanelOpen=true;function generateRandomName(){let characters='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789',randomName='',nameLength=Math.floor(Math.random()*10)+1;for(let i=0;i<nameLength;i++){randomName+=characters.charAt(Math.floor(Math.random()*characters.length));}return randomName;}const infoBox=document.createElement('div');infoBox.style.position='fixed';infoBox.style.top='50px';infoBox.style.right='10px';infoBox.style.padding='10px';infoBox.style.backgroundColor='white';infoBox.style.border='1px solid #ccc';infoBox.style.zIndex='9999';infoBox.style.cursor='move';infoBox.style.width='250px';infoBox.style.transition='max-height 0.5s ease-in-out, opacity 0.5s ease-in-out';infoBox.style.maxHeight='500px';infoBox.style.overflow='hidden';infoBox.style.opacity='1';const titleBar=document.createElement('div');titleBar.style.fontWeight='bold';titleBar.style.marginBottom='10px';titleBar.style.color='black';function updateRandomName(){const randomName=generateRandomName(10);titleBar.innerHTML=`Dò Đáp Án (<span style="color: black;">${randomName}</span>)`; }setInterval(updateRandomName,2000);updateRandomName();const checkButtonContainer=document.createElement('div');checkButtonContainer.style.display='flex';const checkButton=document.createElement('button');checkButton.innerText='Dò';checkButton.style.marginTop='10px';checkButton.style.padding='5px 10px';checkButton.style.cursor='pointer';const answerDisplay=document.createElement('div');answerDisplay.style.marginLeft='10px';answerDisplay.style.fontWeight='bold';answerDisplay.style.color='green';checkButtonContainer.appendChild(checkButton);checkButtonContainer.appendChild(answerDisplay);const externalToggleButton=document.createElement('button');externalToggleButton.innerText='Mở/Đóng Dò Đáp Án';externalToggleButton.style.position='fixed';externalToggleButton.style.top='10px';externalToggleButton.style.right='10px';externalToggleButton.style.padding='5px 10px';externalToggleButton.style.cursor='pointer';externalToggleButton.style.zIndex='10000';function checkCurrentQuestion(iframeDoc){const questionElement=iframeDoc.querySelector(".h5p-question-content");if(questionElement){const newQuestion=questionElement.innerText||"";if(newQuestion!==currentQuestion){currentQuestion=newQuestion;hasCopied=false;answerDisplay.innerHTML="";}}}function findCorrectAnswer(){const iframe=document.querySelector('iframe');if(!iframe){answerDisplay.innerHTML='Không tìm thấy iframe.';return;}const iframeDoc=iframe.contentDocument||iframe.contentWindow.document;checkCurrentQuestion(iframeDoc);if(hasCopied)return;const correctAnswer=iframeDoc.querySelector("body > div > div > div.h5p-question-content > div > div.h5p-sc-set.h5p-sc-animate > div.h5p-sc-slide.h5p-sc.h5p-sc-current-slide > ul > li.h5p-sc-alternative.h5p-sc-is-correct");answerDisplay.innerHTML='';if(correctAnswer){const imgElement=correctAnswer.querySelector('img');if(imgElement){const imgSrc=imgElement.src;if(imgSrc.startsWith('data:image/svg+xml')){const svgImage=document.createElement('img');svgImage.src=imgSrc;svgImage.style.maxWidth='50px';svgImage.style.marginLeft='10px';svgImage.style.verticalAlign='middle';svgImage.style.border='1px solid #ccc';svgImage.style.borderRadius='5px';const answerText=correctAnswer.querySelector('.h5p-sc-label p').innerText;const textNode=document.createTextNode(`Đáp án: ${answerText} - Hình ảnh: `);answerDisplay.appendChild(textNode);answerDisplay.appendChild(svgImage);}else{const answerText=correctAnswer.querySelector('.h5p-sc-label p').innerText;answerDisplay.innerHTML=`Đáp án: ${answerText} - Ảnh không phải SVG.`;}}else{const answerText=correctAnswer.querySelector('.h5p-sc-label p').innerText;answerDisplay.innerHTML=`Đáp án: ${answerText}`;}}else{answerDisplay.innerHTML='Không tìm thấy đáp án.';}}checkButton.onclick=function(){if(!hasCopied){findCorrectAnswer();}else{alert('Đáp án đã được dò trước đó!');}};externalToggleButton.onclick=function(){isPanelOpen=!isPanelOpen;if(isPanelOpen){infoBox.style.maxHeight='500px';infoBox.style.opacity='1';infoBox.style.visibility='visible';}else{infoBox.style.maxHeight='0px';infoBox.style.opacity='0';infoBox.style.visibility='hidden';}};let isDragging=false,offsetX=0,offsetY=0;titleBar.onmousedown=function(e){isDragging=true;offsetX=e.clientX-infoBox.offsetLeft;offsetY=e.clientY-infoBox.offsetTop;};document.onmousemove=function(e){if(isDragging){infoBox.style.left=`${e.clientX-offsetX}px`;infoBox.style.top=`${e.clientY-offsetY}px`;}};document.onmouseup=function(){isDragging=false;};infoBox.appendChild(titleBar);infoBox.appendChild(checkButtonContainer);document.body.appendChild(infoBox);document.body.appendChild(externalToggleButton);})();